Passa al contenuto principale

La cache ARP esiste in una forma o nell'altra su ogni host che comunica via IP via Ethernet. La cache contiene la mappatura tra l'indirizzo IP e l'indirizzo MAC (Ethernet Media Access Control). Se si cambia un adattatore Ethernet su un host chiamato SERVER-1 o si sostituisce il SERVER-1 con hardware più recente / più veloce tutti gli host sul segmento locale Ethernet che comunicano con il SERVER-1 avranno bisogno di aggiornare la loro cache ARP. Il SERVER-1 può inviare un pacchetto ARP gratuito che dovrebbe aggiornare tutti gli host, ma poiché si tratta di Ethernet c'è la possibilità che il pacchetto ARP sia corrotto o semplicemente abbandonato, quindi non si può fare affidamento su di esso.

Le voci della cache ARP nello stack STCP su OpenVOS hanno una durata di 10 minuti, cioè dopo 10 minuti vengono cancellate automaticamente e vengono aggiunte nuovamente la prossima volta che un pacchetto deve essere inviato. Quando si visualizza la cache ARP, essa mostra il tempo rimanente per ogni voce. Quindi, nel peggiore dei casi, dopo aver cambiato il SERVER-1, ci vorranno 10 minuti perché la vecchia mappatura (non corretta) scada e venga aggiunta una nuova mappatura (corretta). Durante questo tempo la comunicazione con il SERVER-1 non sarà possibile.

È possibile cancellare una determinata voce con il comando arp -delete. La Figura 1 mostra un'istanza del comando arp che mostra l'indirizzo MAC e il tempo di vita seguito dal comando arp -delete per cancellare la voce e un'altra istanza del comando arp che mostra che non c'è più una voce nella cache.

arp 192.168.50.5

Indirizzo Internet Tipo di indirizzo MAC Vita
192.168.50.5 00-04-96-1F-67-0C temp. 6 min.
pronto 14:01:30

arp -cancellare 192.168.50.5

Mappatura per 192.168.50.5 cancellato

pronto 14:01:39

arp 192.168.50.5
arp: nessuna mappatura per 192.168.50.5

pronto 14:01:44
Figura 1 - comandi "arp" e "arp -delete

Il vecchio stack TCP_OS aveva un comando arp -flush che cancellava tutte le voci nella cache ARP. Se si ha più di una voce da cancellare può essere più facile (meno digitazione) cancellarle tutte. Dato che le voci vengono aggiunte automaticamente in quanto necessarie, l'unico lato negativo è costituito da alcuni pacchetti extra sulla rete e da un ulteriore ritardo (mentre la cache ARP viene ripopolata) nell'invio del primo pacchetto. Dal punto di vista del dattilografo non c'è nessun lato negativo.

Lo stack STCP non ha un'opzione di lavaggio

---------------------------------- arp ---------------------------------
 hostname:
 -tutti: no
 -rete:
 -cancellare: no
 -set: no
 mac_addr:
Figura 2 - Modulo di comando STCP arp

Così ho scritto una breve macro (figura 3) per farlo. La macro reindirizza l'output di arp -all ad un file nella directory del processo, poi analizza il file per estrarre gli indirizzi IP e chiama arp -delete con ogni indirizzo. Quando completerà alcune delle voci torneranno indietro, ma saranno state tutte aggiornate con la mappatura corrente.

e arp_flush.cm inizia qui
&
& Versione 1.00 11-04-17
& niah.davids@stratus.com
&
& Questo script cancella la cache dell'arp cancellando singolarmente ogni voce.
& Per quando sarà fatto, alcune voci torneranno indietro.
&
&
& Questo software viene fornito "così com'è", SENZA ALCUNA GARANZIA O
E QUALSIASI TIPO DI SUPPORTO DI QUALSIASI TIPO. L'AUTORE DISCLAUDE SPECIFICAMENTE QUALSIASI IMPLICITA
E GARANZIE DI COMMERCIABILITÀ O IDONEITÀ PER QUALSIASI SCOPO PARTICOLARE.
& La presente clausola di esclusione di responsabilità si applica, nonostante le dichiarazioni verbali di qualsiasi
e gentile da parte dell'autore o di chiunque altro.
&
&set_string_file (processo_dir)>arcata_lista
attach_default_output &FILE&FILE&
arp -tutti
uscita_default_default_output
LINEA 2
&label di nuovo
&set LINE (calc &LINE&LINE& + 1)
&set_string IP (substrato (contenuto &FILE& &LINE& -hold) 1 16)
se (fine_di_file &FILE&) = 1 &allora &ritorno
se (lunghezza X&IP&) = 1 e poi ritorno
arp -delete &IP&
&goto di nuovo
&
e arp_flush.cm termina qui
Figura 3 - macro comando arp_flush

La figura 4 mostra un'istanza del comando arp -all per vedere cosa c'è nella cache dell'arp, poi un'esecuzione della macro arp_flush seguita da un'altra istanza di arp -all, si noti che tutti i tempi di vita nel secondo arp -all sono di 10 minuti. Ho rimosso molte delle righe del primo arp -all e dell'output arp_flush per ridurre lo spazio richiesto.

arp -tutti

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

pronto 13:46:14
arp_flush

Mappatura per 10.10.1.200 cancellato

Mappatura per 192.168.50.1 cancellato

Mappatura per 192.168.50.4 cancellato

Mappatura per 192.168.50.2 cancellato

Mappatura per 192.168.50.19 cancellato

Mappatura per 192.168.50.21 cancellato

. . . . . . .

Mappatura per 192.168.51.252 cancellato

Mappatura per 192.168.51.253 cancellato

pronto 13:46:23

arp -tutti

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

pronto 13:46:27
Figura 4 - Esecuzione della macro di comando arp_flush

 

© 2020 Stratus Tecnologie.