Menu Fermer

La commande ARP sur Linux : Utilisations et exemples

La commande arp manipule le cache ARP du système.
Par exemple, vous pouvez vider le cache ARP ou afficher la table ARP (faire un dump).
ARP signifie Address Resolution Protocol. Sa fonction principale de ce protocole réseau est de résoudre l’adresse IP d’un système en son adresse MAC, et il fonctionne donc entre le niveau 2 (couche de liaison de données) et le niveau 3 (couche réseau).
Pour plus d’informations : Protocole ARP : rôle et fonctionnement

Dans ce tutoriel, je vous montre comment utiliser la commande ARP sur Linux avec des exemples.

La commande ARP sur Linux : Utilisations et exemples

Comment utiliser la commande ARP sur Linux

ARP n’est pas une commande de base Linux, ainsi selon votre distribution Linux, la commande arp n’est pas forcément disponible par défaut.
Par exemple dans le cas d’Ubuntu, il faut installer le paquet net-tools.
Soit donc avec APT :

sudo apt install net-tools
Installer le le paquet net-tools sur Ubuntu pour ajouter la commande ARP

La syntaxe de la commande ARP est classique :

arp [-v] [-i if] [-H type] -a [NomHôte]
OPTIONSDESCRIPTION
-aAfficher (tous) les hôtes dans un style alternatif (BSD)
-eAfficher (tous) les hôtes dans le style par défaut (Linux)
-s, –set Définir une nouvelle entrée ARP
-d, –delete Supprimer une entrée spécifiée
-v, –verboseMode bavard
-H type, -hw-type type, -t typeCeci indique à arp quelle classe d’entrées il doit vérifier. La valeur par défaut est l’éther.
La liste des types de matériel possibles (qui prennent en charge ARP) sont ash (Ash), ether (Ethernet), ax25 (AMPR AX.25), netrom (AMPR NET/ROM), rose (AMPR ROSE), arcnet (ARCnet), dlci ( Frame Relay DLCI), fddi (Fiber Distributed Data Interface), hippi (HIPPI), irda (IrLAP), x25 (générique X.25), eui64 (générique EUI-64).
Voir fichier /etc/ethertypes
-n, –numericNe pas résoudre les adresses DNS
Afficher les adresses numériques au lieu d’essayer de déterminer les noms symboliques d’hôte, de port ou d’utilisateur
-i, –deviceSpécifier l’interface réseau (e.g. eth0)
-D, –use-deviceLire à partir d’une interface réseau
-A, -p, –protocolSpécifier le protocole
-f, –fileLire les nouvelles entrées du fichier ou de /etc/ethers
Les options de la commande ARP

La commande ARP sur Linux : Utilisations et exemples

Comment afficher la table ARP et le cache ARP

Pour afficher la table ARP, utilisez la commande arp sans aucune option :

sudo arp

La liste des noms d’hôtes s’affiche avec l’interface réseau et leur adresses IP respectives.

Comment afficher la table ARP et le cache ARP sur Linux

Utilisez l’option -n pour afficher les adresses IP à la place des noms d’hôte.
L’option -v affiche un résumé avec le nombre d’entrée et ceux ignorés :

sudo arp -n -v
Comment afficher la table ARP et le cache ARP sur Linux

Enfin utilisez l’option -a pour afficher la table ARP d’une adresse IP spécifique :

sudo arp -a 192.168.1.100

La commande affiche simplement le contenu du fichier /proc/net/arp.
Ainsi on peut aussi afficher la table ARP avec la commande cat :

cat /proc/net/arp

Comment vider le cache ARP sur Linux

La commande ARP ne permet pas de vider directement le cache ARP mais vous pouvez retirer un hôte et entrée facilement (voir plus bas).
Voici la marche à suivre pour vider le cache ARP sur Linux :

  • Afficher le cache ARP :
sudo arp
sudo ip -s -s neigh flush all
  • La commande indique le nombre d’entrée supprimées de la table ARP :
*** Round 1, deleting 3 entriees ***

Enfin affichez à nouveau la table ARP

Comment vider le cache ARP sur Linux

Comment ajouter une entrée dans la table ARP

On utilise l’option -s pour créer une entrée manuellement dans la table ARP.
Voici la syntaxe à utiliser :

sudo arp -s <adresse IP> <adresse MAC>

Par exemple pour ajouter une entrée dans la table ARP avec l’adresse IP 192.168.1.100 et l’adresse MAC a4:6d:04:00:24:c5 :

sudo arp -s 192.168.1.100 a4:6d:04:00:24:c5
Comment ajouter une entrée du cache ARP sur Linux

Notez que l’on peut spécifier un fichier avec une liste de machine grâce à l’option -f :

sudo arp -f fichier_liste_machine_arp

Comment supprimer une entrée du cache ARP

Pour supprimer une entrée du cache ARP, on utilise l’option -d suivi de l’adresse IP à retirer.
Par exemple, pour supprimer l’entrée de table ARP pour 10.0.0.1 sur l’interface eth1. Cela correspondra aux entrées proxy ARP publiées et aux entrées permanentes.

sudo arp -d <adresse IP>

Par exemple pour supprimer l’entrée avec l’adresse IP 192.168.1.150 dans le cache ARP :

sudo arp -d 192.168.1.150
Comment supprimer une entrée du cache ARP sur Linux
sudo arp -i eth1 -d 10.0.0.1