arp | Début | Suivant | Sommaire | Préc.page.lue | Accueil |
NOM | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
DESCRIPTION | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
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 quelle socket PF_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 sysctls décrits plus bas.
Lorsqu'il n'y a pas de retour positif pour une correspondance existante après un certain temps (voir les sysctls 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 ceci échoue, et si une ancienne adresse MAC est connue, une tentative unicast est envoyée ucast_solicit fois. Si on é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, et si l'arp proxy est validé sur l'interface réceptrice. Aucune entrée n'est ajoutée s'il y a une route de rejet.
Ioctls | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
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 ajoute, supprime, et consulte 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 socket 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 octet 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 publique |
ATF_USETRAILERS | Demande trailer |
ATF_NETMASK | Utiliser le masque réseau |
ATF_DONTPUB | Ne pas répondre |
Si l'attribut ATF_NETMASK est activé, alors le membre arp_netmask doit être valide. Linux 2.2 ne supporte pas 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é.
Sysctls | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
VERSIONS | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
Le support pour les entrées proxy ARP concernant des réseaux (netmask différent de 0xFFFFFFF) a été supprimé de Linux 2.2. Il est remplacé par une configuration proxy ARP automatique dans le noyau pour tous les hôtes accessibles sur les autres interfaces (lorsque l'on fait du forwarding et que le proxy ARP est activé sur l'interface).
Les requêtes sysctl neigh/* n'existaient pas avant Linux 2.2.
BOGUES | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
Il n'y a pas de moyen d'envoyer une réponse positive de l'espace utilisateur. Ceci 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 spécificités IPv4 et les fonctionnalités communes à IPv4 et IPv6.
VOIR AUSSI | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
RFC 826 pour une description de l'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 ultérieurs emploie l'algorithme IPv6 lorsque c'est possible.
TRADUCTION | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
Ce document est une traduction réalisée par Christophe Blaess <http://www.blaess.fr/christophe/> le 4 janvier 2000 et révisée le 29 décembre 2007.
L'équipe de traduction a fait le maximum pour réaliser une adaptation française de qualité. La version anglaise la plus à jour de ce document est toujours consultable via la commande : « LANG=C man 7 arp ». N'hésitez pas à signaler à l'auteur ou au traducteur, selon le cas, toute erreur dans cette page de manuel.
Sommaire | Début | Suivant | Sommaire | Préc.page.lue | Accueil |
Table des mots clés | Début | Suivant | Sommaire | Préc.page.lue | Accueil |
anycast_delay | Sysctls |
app_solicit | Sysctls |
base_reachable_time | Sysctls |
delay_first_probe_time | Sysctls |
gc_interval | Sysctls |
gc_stale_time | Sysctls |
gc_thresh1 | Sysctls |
gc_thresh2 | Sysctls |
gc_thresh3 | Sysctls |
locktime | Sysctls |
mcast_solicit | Sysctls |
proxy_delay | Sysctls |
proxy_qlen | Sysctls |
retrans_time | Sysctls |
ucast_solicit | Sysctls |
unres_qlen | Sysctls |