> Linux Reviews > man >

arp

Module ARP du noyau Linux.


  1. arp.7.man
  2. arp.8.man


1. arp.7.man

Manpage of ARP

ARP

Section: Manuel de l'administrateur Linux (7)
Updated: 3 juin 1999
Index Return to Main Contents
 

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 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

Trois ioctls sont disponibles pour les sockets PF_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 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
attributsignification
ATF_COMRecherche complète
ATF_PERMEntrée permanente
ATF_PUBLEntrée publique
ATF_USETRAILERSDemande trailer
ATF_NETMASKUtiliser le masque réseau
ATF_DONTPUBNe 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

ARP supporte une interface sysctl pour configurer les paramètres sur une base globale ou interface par interface. Les sysctls peuvent être accessibles en lisant ou en écrivant dans le fichier /proc/sys/net/ipv4/neigh/*/* ou en utilisant l'interface sysctl(2). 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
Le nombre maximum de jiffies à attendre avant de répondre à un message de sollicitation IPv6 du voisinage. Le support Anycast n'est pas encore implémenté. Par défaut, le délai est 1 seconde.
app_solicit
Le nombre maximum d'essai d'envoi au démon ARP de l'espace utilisateur par netlink avant de basculer en tentatives multicast (voir mcast_solicit). La valeur par défaut est 0.
base_reachable_time
Une fois qu'un voisin a été trouvé, l'entrée est considérée comme valide 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 on reçoit un retour positif des protocoles de plus haut niveau. La valeur par défaut est 30 secondes.
delay_first_probe_time
Délai avant la première tentative multicast après avoir décidé qu'un voisin est gelé. La valeur par défaut est 5 secondes.
gc_interval
Fréquence avec laquelle on vérifie les entrées valides. La valeur par défaut est 30 secondes.
gc_stale_time
Fréquence avec laquelle on vérifie 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 60 secondes.
gc_thresh1
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
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 512 entrées.
gc_thresh3
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
Le nombre minimum de jiffies pendant lesquels on conserve une entrée ARP dans le cache. Ceci é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 1 seconde.
mcast_solicit
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
Lorsqu'une requête arrive pour une adresse proxy-ARP, on attend proxy_delay jiffies avant de répondre. Ceci permet d'éviter des saturations du réseau dans certains cas. La valeur par défaut est 0,8 secondes.
proxy_qlen
Le nombre maximal de paquets qui peuvent être conservés pour des adresses proxy-ARP. La valeur par défaut est 64.
retrans_time
Le nombre de jiffies à attendre avant de retransmettre une requête. La valeur par défaut est 1 seconde.
ucast_solicit
Le nombre maximal de tentatives d'envoi unicast avant d'interroger le démon ARP (voir app_solicit). La valeur par défaut est 3.
unres_qlen
Le nombre maximal de paquets conservés pour chaque adresse non résolue par les autres couches réseau. La valeur par défaut est 3.
 

BOGUES

Certaines temporisations sont exprimées en jiffies qui dépendent de l'architecture. Sur Alpha, un jiffy correspond à 1/1024 seconde, sur la plupart des autres il correspond à 1/100 seconde.

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.  

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. Le support pour les anciens ioctl a été abandonné dans Linux 2.2.

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.  

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 employés.

L'ARP IPv4 de Linux 2.2 et ultérieurs emploie l'algorithme IPv6 lorsque c'est possible.  

TRADUCTION

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 18 juillet 2006.

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=en man 7 arp ». N'hésitez pas à signaler à l'auteur ou au traducteur, selon le cas, toute erreur dans cette page de manuel.


 

Index

NOM
DESCRIPTION
IOCTLS
SYSCTLS
BOGUES
VERSIONS
VOIR AUSSI
TRADUCTION

This document was created by man2html using the manual pages.
Time: 17:36:29 GMT, October 23, 2013

2. arp.8.man

Manpage of ARP

ARP

Section: Linux Programmer's Manual (8)
Updated: 5 Jan 1999
Index Return to Main Contents
 

NOM

arp - manipule la table ARP du système  

SYNOPSIS

arp [-vn] [-H type] [-i if] -a [nom_hôte]

arp [-v] [-i if] -d nom_hôte [pub]

arp [-v] [-H type] [-i if] -s nom_hôte hw_addr [temp]

arp [-v] [-H type] [-i if] -s nom_hôte hw_addr [netmask nm] pub

arp [-v] [-H type] [-i if] -Ds nom_hôte ifa [netmask nm] pub

arp [-vnD] [-H type] [-i if] -f nom_fichier

 

DESCRIPTION

Arp manipule la table ARP du noyau de différentes façons. Les options principales permettent d'effacer une correspondance d'adresses et d'en définir une manuellement. Pour les besoins de débogage, le programme arp permet aussi d'effectuer un dump complet de la table ARP.  

OPTIONS

-v, --verbose
Dit à l'utilisateur ce qui se passe en étant verbeux.
-n, --numeric
Affiche les adresses numériques au lieu d'essayer de déterminer les nom d'hôtes symboliques.
-H type, --hw-type type
En positionnant ou lisant les entrées ARP, ce paramètre optionnel indique à arp les classes d'entrées qu'il doit contrôler. La valeur par défaut de ce paramètre est ether (i.e. code de matériel 0x01 pour IEEE 802.3 10Mbps Ethernet. D'autres valeurs doivent correspondre à des technologies réseaux telles que ARCnet (arcnet) , PROnet (pronet) , AX.25 (ax25) and NET/ROM (netrom).
-a [nom_d_hôte], --display [nom_d_hôte]
Affiche les entrées concernant l'hôte spécifié. Si le paramètre nom_d_hôte n'est pas utilisé, toutes les entrées seront affichées.
-d nom_d_hôte, --delete nom_d_hôte
Enlève une entrée pour l'hôte spécifié. Ceci peut être utilisé si l'hôte concerné ne fonctionne plus, par exemple.
-D, --use-device
Utilise l'adresse matérielle de l'interface ifa
-i If, --device If
Sélectionne une interface. Lors du dump du cache ARP, seules les entrées correspondant à l'interface spécifiée seront affichées. Lorsque l'on définit une entrée permanente ou une entrée temp , cette interface lui sera associée; si cette option n'est pas utilisée, le noyau fera des tentatives de résolution selon la table de routage. Pour les entrées pub l'interface spécifiée est celle pour laquelle les requêtes ARP auront trouvé une réponse.
NOTE: Ceci est différent de l'interface vers laquelle les datagrammes IP seront routés.
-s nom_d_hôte hw_addr, --set hostname hw_addr
Crée manuellement une correspondance d'adresses ARP pour l'hôte nom_d_hôte avec l'adresse matérielle positionnée à hw_addr. Le format de l'adresse matérielle est dépendant de la classe du matériel, mais pour la plupart on peut considérer que la présentation classique peut être utilisée. Pour la classe Ethernet, c'est 6 octets en hexadécimal, séparés par des double-points. Pour ajouter des entrées proxy-arp (Ce sont celles avec l'indicateur publish positionné) un masque réseau ( netmask ) peut être spécifié au proxy-arp pour le sous-réseau entier. Ceci n'est pas très recommandé, mais est supporté par les anciens noyaux, car c'est utile dans certains cas. Si l'indicateur temp n'est pas fourni, les entrées ARP seront permanentes.
NOTE: A partir du noyau 2.2.0 il n'est plus possible de définir des entrées ARP pour un sous réseau entier.
-f nom_de_fichier, --file nom_de_fichier
Similaire à l'option -s , mais cette fois les informations d'adresses sont prises dans le fichier nom_de_fichier nombreuses. Le nom du fichier de données est très souvent nommé /etc/ethers , mais ce n'est pas officiel.

Le format du fichier est simple; Il contient seulement des lignes de texte ASCII avec sur chaque ligne un nom d'hôte et une adresse matérielle, séparés par des espaces. Les indicateurs pub, temp et netmask peuvent également être utilisés.

A tous les endroits où un nom d'hôte est attendu, on peut aussi entrer une addresse IP en notation décimale pointée.

Chaque entrée complète se trouvant dans le cache ARP est marquée de l'indicateur C M et les entrées 'pub' ont l'indicateur P  

FICHIERS

/proc/net/arp,
/etc/networks
/etc/hosts
/etc/ethers  

VOIR AUSSI

rarp(8), route(8), ifconfig(8), netstat(8)  

AUTEUR

Fred N. van Kempen, <waltje@uwalt.nl.mugnet.org> avec les améliorations apportées par le mainteneur des net-tools Bernd Eckenfels <net-tools@lina.inka.de>.  

TRADUCTION

Jean Michel VANSTEENE (vanstee@worldnet.fr)


 

Index

NOM
SYNOPSIS
DESCRIPTION
OPTIONS
FICHIERS
VOIR AUSSI
AUTEUR
TRADUCTION

This document was created by man2html using the manual pages.
Time: 17:36:29 GMT, October 23, 2013

SVENSKA - SVENSKA - SVENSKA - ja - pl