.\" -*- coding: UTF-8 -*- '\" t .\" SPDX-License-Identifier: Linux-man-pages-1-para .\" .\" This man page is Copyright (C) 1999 Andi Kleen . .\" .\" Based on the original comments from Alexey Kuznetsov, written with .\" help from Matthew Wilcox. .\" $Id: rtnetlink.7,v 1.8 2000/01/22 01:55:04 freitag Exp $ .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH rtnetlink 7 "15 juillet 2023" "Pages du manuel de Linux 6.05.01" .SH NOM rtnetlink – Socket de routage de Linux .SH SYNOPSIS .nf \fB#include \fP \fB#include \fP \fB#include \fP \fB#include \fP \fB#include \fP .PP \fBrtnetlink_socket = socket(AF_NETLINK, int \fP\fItype_socket\fP\fB, NETLINK_ROUTE);\fP .fi .SH DESCRIPTION .\" FIXME . ? all these macros could be moved to rtnetlink(3) \fBrtnetlink\fP permet de lire et modifier les tables de routage du noyau. Cela permet à divers sous\-systèmes du noyau de communiquer entre eux, bien que cette utilisation ne soit pas documentée ici, et de communiquer avec les programmes de l'espace utilisateur. Les routes réseau, les adresses IP, les paramètres de liaison, la configuration du voisinage, la discipline de file d’attente, les classes de trafic et les classes de paquet peuvent être configurés par le biais des sockets \fBNETLINK_ROUTE\fP. Cela est basé sur des messages netlink\ ; consultez \fBnetlink\fP(7) pour plus d'informations. .SS "Attributs de routage" Certains messages \fBrtnetlink\fP ont des attributs facultatifs après l'en\-tête initial\ : .PP .in +4n .EX struct rtattr { unsigned short rta_len; /* Longueur d’option */ unsigned short rta_type; /* Type d'option */ /* Les données suivent... */ }; .EE .in .PP Ces attributs ne doivent être manipulés qu'en utilisant les macros RTA_* ou libnetlink. Consultez \fBrtnetlink\fP(3). .SS Messages \fBrtnetlink\fP est constitué de trois types de messages (en plus des messages netlink standard)\ : .TP \fBRTM_NEWLINK\fP, \fBRTM_DELLINK\fP, \fBRTM_GETLINK\fP Créer, supprimer ou obtenir des informations à propos d'une interface réseau spécifique. Ces messages contiennent une structure \fIifinfomsg\fP suivie d'une série de structures \fIrtattr\fP. .IP .EX struct ifinfomsg { unsigned char ifi_family; /* AF_UNSPEC */ unsigned short ifi_type; /* Type périphérique */ int ifi_index; /* Indice interface */ unsigned int ifi_flags; /* Attributs périphérique */ unsigned int ifi_change; /* Masque modificateur */ }; .EE .IP .\" FIXME Document ifinfomsg.ifi_type \fIifi_flags\fP contient les attributs du périphérique\ ; consultez \fBnetdevice\fP(7). \fIifi_index\fP est l'indice unique de l'interface (depuis Linux\ 3.7, il est possible de fournir une valeur non nulle avec le message \fBRTM_NEWLINK\fP, créant un lien avec l’\fIifindex\fP) donné. \fIifi_change\fP est réservé pour un usage ultérieur et doit toujours valoir 0xFFFFFFFF. .TS tab(:); c s s lb l l. Attributs de routage rta_type:Type de valeur:Description _ IFLA_UNSPEC:\-:non précisé IFLA_ADDRESS:adresse matérielle:adresse L2 d’interface IFLA_BROADCAST:adresse matérielle:adresse L2 de diffusion IFLA_IFNAME:chaîne ASCIIZ:nom de périphérique IFLA_MTU:entier non signé:MTU du périphérique IFLA_LINK:int:type de lien IFLA_QDISC:chaîne ASCIIZ:mécanismes de file d'attente IFLA_STATS:T{ voir ci\(hydessous T}:statistiques d’interface IFLA_PERM_ADDRESS:adresse matérielle:T{ hardware address provided by device (since Linux 5.5) T} .TE .IP Le type de données pour \fBIFLA_STATS\fP est \fIstruct rtnl_link_stats\fP (\fIstruct net_device_stats\fP dans les noyaux Linux\ 2.4 et antérieurs). .TP \fBRTM_NEWADDR\fP, \fBRTM_DELADDR\fP, \fBRTM_GETADDR\fP 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 périphérique de Linux\ 2.0. Dans Linux\ 2.2, ces messages prennent en charge les adresses IPv4 et IPv6. Ils contiennent une structure \fIifaddrmsg\fP, suivie éventuellement par des attributs de routage \fIrtattr\fP. .IP .EX struct ifaddrmsg { unsigned char ifa_family; /* Type adresse */ unsigned char ifa_prefixlen; /* Longueur préfixe adresse */ unsigned char ifa_flags; /* Attributs adresse */ unsigned char ifa_scope; /* Portée adresse */ unsigned int ifa_index; /* Indice interface */ }; .EE .IP \fIifa_family\fP est le type de famille d'adresses (actuellement \fBAF_INET\fP ou \fBAF_INET6\fP), \fIifa_prefixlen\fP est la longueur du masque d'adresse s'il est défini pour la famille (comme avec IPv4), \fIifa_scope\fP est la portée de l'adresse, \fIifa_index\fP est l'indice de l'interface associée à l'adresse. \fIifa_flags\fP est un attribut composé de \fBIFA_F_SECONDARY\fP pour une adresse secondaire (les anciens alias d'interface), \fBIFA_F_PERMANENT\fP pour une adresse permanente configurée par l'utilisateur et d'autres indicateurs non documentés. .TS tab(:); c s s lb l l. Attributs rta_type:Type de valeur:Description _ IFA_UNSPEC:\-:non précisé IFA_ADDRESS:adresse brute de protocole:adresse d’interface IFA_LOCAL:adresse brute de protocole:adresse locale IFA_LABEL:chaîne ASCIIZ:nom de l'interface IFA_BROADCAST:adresse brute de protocole:adresse de diffusion IFA_ANYCAST:adresse brute de protocole:adresse anycast IFA_CACHEINFO:struct ifa_cacheinfo:informations d’adresse .TE .\" FIXME Document struct ifa_cacheinfo .TP \fBRTM_NEWROUTE\fP, \fBRTM_DELROUTE\fP, \fBRTM_GETROUTE\fP Créer, supprimer ou obtenir des informations à propos d'une route réseau. Ces messages contiennent une structure \fIrtmsg\fP suivie d'une séquence éventuelle de structures \fIrtattr\fP. Pour \fBRTM_GETROUTE\fP, mettre \fIrtm_dst_len\fP et \fIrtm_src_len\fP à\ 0 signifie obtenir toutes les entrées pour la table de routage indiquée. Pour les autres champs, sauf \fIrtm_table\fP et \fIrtm_protocol\fP, 0\ est le symbole générique signifiant «\ toutes valeurs\ ». .IP .EX struct rtmsg { unsigned char rtm_family; /* Address family of route */ unsigned char rtm_dst_len; /* Length of destination */ unsigned char rtm_src_len; /* Length of source */ unsigned char rtm_tos; /* TOS filter */ unsigned char rtm_table; /* Routing table ID; see RTA_TABLE below */ unsigned char rtm_protocol; /* Routing protocol; see below */ unsigned char rtm_scope; /* See below */ unsigned char rtm_type; /* See below */ \& unsigned int rtm_flags; }; .EE .TS tab(:); lb l. rtm_type:Type de route _ RTN_UNSPEC:route inconnue RTN_UNICAST:passerelle ou route directe RTN_LOCAL:route d’interface locale RTN_BROADCAST:T{ route de diffusion locale (envoi en broadcast) T} RTN_ANYCAST:T{ route de diffusion locale (envoi en unicast) T} RTN_MULTICAST:route multicast RTN_BLACKHOLE:route d'abandon de paquets RTN_UNREACHABLE:destination inaccessible RTN_PROHIBIT:route de rejet de paquets RTN_THROW:continuer la recherche de routage dans une autre table RTN_NAT:règle de traduction d'adresse réseau RTN_XRESOLVE:T{ référence à une résolution externe (non implémentée) T} .TE .TS tab(:); lb l. rtm_protocol:Origine de la route _ RTPROT_UNSPEC:inconnue RTPROT_REDIRECT:T{ définie par une redirection ICMP (inutilisée actuellement) T} RTPROT_KERNEL:définie par le noyau RTPROT_BOOT:obtenue pendant le démarrage RTPROT_STATIC:définie par l'administrateur .TE .sp 1 Les valeurs plus grandes que \fBRTPROT_STATIC\fP ne sont pas interprétées par le noyau et servent d'information utilisateur. Elles permettent de marquer la source de l’information de routage ou de faire une distinction entre plusieurs démons de routage. Consultez \fI\fP pour les identificateurs des démons de routage déjà affectés. .IP \fIrtm_scope\fP est la distance à la destination\ : .TS tab(:); lb l. RT_SCOPE_UNIVERSE:route globale RT_SCOPE_SITE:T{ route interne dans le système autonome local T} RT_SCOPE_LINK:route sur ce lien RT_SCOPE_HOST:route sur l'hôte local RT_SCOPE_NOWHERE:destination inexistante .TE .sp 1 Les valeurs entre \fBRT_SCOPE_UNIVERSE\fP et \fBRT_SCOPE_SITE\fP sont disponibles pour l'utilisateur. .IP Le champ \fIrtm_flags\fP prend les significations suivantes\ : .TS tab(:); lb l. RTM_F_NOTIFY:T{ si la route change, notifier l'utilisateur à l’aide de \fBrtnetlink\fP T} RTM_F_CLONED:la route est clonée depuis une autre route RTM_F_EQUALIZE:répartiteur multichemin (pas encore implémenté) .TE .sp 1 \fIrtm_table\fP indique la table de routage .TS tab(:); lb l. RT_TABLE_UNSPEC:table de routage non spécifiée RT_TABLE_DEFAULT:table par défaut RT_TABLE_MAIN:table principale RT_TABLE_LOCAL:table locale .TE .sp 1 .\" Keep table on same page L'utilisateur peut affecter à son gré les valeurs entre \fBRT_TABLE_UNSPEC\fP et \fBRT_TABLE_DEFAULT\fP. .bp +1 .TS tab(:); c s s lb2 l2 l. Attributs rta_type:Type de valeur:Description _ RTA_UNSPEC:\-:ignoré RTA_DST:adresse de protocole:adresse de destination de la route RTA_SRC:adresse de protocole:adresse de source de la route RTA_IIF:int:indice de l’interface d'entrée RTA_OIF:int:indice de l’interface de sortie RTA_GATEWAY:adresse de protocole:passerelle de la route RTA_PRIORITY:int:priorité de la route RTA_PREFSRC:adresse de protocole:adresse de la route préférée RTA_METRICS:int:métrique de la route RTA_MULTIPATH::T{ données multichemin nexthop (voir ci\-dessous) T} RTA_PROTOINFO::abandonné RTA_FLOW:int:domaine de route RTA_CACHEINFO:struct rta_cacheinfo:(voir linux/rtnetlink.h) RTA_SESSION::abandonné RTA_MP_ALGO::abandonné RTA_TABLE:int:T{ ID de table de routage ; si défini .br rtm_table est ignoré T} RTA_MARK:int: RTA_MFC_STATS:struct rta_mfc_stats:(voir linux/rtnetlink.h) RTA_VIA:struct rtvia:T{ passerelle dans un AF différent (voir ci\-dessous) T} RTA_NEWDST:adresse de protocole:T{ modification adresse de destination de paquet T} RTA_PREF:char:T{ préférence de routeur IPv6 RFC4191 (voir ci\-dessous) T} RTA_ENCAP_TYPE:short:T{ type d’encapsulation pour .br lwtunnels (voir ci\-dessous) T} RTA_ENCAP::défini par RTA_ENCAP_TYPE RTA_EXPIRES:int:T{ délai d’expiration de routes IPv6 (en seconde) T} .TE .IP \fBRTA_MULTIPATH\fP contient plusieurs instances groupées de \fIstruct rtnexthop\fP avec des RTA imbriqués (\fBRTA_GATEWAY\fP)\ : .IP .in +4n .EX struct rtnexthop { unsigned short rtnh_len; /* Long. de struct. + long. de RTA */ unsigned char rtnh_flags; /* Indicateurs (voir linux/rtnetlink.h) */ unsigned char rtnh_hops; /* Priorité nexthop */ int rtnh_ifindex; /* Indice interface pour ce nexthop */ } .EE .in .IP Il existe un tas de macros \fBRTNH_*\fP similaires aux macros \fBRTA_*\fP et \fBNLHDR_*\fP utiles pour gérer ces structures. .IP .in +4n .EX struct rtvia { unsigned short rtvia_family; unsigned char rtvia_addr[0]; }; .EE .in .IP \fIrtvia_addr\fP est l’adresse, \fIrtvia_family\fP est son type de famille. .IP \fBRTA_PREF\fP peut contenir les valeurs \fBICMPV6_ROUTER_PREF_LOW\fP, \fBICMPV6_ROUTER_PREF_MEDIUM\fP et \fBICMPV6_ROUTER_PREF_HIGH\fP définies dans \fI\fP. .IP \fBRTA_ENCAP_TYPE\fP peut contenir les valeurs \fBLWTUNNEL_ENCAP_MPLS\fP, \fBLWTUNNEL_ENCAP_IP\fP, \fBLWTUNNEL_ENCAP_ILA\fP ou \fBLWTUNNEL_ENCAP_IP6\fP définies dans \fI\fP. .IP \fBFournissez ces valeurs\ !\fP .TP \fBRTM_NEWNEIGH\fP, \fBRTM_DELNEIGH\fP, \fBRTM_GETNEIGH\fP Ajouter, supprimer ou obtenir des informations sur le voisinage d'un élément de table (p.ex.\ : une entrée ARP). Le message contient une structure \fIndmsg\fP. .IP .EX struct ndmsg { unsigned char ndm_family; int ndm_ifindex; /* Interface index */ __u16 ndm_state; /* State */ __u8 ndm_flags; /* Flags */ __u8 ndm_type; }; \& struct nda_cacheinfo { __u32 ndm_confirmed; __u32 ndm_used; __u32 ndm_updated; __u32 ndm_refcnt; }; .EE .IP \fIndm_state\fP est un masque de bits des états suivants\ : .TS tab(:); lb l. NUD_INCOMPLETE:une entrée de cache en cours de résolution NUD_REACHABLE:une entrée de cache en vigueur confirmée NUD_STALE:une entrée de cache expirée NUD_DELAY:une entrée de cache en attente de temporisateur NUD_PROBE:une entrée de cache en cours d’examen NUD_FAILED:une entrée de cache non valable NUD_NOARP:un périphérique sans cache de destination NUD_PERMANENT:une entrée statique .TE .sp 1 Les valeurs autorisées pour \fIndm_flags\fP sont\ : .TS tab(:); lb l. NTF_PROXY:une entrée ARP de mandataire NTF_ROUTER:un routeur IPv6 .TE .sp 1 .\" FIXME . .\" document the members of the struct better La structure \fIrtattr\fP prend les significations suivantes pour le champ \fIrta_type\fP\ : .TS tab(:); lb l. NDA_UNSPEC:type inconnu NDA_DST:une adr. de dest. de la couche de réseau du cache de voisinage NDA_LLADDR:une adresse de couche de liaison du cache de voisinage NDA_CACHEINFO:statistiques sur le cache .TE .sp 1 Si le champ \fIrta_type\fP vaut \fBNDA_CACHEINFO\fP, alors un en\-tête \fIstruct nda_cacheinfo\fP suit. .TP \fBRTM_NEWRULE\fP, \fBRTM_DELRULE\fP, \fBRTM_GETRULE\fP Ajouter, supprimer ou rechercher une règle de routage. Utilise une \fIstruct rtmsg\fP. .TP \fBRTM_NEWQDISC\fP, \fBRTM_DELQDISC\fP, \fBRTM_GETQDISC\fP Ajouter, supprimer ou rechercher une discipline de file d'attente. Le message contient une structure \fIstruct tcmsg\fP qui peut être suivie par une série d'attributs. .IP .EX struct tcmsg { unsigned char tcm_family; int tcm_ifindex; /* Indice d’interface */ __u32 tcm_handle; /* Gestion qdisc */ __u32 tcm_parent; /* Qdisc parent */ __u32 tcm_info; }; .EE .TS tab(:); c s s lb2 l2 l. Attributs rta_type:Type de valeur:Description _ TCA_UNSPEC:\-:non précisé TCA_KIND:chaîne ASCIIZ:nom de la discipline de file d'attente TCA_OPTIONS:séquence d’octets:options spécifiques qdisc suivent TCA_STATS:struct tc_stats:statistiques qdisc TCA_XSTATS:spécifique qdisc:statistiques spécifiques au module TCA_RATE:struct tc_estimator:limite de taux .TE .sp 1 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. .TP \fBRTM_NEWTCLASS\fP, \fBRTM_DELTCLASS\fP, \fBRTM_GETTCLASS\fP Ajouter, supprimer ou rechercher une classe de trafic. Ces messages contiennent une \fIstruct tcmsg\fP décrite plus haut. .TP \fBRTM_NEWTFILTER\fP, \fBRTM_DELTFILTER\fP, \fBRTM_GETTFILTER\fP Ajouter, supprimer ou obtenir des informations sur un filtre de trafic. Ces messages contiennent une \fIstruct tcmsg\fP décrite plus haut. .SH VERSIONS \fBrtnetlink\fP est une nouveauté de Linux\ 2.2. .SH BOGUES Cette page de manuel est incomplète. .SH "VOIR AUSSI" \fBcmsg\fP(3), \fBrtnetlink\fP(3), \fBip\fP(7), \fBnetlink\fP(7) .PP .SH TRADUCTION La traduction française de cette page de manuel a été créée par Christophe Blaess , Stéphan Rafin , Thierry Vignaud , François Micaux, Alain Portal , Jean-Philippe Guérard , Jean-Luc Coulon (f5ibh) , Julien Cristau , Thomas Huriaux , Nicolas François , Florentin Duneau , Simon Paillard , Denis Barbier , David Prévot et Jean-Paul Guillonneau . .PP Cette traduction est une documentation libre ; veuillez vous reporter à la .UR https://www.gnu.org/licenses/gpl-3.0.html GNU General Public License version 3 .UE concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE. .PP Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message à .MT debian-l10n-french@lists.debian.org .ME .