table of contents
other languages
other sections
RTNETLINK(7) | Manuel du programmeur Linux | RTNETLINK(7) |
NOM¶
rtnetlink - Socket de routage Linux IPv4SYNOPSIS¶
#include <asm/types.h>DESCRIPTION¶
Rtnetlink permet de lire et modifier les tables de routage du noyau. Cela permet des communications entre divers sous-systèmes du noyau, bien que cette utilisation ne soit pas documentée ici, et pour les communications avec les programmes de l'espace utilisateur. Les routes réseau, les adresses IP, les paramètres de liaison, la configuration du voisinage, les files, les classes de trafic et les classes de paquets peuvent être configurés par le biais des sockets NETLINK_ROUTE. Elles sont basées sur des messages netlink, consultez netlink(7) pour plus d'informations.Attributs de routage¶
Certains messages netlink ont des attributs supplémentaires après l'en-tête initial :struct rtattr { unsigned short rta_len; /* Longueur option */ unsigned short rta_type; /* Type d'option */ /* Les données suivent... */ };
Messages¶
Rtnetlink est constitué de trois types de messages (en plus des messages netlink standards) :- RTM_NEWLINK, RTM_DELLINK, RTM_GETLINK
- Créer, supprimer, ou obtenir des informations à
propos d'une interface réseau spécifique. Ces messages
contiennent une structure ifinfomsg suivie d'une série de
structures rtattr.
struct ifinfomsg { unsigned char ifi_family; /* AF_UNSPEC */ unsigned short ifi_type; /* Type périphérique */ int ifi_index; /* Index interface */ unsigned int ifi_flags; /* Attributs périph. */ unsigned int ifi_change; /* Masque modificat. */ };
Attributs de routage rta_type type de valeur description IFLA_UNSPEC - non-spécifié. IFLA_ADDRESS adresse matérielle Adresse L2 interface. IFLA_BROADCAST adresse matérielle Adresse L2 Broadcast. IFLA_IFNAME chaîne ACSIIZ Nom périphérique. IFLA_MTU unsigned int MTU du périphérique. IFLA_LINK int Type liaison. IFLA_QDISC chaîne ACSIIZ Mécanismes files. IFLA_STATS voir ci‐dessous Statistiques interface.
- RTM_NEWADDR, RTM_DELADDR, RTM_GETADDR
- Ajouter, supprimer ou obtenir des informations sur une
adresse IP associée à une interface. Sous Linux 2.2, une
interface peut gérer 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 éventuellement par des attributs
de routage rtattr.
struct ifaddrmsg { unsigned char ifa_family; /* Type adresse */ unsigned char ifa_prefixlen; /* Lg préfixe adresse */ unsigned char ifa_flags; /* Attributs adresse */ unsigned char ifa_scope; /* Portée adresse */ int ifa_index; /* Index interface */ };
Attributes rta_type type de valeur description IFA_UNSPEC - non-spécifié. IFA_ADDRESS Adresse protocole raw Adresse interface. IFA_LOCAL Adresse protocole raw Adresse locale. IFA_LABEL Chaîne 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
- Créer, supprimer ou obtenir des informations à
propos d'une route réseau. Ces messages contiennent une structure
rtmsg suivie d'une séquence éventuelle de structures
rtattr. Pour RTM_GETROUTE, mettre rtm_dst_len et
rtm_src_len à 0 signifie obtenir toutes les entrées pour
la table de routage indiquée. Pour les autres champs, sauf
rtm_table et rtm_protocol, 0 est le symbole
générique 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 prolongé dans une autre table RTN_NAT Route de traduction d'adresse RTN_XRESOLVE Référence à une résolution externe (non implémenté) rtm_protocol Origine de la route. RTPROT_UNSPEC inconnue RTPROT_REDIRECT redirection ICMP (inutilisé actuellement) RTPROT_KERNEL définie par le noyau RTPROT_BOOT obtenue pendant le démarrage RTPROT_STATIC définie par l'administrateur RT_SCOPE_UNIVERSE route globale RT_SCOPE_SITE route locale interne au système autonome RT_SCOPE_LINK route sur ce lien RT_SCOPE_HOST route sur l'hôte local RT_SCOPE_NOWHERE destination inexistante RTM_F_NOTIFY si la route change, notifier l'utilisateur via rtnetlink RTM_F_CLONED la route est clonée depuis une autre route RTM_F_EQUALIZE répartiteur multi-chemins (pas encore implémenté) RT_TABLE_UNSPEC table de routage non spécifiée RT_TABLE_DEFAULT la table par défaut RT_TABLE_MAIN la table principale RT_TABLE_LOCAL la table locale Attributes rta_type type de valeur description RTA_UNSPEC - ignoré. RTA_DST Adresse protocole Adresse de la route destination. RTA_SRC Adresse protocole Adresse de la route source. RTA_IIF int Index interface d'entrée. RTA_OIF int Index interface de sortie. RTA_GATEWAY Adresse protocole Passerelle de la route. RTA_PRIORITY int Priorité de la route. RTA_PREFSRC RTA_METRICS int Métrique de la route. RTA_MULTIPATH RTA_PROTOINFO RTA_FLOW RTA_CACHEINFO
- RTM_NEWNEIGH, RTM_DELNEIGH, RTM_GETNEIGH
- Ajouter, supprimer ou obtenir des informations sur les
voisinage d'un élément de table (p.ex. : entrée ARP).
Le message contient une structure ndmsg.
struct ndmsg { unsigned char ndm_family; int ndm_ifindex; /* Index interface */ __u16 ndm_state; /* États */ __u8 ndm_flags; /* Attributs */ __u8 ndm_type; }; struct nda_cacheinfo { __u32 ndm_confirmed; __u32 ndm_used; __u32 ndm_updated; __u32 ndm_refcnt; };
NUD_INCOMPLETE une entrée de cache non résolue. NUD_REACHABLE une entrée de cache confirmée correcte. NUD_STALE une entrée de cache expirée. NUD_DELAY une entrée de cache en attente de timer. NUD_PROBE une entrée de cache en vérification. NUD_FAILED une entrée de cache invalide. NUD_NOARP un périphérique sans cache de destination. NUD_PERMANENT une entrée statique. NTF_PROXY nne entrée proxy Arp. NTF_ROUTER un routeur IPv6. NDA_UNSPEC type inconnu NDA_DST une adresse niveau réseau dans le cache de voisinage NDA_LLADDR une adresse niveau liaison dans le cache voisinage. NDA_CACHEINFO statistiques sur le cache.
- RTM_NEWRULE, RTM_DELRULE, RTM_GETRULE
- Ajouter, supprimer ou rechercher une règle 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
être suivi par une série 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 Chaîne ACSIIZ Nom de la discipline de file TCA_OPTIONS Séquence octets Options spécifiques Qdisc suivent TCA_STATS struct tc_stats Statistiques Qdisc TCA_XSTATS Spécifique Qdisc Statistiques spécifiques module TCA_RATE struct tc_estimator Limitation taux
- RTM_NEWTCLASS, RTM_DELTCLASS, RTM_GETTCLASS
- Ajouter, supprimer ou rechercher une classe de trafic. Ces messages contiennent une struct tcmsg décrite 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 décrite plus haut.
VERSIONS¶
rtnetlink est une nouveauté Linux 2.2.BOGUES¶
Cette page de manuel est incomplète.VOIR AUSSI¶
cmsg(3), rtnetlink(3), ip(7), netlink(7)COLOPHON¶
Cette page fait partie de la publication 3.44 du projet man-pages Linux. Une description du projet et des instructions pour signaler des anomalies peuvent être trouvées à l'adresse <http://www.kernel.org/doc/man-pages/>.TRADUCTION¶
Depuis 2010, cette traduction est maintenue à l'aide de l'outil po4a <http://po4a.alioth.debian.org/> par l'équipe de traduction francophone au sein du projet perkamon <http://perkamon.alioth.debian.org/>. Christophe Blaess <http://www.blaess.fr/christophe/> (1996-2003), Alain Portal <http://manpagesfr.free.fr/> (2003-2006). Julien Cristau et l'équipe francophone de traduction de Debian (2006-2009). Veuillez signaler toute erreur de traduction en écrivant à <debian-l10n-french@lists.debian.org> ou par un rapport de bogue sur le paquet manpages-fr. Vous pouvez toujours avoir accès à la version anglaise de ce document en utilisant la commande « man -L C <section> <page_de_man> ».10 mai 2012 | Linux |