Provided by:
manpages-fr_3.32d0.2p4-1_all 
NOM
arp - Module ARP du noyau Linux
DESCRIPTION
Ce module du noyau implemente le protocole de resolution d'adresse ARP
tel qu'il est decrit dans le document RFC 826. Il sert a la conversion
entre les adresses materielles de niveau 2 et les adresses du protocole
IPv4 sur les reseaux connectes 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 mecanisme pour gerer le
cache ARP dans l'espace utilisateur avec des sockets netlink(7). La
table ARP peut etre controlee par le biais d'un ioctl(2) sur n'importe
quelle socket AF_INET.
Le module ARP maintient un cache des correspondances entre les adresses
materielles et les adresses logiques. Le cache a une taille limitee,
ainsi les entrees anciennes et utilisees moins frequemment sont
recuperees. Les entrees qui sont marquees comme permanentes ne sont
jamais effacees. Le cache peut etre manipule directement par
l'intermediaire des ioctls et son comportement peut etre ajuste a
l'aide des interfaces /proc decrites plus bas.
Lorsqu'il n'y a pas de retour positif pour une correspondance existante
apres un certain temps (voir les interfaces /proc ci-dessous), l'entree
est consideree comme gelee. Un retour positif peut etre obtenu d'un
niveau superieur, par exemple un ACK TCP reussi. D'autres protocoles
peuvent signaler des avancees en utilisant l'attribut MSG_CONFIRM de
sendmsg(2). Pour envoyer a nouveau des donnees a cette cible, l'ARP
essaye d'abord d'interroger un demon arp local au maximum app_solicit
fois, afin d'obtenir une adresse MAC a jour. Si ceci echoue, et si une
ancienne adresse MAC est connue, une tentative unicast est envoyee
ucast_solicit fois. Si on echoue encore, il enverra une requete ARP en
broadcast sur le reseau. Les requetes ne sont envoyees que s'il y a des
donnees en attente d'emission.
Linux ajoutera automatiquement une entree arp proxy non permanente
lorsqu'il recoit une requete pour une adresse a laquelle il envoie des
donnees, si le proxy arp est valide sur l'interface receptrice. Aucune
entree n'est ajoutee 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 parametre.
struct arpreq {
struct sockaddr arp_pa; /* adresse protocole */
struct sockaddr arp_ha; /* adresse materielle */
int arp_flags; /* attributs */
struct sockaddr arp_netmask; /* masque reseau du protocole */
char arp_dev[16];
};
SIOCSARP, SIOCDARP et SIOCGARP ajoute, supprime, et consulte
respectivement une correspondance ARP. L'ajout et la suppression de
correspondance ARP sont des operations privilegiees ne pouvant etre
realisees que par un processus avec la capacite CAP_NET_ADMIN ou un UID
effectif nul.
arp_pa doit etre une socket AF_INET et arp_ha doit etre du meme type
que le peripherique indique dans arp_dev. arp_dev est une chaine
terminee par un caractere nul, contenant le nom d'un peripherique.
+--------------------------------------------+
| arp_flags |
+----------------+---------------------------+
|attribut | signification |
+----------------+---------------------------+
|ATF_COM | Recherche complete |
+----------------+---------------------------+
|ATF_PERM | Entree permanente |
+----------------+---------------------------+
|ATF_PUBL | Entree publique |
+----------------+---------------------------+
|ATF_USETRAILERS | Demande trailer |
+----------------+---------------------------+
|ATF_NETMASK | Utiliser le masque reseau |
+----------------+---------------------------+
|ATF_DONTPUB | Ne pas repondre |
+----------------+---------------------------+
Si l'attribut ATF_NETMASK est active, alors le membre arp_netmask doit
etre valide. Linux 2.2 ne prend pas en charge les entrees ARP proxy
reseau. Ainsi, il doit etre configure avec 0xFFFFFFFF ou 0 pour
supprimer une entree arp proxy existante. ATF_USETRAILERS est obsolete
et ne doit pas etre utilise.
Interfaces /proc
ARP prend en charge une serie d'interface /proc pour configurer les
parametres sur une base globale ou interface par interface. Les
interfaces sont accessibles en lisant ou en ecrivant dans les fichiers
/proc/sys/net/ipv4/neigh/*/*. Chaque interface dans le systeme a son
propre repertoire dans /proc/sys/net/ipv4/neigh/. La configuration dans
le repertoire << default >> sert pour tous les nouveaux peripheriques.
Sauf mention contraire, les durees sont en secondes.
anycast_delay (depuis Linux 2.2)
Le nombre maximal de jiffies a attendre avant de repondre a un
message de sollicitation IPv6 du voisinage. La prise en charge
anycast n'est pas encore implementee. Par defaut, le delai est
1 seconde.
app_solicit (depuis Linux 2.2)
Le nombre maximal d'essais d'envoi au demon ARP de l'espace
utilisateur par netlink avant de basculer en tentatives
multicast (consultez mcast_solicit). La valeur par defaut est 0.
base_reachable_time (depuis Linux 2.2)
Une fois qu'un voisin a ete trouve, l'entree est consideree
comme valide pendant, au moins, une duree aleatoire entre
base_reachable_time/2 et 3*base_reachable_time/2. La validite
d'une entree sera etendue si on recoit un retour positif des
protocoles de plus haut niveau. La valeur par defaut est
30 secondes. Ce fichier est maintenant obsolete et remplace par
base_reachable_time_ms.
base_reachable_time_ms (depuis Linux 2.6.12)
Comme pour base_reachable_time, mais le temps est mesure en
millisecondes. La valeur par defaut est 30000 millisecondes.
delay_first_probe_time (depuis Linux 2.2)
Delai avant la premiere tentative multicast apres avoir decide
qu'un voisin est gele. La valeur par defaut est 5 secondes.
gc_interval (depuis Linux 2.2)
Frequence avec laquelle on verifie les entrees valides. La
valeur par defaut est 30 secondes.
gc_stale_time (depuis Linux 2.2)
Frequence avec laquelle on verifie une entree de voisinage
gelee. Lorsqu'une correspondance est consideree comme gelee,
elle sera a nouveau redeterminee avant d'y envoyer des donnees.
La valeur par defaut est 60 secondes.
gc_thresh1 (depuis Linux 2.2)
Le nombre minimal d'entrees a conserver dans le cache ARP. Le
recuperateur ne sera pas declenche s'il y a moins d'entrees que
cette valeur. La valeur par defaut est 128.
gc_thresh2 (depuis Linux 2.2)
La limite maximale souple d'entrees a conserver dans le cache
ARP. Le recuperateur autorisera un depassement de cette valeur
pendant 5 secondes avant de lancer une veritable recuperation.
La valeur par defaut est 512 entrees.
gc_thresh3 (depuis Linux 2.2)
La limite maximale d'entrees a conserver dans le cache ARP. Le
recuperateur sera immediatement declenche si cette valeur est
depassee. La valeur par defaut est 1024.
locktime (depuis Linux 2.2)
Le nombre minimal de jiffies pendant lesquels on conserve une
entree ARP dans le cache. Ceci evite la degradation du cache
s'il y a plusieurs correspondances possibles (generalement a
cause d'une mauvaise configuration du reseau). La valeur par
defaut est 1 seconde.
mcast_solicit (depuis Linux 2.2)
Le nombre maximal de tentatives de resolution d'une adresse par
le multicast et le broadcast avant de marquer l'entree comme
inaccessible. La valeur par defaut est 3.
proxy_delay (depuis Linux 2.2)
Lorsqu'une requete arrive pour une adresse proxy-ARP, on attend
proxy_delay jiffies avant de repondre. Ceci permet d'eviter des
saturations du reseau dans certains cas. La valeur par defaut
est 0,8 secondes.
proxy_qlen (depuis Linux 2.2)
Le nombre maximal de paquets qui peuvent etre conserves pour des
adresses proxy-ARP. La valeur par defaut est 64.
retrans_time (depuis Linux 2.2)
Le nombre de jiffies a attendre avant de retransmettre une
requete. La valeur par defaut est 1 seconde. Ce fichier est
maintenant obsolete et remplace par retrans_time_ms.
retrans_time_ms (depuis Linux 2.6.12)
Le nombre de millisecondes a attendre avant de retransmettre une
requete. La valeur par defaut est 1000 millisecondes.
ucast_solicit (depuis Linux 2.2)
Le nombre maximal de tentatives d'envoi unicast avant
d'interroger le demon ARP (consultez app_solicit). La valeur par
defaut est 3.
unres_qlen (depuis Linux 2.2)
Le nombre maximal de paquets conserves pour chaque adresse non
resolue par les autres couches reseau. La valeur par defaut est
3.
VERSIONS
La structure arpreq a change dans Linux 2.0 pour inclure le membre
arp_dev et les numeros d'ioctl ont change en meme temps. La prise en
charge pour les anciens ioctl a ete abandonnee dans Linux 2.2.
La prise en charge pour les entrees proxy ARP concernant des reseaux
(netmask different de 0xFFFFFFF) a ete supprimee de Linux 2.2. Elle est
remplacee par une configuration proxy ARP automatique dans le noyau
pour tous les hotes accessibles sur les autres interfaces (lorsque l'on
fait du forwarding et que le proxy ARP est active sur l'interface).
Les interfaces neigh/* n'existaient pas avant Linux 2.2.
BOGUES
Certaines temporisations sont exprimees en jiffies, qui dependent de
l'architecture et de la version du noyau ; consultez time(7).
Il n'y a pas de moyen d'envoyer une reponse positive de l'espace
utilisateur. Ceci signifie que les protocoles orientes connexion
implementes dans l'espace utilisateur engendreront un trafic ARP
excessif, car ndisc reverifiera regulierement les adresses MAC. Le meme
probleme se pose pour certains protocoles du noyau (par exemple NFS sur
UDP).
Cette page de manuel melange les specificites IPv4 et les
fonctionnalites communes a IPv4 et IPv6.
VOIR AUSSI
capabilities(7), ip(7)
RFC 826 pour une description de l'ARP.
RFC 2461 pour une description de l'exploration du voisinage IPv6 et des
algorithmes de base employes.
L'ARP IPv4 de Linux 2.2 et ulterieurs emploie l'algorithme IPv6 lorsque
c'est possible.
COLOPHON
Cette page fait partie de la publication 3.32 du projet man-pages
Linux. Une description du projet et des instructions pour signaler des
anomalies peuvent etre trouvees a l'adresse
<URL:http://www.kernel.org/doc/man-pages/>.
TRADUCTION
Depuis 2010, cette traduction est maintenue a l'aide de l'outil po4a
<URL:http://po4a.alioth.debian.org/> par l'equipe de traduction
francophone au sein du projet perkamon
<URL:http://perkamon.alioth.debian.org/>.
Christophe Blaess <URL:http://www.blaess.fr/christophe/> (1996-2003),
Alain Portal <URL:http://manpagesfr.free.fr/> (2003-2006). Julien
Cristau et l'equipe francophone de traduction de Debian (2006-2009).
Veuillez signaler toute erreur de traduction en ecrivant a
<debian-l10n-french@lists.debian.org> ou par un rapport de bogue sur le
paquet manpages-fr.
Vous pouvez toujours avoir acces a la version anglaise de ce document
en utilisant la commande << man -L C <section> <page_de_man> >>.