Provided by:
manpages-fr_3.32d0.2p4-1_all 
NOM
rtnetlink, NETLINK_ROUTE - Socket de routage Linux IPv4
SYNOPSIS
#include <asm/types.h>
#include <linux/netlink.h>
#include <linux/rtnetlink.h>
#include <sys/socket.h>
rtnetlink_socket = socket(AF_NETLINK, int type_socket, NETLINK_ROUTE);
DESCRIPTION
Rtnetlink permet de lire et modifier les tables de routage du noyau.
Cela permet des communications entre divers sous-systemes du noyau,
bien que cette utilisation ne soit pas documentee ici, et pour les
communications avec les programmes de l'espace utilisateur. Les routes
reseau, les adresses IP, les parametres de liaison, la configuration du
voisinage, les files, les classes de trafic et les classes de paquets
peuvent etre configures par le biais des sockets NETLINK_ROUTE. Elles
sont basees sur des messages netlink, consultez netlink(7) pour plus
d'informations.
Attributs de routage
Certains messages netlink ont des attributs supplementaires apres
l'en-tete initial :
struct rtattr {
unsigned short rta_len; /* Longueur option */
unsigned short rta_type; /* Type d'option */
/* Les donnees suivent... */
};
Ces attributs ne doivent etre manipules qu'en utilisant les macros
RTA_* ou libnetlink, consultez rtnetlink(3).
Messages
Rtnetlink est constitue de trois types de messages (en plus des
messages netlink standards) :
RTM_NEWLINK, RTM_DELLINK, RTM_GETLINK
Creer, supprimer, ou obtenir des informations a propos d'une
interface reseau specifique. Ces messages contiennent une
structure ifinfomsg suivie d'une serie de structures rtattr.
struct ifinfomsg {
unsigned char ifi_family; /* AF_UNSPEC */
unsigned short ifi_type; /* Type peripherique */
int ifi_index; /* Index interface */
unsigned int ifi_flags; /* Attributs periph. */
unsigned int ifi_change; /* Masque modificat. */
};
ifi_flags contient les attributs du peripherique, consultez
netdevice(7) ; ifi_index est l'index unique de l'interface ;
ifi_change est reserve pour un usage ulterieur et doit toujours
valoir 0xFFFFFFFF.
Attributs de routage
rta_type type de valeur description
--------------------------------------------------------------------
IFLA_UNSPEC - non-specifie.
IFLA_ADDRESS adresse materielle Adresse L2 interface.
IFLA_BROADCAST adresse materielle Adresse L2 Broadcast.
IFLA_IFNAME chaine ACSIIZ Nom peripherique.
IFLA_MTU unsigned int MTU du peripherique.
IFLA_LINK int Type liaison.
IFLA_QDISC chaine ACSIIZ Mecanismes files.
IFLA_STATS voir ci-dessous Statistiques interface.
Le type de donnees pour IFLA_STATS est struct net_device_stats.
RTM_NEWADDR, RTM_DELADDR, RTM_GETADDR
Ajouter, supprimer ou obtenir des informations sur une adresse
IP associee a une interface. Sous Linux 2.2, une interface peut
gerer plusieurs adresses IP, ce qui remplace le concept d'alias
de Linux 2.0. Dans Linux 2.2, ces messages prennent en charge
les adresses IPv4 et IPv6. Ils contiennent une structure
ifaddrmsg, suivie eventuellement par des attributs de routage
rtattr.
struct ifaddrmsg {
unsigned char ifa_family; /* Type adresse */
unsigned char ifa_prefixlen; /* Lg prefixe adresse */
unsigned char ifa_flags; /* Attributs adresse */
unsigned char ifa_scope; /* Portee adresse */
int ifa_index; /* Index interface */
};
ifa_family est le type de famille d'adresse (actuellement
AF_INET ou AF_INET6), ifa_prefixlen est la longueur du masque
d'adresse, s'il est defini pour la famille (comme avec IPv4),
ifa_scope est la portee de l'adresse, ifa_index est l'index de
l'interface associee a l'adresse. ifa_flags est un attribut
compose de IFA_F_SECONDARY pour une adresse secondaire (les
anciens alias d'interface), IFA_F_PERMANENT pour une adresse
fixee par l'utilisateur, et d'autres attribut non documentes.
Attributes
rta_type type de valeur description
--------------------------------------------------------------
IFA_UNSPEC - non-specifie.
IFA_ADDRESS Adresse protocole raw Adresse interface.
IFA_LOCAL Adresse protocole raw Adresse locale.
IFA_LABEL Chaine ACSIIZ Nom de l'interface.
IFA_BROADCAST Adresse protocole raw Adresse broadcast.
IFA_ANYCAST Adresse protocole raw Adresse anycast.
IFA_CACHEINFO struct ifa_cacheinfo Informations adresse.
RTM_NEWROUTE, RTM_DELROUTE, RTM_GETROUTE
Creer, supprimer ou obtenir des informations a propos d'une
route reseau. Ces messages contiennent une structure rtmsg
suivie d'une sequence eventuelle de structures rtattr. Pour
RTM_GETROUTE, mettre rtm_dst_len et rtm_src_len a 0 signifie
obtenir toutes les entrees pour la table de routage indiquee.
Pour les autres champs, sauf rtm_table et rtm_protocol, 0 est le
symbole generique signifiant << toutes valeurs >>.
struct rtmsg {
unsigned char rtm_family; /* Famille d'adresse de la route */
unsigned char rtm_dst_len; /* Longueur destination */
unsigned char rtm_src_len; /* Longueur source */
unsigned char rtm_tos; /* Filtre TOS */
unsigned char rtm_table; /* ID table routage */
unsigned char rtm_protocol; /* Protocole route, cf plus bas */
unsigned char rtm_scope; /* Cf plus bas */
unsigned char rtm_type; /* Cf plus bas */
unsigned int rtm_flags;
};
rtm_type Type route
--------------------------------------------------------
RTN_UNSPEC Route inconnue
RTN_UNICAST Passerelle ou route directe
RTN_LOCAL Route interface locale
RTN_BROADCAST Route broadcast locale (envoi en
broadcast)
RTN_ANYCAST Route broadcast locale (envoi en
unicast)
RTN_MULTICAST Route multicast
RTN_BLACKHOLE Route d'abandon de paquets
RTN_UNREACHABLE Destination inaccessible
RTN_PROHIBIT Route de rejet de paquets
RTN_THROW Routage prolonge dans une autre table
RTN_NAT Route de traduction d'adresse
RTN_XRESOLVE Reference a une resolution externe
(non implemente)
rtm_protocol Origine de la route.
-----------------------------------------------
RTPROT_UNSPEC inconnue
RTPROT_REDIRECT redirection ICMP (inutilise
actuellement)
RTPROT_KERNEL fixee par le noyau
RTPROT_BOOT obtenue pendant le demarrage
RTPROT_STATIC fixee par l'administrateur
Les valeurs plus grandes que RTPROT_STATIC ne sont pas
interpretees par le noyau, et servent d'information utilisateur.
Elles permettent de marquer la source de la route ou de faire
une distinction entre plusieurs demons de routage. Consultez
<linux/rtnetlink.h> pour les identificateurs de demons de
routage deja affectes.
rtm_scope est la distance a la destination :
RT_SCOPE_UNIVERSE route globale
RT_SCOPE_SITE route locale interne au
systeme autonome
RT_SCOPE_LINK route sur ce lien
RT_SCOPE_HOST route sur l'hote local
RT_SCOPE_NOWHERE destination inexistante
Les valeurs entre RT_SCOPE_UNIVERSE et RT_SCOPE_SITE sont
disponibles pour l'utilisateur.
Le champ rtm_flags prend les significations suivantes :
RTM_F_NOTIFY si la route change, notifier l'utilisateur
via rtnetlink
RTM_F_CLONED la route est clonee depuis une autre route
RTM_F_EQUALIZE repartiteur multi-chemins (pas encore
implemente)
rtm_table indique la table de routage
RT_TABLE_UNSPEC table de routage non specifiee
RT_TABLE_DEFAULT la table par defaut
RT_TABLE_MAIN la table principale
RT_TABLE_LOCAL la table locale
L'utilisateur peut affecter a son gre les valeurs entre
RT_TABLE_UNSPEC et RT_TABLE_DEFAULT.
Attributes
rta_type type de valeur description
----------------------------------------------------------------
RTA_UNSPEC - ignore.
RTA_DST Adresse protocole Adresse de la route
destination.
RTA_SRC Adresse protocole Adresse de la route source.
RTA_IIF int Index interface d'entree.
RTA_OIF int Index interface de sortie.
RTA_GATEWAY Adresse protocole Passerelle de la route.
RTA_PRIORITY int Priorite de la route.
RTA_PREFSRC
RTA_METRICS int Metrique de la route.
RTA_MULTIPATH
RTA_PROTOINFO
RTA_FLOW
RTA_CACHEINFO
Remplir ces valeurs !
RTM_NEWNEIGH, RTM_DELNEIGH, RTM_GETNEIGH
Ajouter, supprimer ou obtenir des informations sur les voisinage
d'un element de table (p.ex. : entree ARP). Le message contient
une structure ndmsg.
struct ndmsg {
unsigned char ndm_family;
int ndm_ifindex; /* Index interface */
__u16 ndm_state; /* Etats */
__u8 ndm_flags; /* Attributs */
__u8 ndm_type;
};
struct nda_cacheinfo {
__u32 ndm_confirmed;
__u32 ndm_used;
__u32 ndm_updated;
__u32 ndm_refcnt;
};
ndm_state est un masque contenant les bits suivants :
NUD_INCOMPLETE une entree de cache non resolue.
NUD_REACHABLE une entree de cache confirmee correcte.
NUD_STALE une entree de cache expiree.
NUD_DELAY une entree de cache en attente de timer.
NUD_PROBE une entree de cache en verification.
NUD_FAILED une entree de cache invalide.
NUD_NOARP un peripherique sans cache de destination.
NUD_PERMANENT une entree statique.
Les valeurs valides pour ndm_flags sont :
NTF_PROXY nne entree proxy Arp.
NTF_ROUTER un routeur IPv6.
La structure rtattr prend les significations suivantes pour le
champ rta_type :
NDA_UNSPEC type inconnu
NDA_DST une adresse niveau reseau
dans le cache de voisinage
NDA_LLADDR une adresse niveau liaison
dans le cache voisinage.
NDA_CACHEINFO statistiques sur le cache.
Si le champ rta_type vaut NDA_CACHEINFO alors un en-tete struct
nda_cacheinfo suit.
RTM_NEWRULE, RTM_DELRULE, RTM_GETRULE
Ajouter, supprimer ou rechercher une regle de routage. Utilise
une struct rtmsg
RTM_NEWQDISC, RTM_DELQDISC, RTM_GETQDISC
Ajouter, supprimer ou rechercher une displine de file d'attente.
Le message contient une structure struct tcmsg et peut etre
suivi par une serie d'attributs.
struct tcmsg {
unsigned char tcm_family;
int tcm_ifindex; /* Index interface */
__u32 tcm_handle; /* Handle Qdisc */
__u32 tcm_parent; /* Parent Qdisc */
__u32 tcm_info;
};
Attributes
rta_type Type valeur Description
-----------------------------------------------------------------
TCA_UNSPEC - unspecified
TCA_KIND Chaine ACSIIZ Nom de la discipline de file
TCA_OPTIONS Sequence octets Options specifiques Qdisc
suivent
TCA_STATS struct tc_stats Statistiques Qdisc
TCA_XSTATS Specifique Qdisc Statistiques specifiques
module
TCA_RATE struct tc_estimator Limitation taux
De plus, d'autres attributs specifiques au module Qdisc sont
possibles. Pour plus d'informations, voir les fichiers d'en-tete
appropries.
RTM_NEWTCLASS, RTM_DELTCLASS, RTM_GETTCLASS
Ajouter, supprimer ou rechercher une classe de trafic. Ces
messages contiennent une struct tcmsg decrite plus haut.
RTM_NEWTFILTER, RTM_DELTFILTER, RTM_GETTFILTER
Ajouter, supprimer ou obtenir des informations sur un filtre de
trafic. Ces messages contiennent une struct tcmsg decrite plus
haut.
VERSIONS
rtnetlink est une nouveaute Linux 2.2.
BOGUES
Cette page de manuel est incomplete.
VOIR AUSSI
cmsg(3), rtnetlink(3), ip(7), netlink(7)
COLOPHON
Cette page fait partie de la publication 3.32 du projet man-pages
Linux. Une description du projet et des instructions pour signaler des
anomalies peuvent etre trouvees a l'adresse
<URL:http://www.kernel.org/doc/man-pages/>.
TRADUCTION
Depuis 2010, cette traduction est maintenue a l'aide de l'outil po4a
<URL:http://po4a.alioth.debian.org/> par l'equipe de traduction
francophone au sein du projet perkamon
<URL:http://perkamon.alioth.debian.org/>.
Christophe Blaess <URL:http://www.blaess.fr/christophe/> (1996-2003),
Alain Portal <URL:http://manpagesfr.free.fr/> (2003-2006). Julien
Cristau et l'equipe francophone de traduction de Debian (2006-2009).
Veuillez signaler toute erreur de traduction en ecrivant a
<debian-l10n-french@lists.debian.org> ou par un rapport de bogue sur le
paquet manpages-fr.
Vous pouvez toujours avoir acces a la version anglaise de ce document
en utilisant la commande << man -L C <section> <page_de_man> >>.
Linux 8 aout 2008 RTNETLINK(7)