Provided by: manpages-fr_4.15.0-9_all bug

NOM

       arp - Module ARP du noyau Linux

DESCRIPTION

       Ce  module  du  noyau  implémente  le  protocole de résolution d'adresse ARP tel qu'il est
       décrit dans le document RFC 826. Il sert à la conversion entre les adresses matérielles de
       niveau 2  et  les  adresses  du  protocole  IPv4  sur  les  réseaux  connectés  en direct.
       L'utilisateur n'a normalement pas d'interactions avec ce module sauf pour  le  configurer.
       En fait, ce module fournit des services aux autres protocoles du noyau.

       Un  processus  utilisateur  peut recevoir les paquets ARP en utilisant les sockets de type
       packet(7). Il y a aussi un mécanisme pour gérer le cache  ARP  dans  l'espace  utilisateur
       avec  des  sockets netlink(7). La table ARP peut être contrôlée par le biais d'un ioctl(2)
       sur n'importe quel socket AF_INET.

       Le module ARP maintient un cache des correspondances entre les adresses matérielles et les
       adresses logiques. Le cache a une taille limitée, ainsi les entrées anciennes et utilisées
       moins fréquemment sont récupérées. Les entrées qui sont marquées comme permanentes ne sont
       jamais effacées. Le cache peut être manipulé directement par l'intermédiaire des ioctls et
       son comportement peut être ajusté à l'aide des interfaces /proc décrites plus bas.

       Lorsqu'il n'y a pas de retour positif pour une correspondance existante après  un  certain
       temps  (voir  les  interfaces  /proc  ci-dessous), l'entrée est considérée comme gelée. Un
       retour positif peut être obtenu d'un niveau supérieur, par  exemple  un  ACK  TCP  réussi.
       D'autres  protocoles  peuvent signaler des avancées en utilisant l'attribut MSG_CONFIRM de
       sendmsg(2). Pour envoyer à nouveau  des  données  à  cette  cible,  l'ARP  essaye  d'abord
       d'interroger  un  démon  arp local au maximum app_solicit fois, afin d'obtenir une adresse
       MAC à jour. Si cela échoue, et si une ancienne  adresse  MAC  est  connue,  une  tentative
       unicast  est envoyée ucast_solicit fois. Si cela échoue encore, il enverra une requête ARP
       en broadcast sur le réseau. Les requêtes ne sont envoyées que s'il  y  a  des  données  en
       attente d'émission.

       Linux  ajoutera  automatiquement  une entrée arp proxy non permanente lorsqu'il reçoit une
       requête pour une adresse à laquelle il envoie des données, si le proxy arp est validé  sur
       l'interface  réceptrice.  Aucune  entrée n'est ajoutée s'il y a une route de rejet pour la
       cible.

   Ioctls
       Trois ioctls sont disponibles pour les sockets AF_INET. Elles prennent un pointeur sur une
       struct arpreq comme paramètre.

           struct arpreq {
               struct sockaddr arp_pa;      /* adresse protocole */
               struct sockaddr arp_ha;      /* adresse matérielle */
               int             arp_flags;   /* attributs */
               struct sockaddr arp_netmask; /* masque réseau du protocole */
               char            arp_dev[16];
           };

       SIOCSARP,  SIOCDARP  et  SIOCGARP  ajoutent,  suppriment  et consultent respectivement une
       correspondance ARP. L'ajout et la suppression de correspondance ARP  sont  des  opérations
       privilégiées ne pouvant être réalisées que par un processus avec la capacité CAP_NET_ADMIN
       ou un UID effectif nul.

       arp_pa doit être une adresse AF_INET et arp_ha doit être du même type que le  périphérique
       indiqué  dans  arp_dev. arp_dev est une chaîne terminée par un caractère nul, contenant le
       nom d'un périphérique.

              ┌────────────────────────────────────────────┐
              │                 arp_flags                  │
              ├────────────────┬───────────────────────────┤
              │attribut        │ signification             │
              ├────────────────┼───────────────────────────┤
              │ATF_COM         │ Recherche complète        │
              ├────────────────┼───────────────────────────┤
              │ATF_PERM        │ Entrée permanente         │
              ├────────────────┼───────────────────────────┤
              │ATF_PUBL        │ Entrée publiée            │
              ├────────────────┼───────────────────────────┤
              │ATF_USETRAILERS │ Demande de trailer        │
              ├────────────────┼───────────────────────────┤
              │ATF_NETMASK     │ Utiliser un masque réseau │
              ├────────────────┼───────────────────────────┤
              │ATF_DONTPUB     │ Ne pas répondre           │
              └────────────────┴───────────────────────────┘
       Si l'attribut ATF_NETMASK est activé, alors  le  membre  arp_netmask  doit  être  valable.
       Linux 2.2  ne  prend  pas  en  charge  les  entrées  ARP proxy réseau. Ainsi, il doit être
       configuré  avec  0xFFFFFFFF  ou  0  pour  supprimer  une  entrée  arp   proxy   existante.
       ATF_USETRAILERS est obsolète et ne doit pas être utilisé.

   Interfaces /proc
       ARP  prend  en  charge une série d'interfaces /proc pour configurer les paramètres sur une
       base globale ou interface par interface. Les interfaces sont accessibles en lisant  ou  en
       écrivant  dans les fichiers /proc/sys/net/ipv4/neigh/*/*. Chaque interface dans le système
       a  son  propre  répertoire  dans  /proc/sys/net/ipv4/neigh/.  La  configuration  dans   le
       répertoire  « default » sert pour tous les nouveaux périphériques. Sauf mention contraire,
       les durées sont en secondes.

       anycast_delay (depuis Linux 2.2)
              Le nombre maximal de  jiffies  à  attendre  avant  de  répondre  à  un  message  de
              sollicitation  IPv6  du  voisinage.  La  prise  en  charge anycast n'est pas encore
              implémentée. Par défaut, le délai est 1 seconde.

       app_solicit (depuis Linux 2.2)
              Le nombre maximal d'essais d'envoi au démon ARP de l'espace utilisateur par netlink
              avant  de basculer en tentatives multicast (consultez mcast_solicit). La valeur par
              défaut est 0.

       base_reachable_time (depuis Linux 2.2)
              Une fois qu'un voisin a été trouvé, l'entrée est considérée comme valable  pendant,
              au     moins,     une    durée    aléatoire    entre    base_reachable_time/2    et
              3*base_reachable_time/2. La validité d'une entrée sera étendue si un retour positif
              est  reçu  des  protocoles  de  plus  haut  niveau.  La  valeur  par  défaut est de
              30 secondes.   Ce   fichier   est   maintenant    obsolète    et    remplacé    par
              base_reachable_time_ms.

       base_reachable_time_ms (depuis Linux 2.6.12)
              Comme  pour  base_reachable_time,  mais  le  temps  est mesuré en millisecondes. La
              valeur par défaut est de 30 000 millisecondes.

       delay_first_probe_time (depuis Linux 2.2)
              Délai avant la première tentative multicast après avoir  décidé  qu'un  voisin  est
              gelé. La valeur par défaut est de 5 secondes.

       gc_interval (depuis Linux 2.2)
              Fréquence  d'exécution  du  ramasse-miettes des entrées de voisinage. La valeur par
              défaut est de 30 secondes.

       gc_stale_time (depuis Linux 2.2)
              Fréquence  de  vérification   d’une   entrée   de   voisinage   gelée.   Lorsqu'une
              correspondance  est  considérée comme gelée, elle sera à nouveau redéterminée avant
              d'y envoyer des données. La valeur par défaut est de 60 secondes.

       gc_thresh1 (depuis Linux 2.2)
              Le nombre minimal d'entrées à conserver dans le cache ARP. Le récupérateur ne  sera
              pas  déclenché  s'il y a moins d'entrées que cette valeur. La valeur par défaut est
              128.

       gc_thresh2 (depuis Linux 2.2)
              La limite maximale souple d'entrées à conserver dans le cache ARP. Le  récupérateur
              autorisera  un  dépassement  de cette valeur pendant 5 secondes avant de lancer une
              véritable récupération. La valeur par défaut est de 512 entrées.

       gc_thresh3 (depuis Linux 2.2)
              La limite maximale d'entrées à conserver dans le cache ARP.  Le  récupérateur  sera
              immédiatement  déclenché  si  cette  valeur  est dépassée. La valeur par défaut est
              1024.

       locktime (depuis Linux 2.2)
              Le nombre minimal de jiffies pendant lesquels une entrée ARP est conservée dans  le
              cache.  Cela  évite  la  dégradation  du  cache  s'il y a plusieurs correspondances
              possibles (généralement à cause d'une mauvaise configuration du réseau). La  valeur
              par défaut est de 1 seconde.

       mcast_solicit (depuis Linux 2.2)
              Le  nombre maximal de tentatives de résolution d'une adresse par le multicast et le
              broadcast avant de marquer l'entrée comme inaccessible. La valeur par défaut est 3.

       proxy_delay (depuis Linux 2.2)
              Lorsqu'une requête arrive pour une  adresse  proxy-ARP,  proxy_delay  jiffies  sont
              attendues  avant  de  répondre. Cela permet d'éviter des saturations du réseau dans
              certains cas. La valeur par défaut est de 0,8 secondes.

       proxy_qlen (depuis Linux 2.2)
              Le nombre maximal de paquets qui peuvent être gardés en  file  d’attente  pour  des
              adresses proxy-ARP. La valeur par défaut est 64.

       retrans_time (depuis Linux 2.2)
              Le  nombre  de jiffies à attendre avant de retransmettre une requête. La valeur par
              défaut est de 1 seconde.  Ce  fichier  est  maintenant  obsolète  et  remplacé  par
              retrans_time_ms.

       retrans_time_ms (depuis Linux 2.6.12)
              Le nombre de millisecondes à attendre avant de retransmettre une requête. La valeur
              par défaut est de 1000 millisecondes.

       ucast_solicit (depuis Linux 2.2)
              Le nombre maximal de tentatives d'envoi unicast avant  d'interroger  le  démon  ARP
              (consultez app_solicit). La valeur par défaut est 3.

       unres_qlen (depuis Linux 2.2)
              Le  nombre maximal de paquets qui peuvent être gardés en file d’attente pour chaque
              adresse non résolue par les autres couches réseau. La valeur par défaut est 3.

VERSIONS

       La structure arpreq a changé dans Linux 2.0 pour inclure le membre arp_dev et les  numéros
       d'ioctl  ont  changé  en  même  temps.  La  prise  en  charge pour les anciens ioctl a été
       abandonnée dans Linux 2.2.

       La prise en charge pour les entrées proxy ARP concernant des réseaux (netmask différent de
       0xFFFFFFF)  a  été  supprimée de Linux 2.2. Elle est remplacée par une configuration proxy
       ARP automatique dans le noyau pour tous les hôtes accessibles sur  les  autres  interfaces
       (en faisant du forwarding avec le proxy ARP activé sur l'interface).

       Les interfaces neigh/* n'existaient pas avant Linux 2.2.

BOGUES

       Certaines  temporisations sont exprimées en jiffies, qui dépendent de l'architecture et de
       la version du noyau ; consultez time(7).

       Il n'y a pas de moyen  d'envoyer  une  réponse  positive  de  l'espace  utilisateur.  Cela
       signifie  que  les  protocoles  orientés  connexion  implémentés dans l'espace utilisateur
       engendreront un trafic ARP excessif, car ndisc revérifiera régulièrement les adresses MAC.
       Le même problème se pose pour certains protocoles du noyau (par exemple NFS sur UDP).

       Cette page de manuel mélange les fonctionnalités spécifiques à IPv4 et les fonctionnalités
       communes à IPv4 et IPv6.

VOIR AUSSI

       capabilities(7), ip(7), arpd(8)

       RFC 826 pour une description d'ARP. RFC 2461 pour  une  description  de  l'exploration  du
       voisinage  IPv6  et  des  algorithmes de base employés. L'ARP IPv4 de Linux 2.2 et version
       ultérieures utilise l'algorithme IPv6 lorsque c'est possible.

COLOPHON

       Cette page fait partie de la publication 5.13 du projet man-pages Linux.  Une  description
       du  projet et des instructions pour signaler des anomalies et la dernière version de cette
       page peuvent être trouvées à l'adresse https://www.kernel.org/doc/man-pages/.

TRADUCTION

       La traduction française de cette  page  de  manuel  a  été  créée  par  Christophe  Blaess
       <https://www.blaess.fr/christophe/>,  Stéphan  Rafin  <stephan.rafin@laposte.net>, Thierry
       Vignaud <tvignaud@mandriva.com>, François Micaux, Alain  Portal  <aportal@univ-montp2.fr>,
       Jean-Philippe    Guérard   <fevrier@tigreraye.org>,   Jean-Luc   Coulon   (f5ibh)   <jean-
       luc.coulon@wanadoo.fr>,   Julien    Cristau    <jcristau@debian.org>,    Thomas    Huriaux
       <thomas.huriaux@gmail.com>, Nicolas François <nicolas.francois@centraliens.net>, Florentin
       Duneau <fduneau@gmail.com>, Simon Paillard <simon.paillard@resel.enst-bretagne.fr>,  Denis
       Barbier  <barbier@debian.org>,  David  Prévot  <david@tilapin.org>  et  Jean-Pierre Giraud
       <jean-pierregiraud@neuf.fr>

       Cette traduction est une documentation libre ; veuillez vous reporter  à  la  GNU  General
       Public   License   version 3  ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩  concernant  les
       conditions de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.

       Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un
       message à ⟨debian-l10n-french@lists.debian.org⟩.