Provided by: manpages-fr_3.65d1p1-1_all bug

NOM

       rtnetlink - Socket de routage Linux IPv4

SYNOPSIS

       #include <asm/types.h>
       #include <linux/if_link.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-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... */
           };

       Ces  attributs  ne  doivent être manipulés qu'en utilisant les macros RTA_* ou libnetlink,
       consultez rtnetlink(3).

   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. */
              };

              ifi_flags   contient   les  attributs  du  périphérique,  consultez  netdevice(7) ;
              ifi_index est l'index unique de l'interface (depuis Linux 3.7, il est  possible  de
              fournir  une  valeur  non-nulle  au  message  RTM_NEWLINK,  créant  un lien d'index
              ifindex) ; ifi_change est réservé pour un usage ultérieur et doit  toujours  valoir
              0xFFFFFFFF.

                                  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.

              Le   type   de   données   pour   IFLA_STATS  est  struct  rtnl_link_stats  (struct
              net_device_stats dans les noyaux Linux 2.4 et antérieurs).

       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 */
              };

              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 défini pour la famille
              (comme avec IPv4), ifa_scope est la portée de l'adresse, ifa_index est  l'index  de
              l'interface   associée   à   l'adresse.   ifa_flags  est  un  attribut  composé  de
              IFA_F_SECONDARY pour  une  adresse  secondaire  (les  anciens  alias  d'interface),
              IFA_F_PERMANENT   pour  une  adresse  configurée  par  l'utilisateur,  et  d'autres
              attributs non documentés.

                                       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

              Les  valeurs  plus grandes que RTPROT_STATIC ne sont pas interprétées par le noyau,
              et servent d'information utilisateur. Elles permettent de marquer la source  de  la
              route  ou  de  faire  une  distinction entre plusieurs démons de routage. Consultez
              <linux/rtnetlink.h> pour les identificateurs de démons de routage déjà affectés.

              rtm_scope est la distance à la destination :

              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

              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 clonée depuis une autre route
              RTM_F_EQUALIZE   répartiteur    multichemin   (pas   encore
                               implémenté)

              rtm_table indique la table de routage

              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

              L'utilisateur peut  affecter  à  son  gré  les  valeurs  entre  RT_TABLE_UNSPEC  et
              RT_TABLE_DEFAULT.

                                        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

              Remplir ces valeurs !

       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;
              };

              ndm_state est un masque contenant les bits suivants :

              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.

              Les valeurs valides pour ndm_flags sont :

              NTF_PROXY    nne entrée 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 réseau 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-tête struct nda_cacheinfo suit.

       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  discipline  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

              De plus, d'autres attributs spécifiques au module Qdisc sont possibles.  Pour  plus
              d'informations, voir les fichiers d'en-tête appropriés.

       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.65 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> ».