Provided by: manpages-fr_2.45.1-1_all bug
 

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(PF_NETLINK, int socket_type, 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 com‐
        munications 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,  voir  netlink(7)   pour  plus
        d’informations.
        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, voir rtnetlink(3).
 

MESSAGES

        Rtnetlink  est  constitué  de trois types de messages (en plus des mes‐
        sages 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 struc‐
               ture 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,  voir  netde     
               vice(7)   ;   ifi_index  est  l’index  unique  de  l’interface ;
               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 AsciiZ        Nom périphérique.
               IFLA_MTU               unsigned int         MTU du périphérique.
               IFLA_LINK              int                  Type liaison.
               IFLA_QDISC             chaîne AsciiZ        Mécanismes files.
               IFLA_STATS             struct               Statistiques interface.
                                      net_device_stats
 
        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 supportent les
               adresses IPv4 et IPv6. Ils contiennent une structure  ifaddrmsg,
               suivie éventuellement par des attributs de routage rtaddr.
 
               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
               fixée par l’utilisateur, et d’autres attribut 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 AsciiZ           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 source */
                   unsigned char rtm_src_len;  /* Longueur destination */
                   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 uni‐
                                 cast)
               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     fixée par le noyau
               RTPROT_BOOT       obtenue pendant le démarrage
               RTPROT_STATIC     fixée 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.  Voir
               <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 multicast (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_TA     
               BLE_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.
 
               mieux documenter les membres de la structure
 
               La  structure  rtaddr 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 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 AsciiZ         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’information, voir les fichiers d’en-tête
               appropriés.
 
        RTM_NEWTCLASS, RTM_DELTCLASS, RTM_GETTCLASS
               Ajouter, supprimer ou rechercher une classe de trafic. Ces  mes‐
               sages 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 très incomplète.
        cmsg(3), rtnetlink(3), ip(7), netlink(7)
 

TRADUCTION

        Cette  page  de  manuel  a  été  traduite et mise à jour par Christophe
        Blaess <http://www.blaess.fr/christophe/> entre 1996 et 2003, puis  par
        Alain  Portal  <aportal AT univ-montp2 DOT fr> jusqu’en 2006, et mise à
        disposition sur http://manpagesfr.free.fr/.
 
        Les mises à jour et corrections de la version présente dans Debian sont
        directement gérées par Julien Cristau <jcristau@debian.org> et l’équipe
        francophone de traduction de Debian.
 
        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> ».