Skip to main content

Le cache ARP existe sous une forme ou une autre sur chaque hôte qui communique via IP sur Ethernet. Le cache contient la correspondance entre l'adresse IP et l'adresse MAC (Media Access Control) Ethernet. Si vous changez un adaptateur Ethernet sur un hôte nommé SERVER-1 ou si vous remplacez le SERVER-1 par un matériel plus récent / plus rapide, tous les hôtes du segment Ethernet local qui communiquent avec le SERVER-1 auront besoin de mettre à jour leur cache ARP. Le SERVER-1 peut envoyer un paquet ARP gratuit qui devrait mettre à jour tous les hôtes, mais comme il s'agit d'Ethernet, il est possible que le paquet ARP soit corrompu ou simplement abandonné, de sorte que vous ne pouvez pas vous y fier.

Les entrées du cache ARP dans la pile STCP d'OpenVOS ont une durée de vie de 10 minutes, c'est-à-dire qu'après 10 minutes, elles sont automatiquement supprimées et seront ajoutées la prochaine fois qu'un paquet devra être envoyé. Lorsque vous affichez le cache ARP, il indique le temps restant pour chaque entrée. Le pire scénario est donc qu'après avoir changé de SERVER-1, il faudra 10 minutes pour que l'ancienne cartographie (incorrecte) expire et qu'une nouvelle cartographie (correcte) soit ajoutée. Pendant ce temps, la communication avec le SERVER-1 ne sera pas possible.

Vous pouvez supprimer une entrée donnée avec la commande arp -delete. La figure 1 montre une instance de la commande arp affichant l'adresse MAC et la durée de vie suivie de la commande arp -delete pour supprimer l'entrée et une autre instance de la commande arp montrant qu'il n'y a plus d'entrée dans le cache.

arp 192.168.50.5

Adresse Internet Adresse MAC Type de vie
192.168.50.5 00-04-96-1F-67-0C temp 6 min
prêt 14:01:30

arp -delete 192.168.50.5

Cartographie pour 192.168.50.5 supprimée

prêt 14:01:39

arp 192.168.50.5
arp : pas de cartographie pour 192.168.50.5

prêt 14:01:44
Figure 1 - Les commandes "arp" et "arp -delete

L'ancienne pile TCP_OS avait une commande arp -flush qui supprimait toutes les entrées dans le cache ARP. Si vous avez plus d'une entrée à supprimer, il peut être plus facile (moins de frappe) de les supprimer toutes. Comme les entrées sont ajoutées automatiquement au fur et à mesure qu'elles sont nécessaires, le seul inconvénient est qu'il y a quelques paquets supplémentaires sur le réseau et un retard supplémentaire (pendant que le cache ARP est repeuplé) dans l'envoi du premier paquet. Du point de vue de la dactylographie, il n'y a aucun inconvénient.

La pile STCP ne dispose pas d'une option de chasse d'eau

---------------------------------- arp ---------------------------------
 nom d'hôte :
 -tous : non
 -réseau :
 -déléguer : non
 -set : non
 mac_addr :
Figure 2 - Formulaire de commande STCP arp

J'ai donc écrit une courte macro (figure 3) pour le faire. La macro redirige la sortie de arp -all vers un fichier dans le répertoire du processus, puis analyse le fichier pour en extraire les adresses IP et appelle arp -delete avec chaque adresse. Une fois l'opération terminée, certaines entrées seront de retour, mais elles auront toutes été actualisées avec le mappage actuel.

& arp_flush.cm commence ici
&
& Version 1.00 11-04-17
& niah.davids@stratus.com
&
& Ce script efface le cache arp en supprimant individuellement chaque entrée.
& Au moment où cela est fait, certaines entrées seront de retour.
&
&
& Ce logiciel est fourni "tel quel", SANS AUCUNE GARANTIE OU
& TOUT SOUTIEN DE QUELQUE NATURE QUE CE SOIT. L'AUTEUR DECLARE SPECIFIQUEMENT TOUTE IMPLICITE
ET DES GARANTIES DE QUALITÉ MARCHANDE OU D'ADÉQUATION À UN USAGE PARTICULIER.
& Cette clause de non-responsabilité s'applique, malgré toute représentation verbale de
& genre fourni par l'auteur ou par toute autre personne.
&
&set_string FILE (process_dir)>arp_list
attach_default_output &FILE&
arp -all
detach_default_output
&set LINE 2
&label again
&set LINE (calc &LINE& + 1)
&set_string IP (substr (content &FILE& &LINE& -hold) 1 16)
&if (end_of_file &FILE&) = 1 &then &return
&if (longueur X&IP&) = 1 &then &return
arp -delete &IP&
&goto encore
&
& arp_flush.cm se termine ici
Figure 3 - Macro de commande arp_flush

La figure 4 montre une instance de la commande arp -all pour voir ce qui se trouve dans le cache arp puis une exécution de la macro arp_flush suivie d'une autre instance de arp -all, notez que toutes les durées de vie dans le second arp -all sont de 10 minutes. J'ai supprimé de nombreuses lignes de la première sortie de arp -all et arp_flush pour réduire l'espace nécessaire.

arp -all

Adresse Internet Adresse MAC Type de vie
10.10.1.200 00-90-E8-1F-4B-EA temp 8 mins
192.168.50.1 00-04-96-19-0B-20 temp 10 mins
192.168.50.4 00-04-96-35-3F-B5 temp 1 mins
192.168.50.2 00-04-96-20-C7-EC temp 4 mins
192.168.50.19 00-0C-29-6B-CA-AE temp 6 mins
192.168.50.21 00-23-54-79-C5-81 temp 7 mins
. . . . .
192.168.51.252 00-50-56-BB-4D-8C temp 5 mins
192.168.51.253 00-0C-29-86-AD-CC temp 3 mins

prêt 13:46:14
arp_flush

Cartographie pour 10.10.1.200 supprimée

Cartographie pour 192.168.50.1 supprimée

Cartographie pour 192.168.50.4 supprimée

Cartographie pour 192.168.50.2 supprimée

Cartographie pour 192.168.50.19 supprimée

Cartographie pour 192.168.50.21 supprimée

. . . . . . .

Cartographie pour 192.168.51.252 supprimée

Cartographie pour 192.168.51.253 supprimée

prêt 13:46:23

arp -all

Adresse Internet Adresse MAC Type de vie
192.168.50.2 00-04-96-20-C7-EC temp 10 mins
192.168.51.4 00-04-FC-01-02-3E temp 10 mins
192.168.51.11 00-00-A8-80-80-4A temp 10 mins
192.168.51.49 00-50-56-46-08-2C temp 10 mins
192.168.51.50 00-23-54-52-18-6E temp 10 mins
192.168.51.76 00-23-54-52-1B-F5 temp 10 mins
192.168.51.100 00-0C-29-A9-85-44 temp 10 mins
192.168.51.128 00-00-A8-43-52-22 temp 10 mins
192.168.51.158 00-26-B9-BC-B7-37 temp 10 mins
192.168.51.180 5C-26-0A-06-BD-29 temp 10 mins
192.168.51.203 00-00-A8-C0-86-A1 temp 10 mins

prêt 13:46:27
Figure 4 - Exécution de la macro de commande arp_flush

 

2020 Stratus Technologies.