Passa al contenuto principale

STCP ha avuto il rilevamento di indirizzi IP duplicati per un bel po' di tempo, ma un cambiamento nel comportamento di Microsoft Windows 2008 e 7 ha aggiunto un'interessante ruga.

Prima di tutto esaminiamo come funziona.

Il rilevamento di indirizzi IP duplicati si basa sul protocollo di risoluzione degli indirizzi (ARP).

Lo strumento packet_monitor mostra un pacchetto ARP in due righe come

11:13:43.123 Rcvd Ether Dst ff:ff:ff:ff:ff:ff:ff:ff:ff Src 00:13:d4:59:7a:da Tipo 0806 (ARP)
ARP Req Obiettivo 164.152.77.217 Src 164.152.77.34 [00:13:d4:59:7a:da]

Dove

Rcvd Indica che sono stati ricevuti byte. L'altra opzione è Xmit che indica che i byte sono stati trasmessi
Etere Indica che l'intestazione di un frame Ethernet segue
Dst ff:ff:ff:ff:ff:ff:ff:ff:ff:ff La destinazione Ethernet; in questo caso l'indirizzo di trasmissione
Src 00:13:d4:59:7a:da L'indirizzo sorgente Ethernet
Tipo 0806 (ARP) Indica che si tratta di un telaio ARP, tipo 0806
ARP Indica che la testata di un telaio ARP segue
Req Indica che si tratta di un frame di richiesta (ricerca dell'indirizzo MAC). L'altra opzione è Rep che indica una risposta.
Obiettivo 164.152.77.217 L'indirizzo IP del destinatario
Src 164.152.77.34 L'indirizzo IP dell'host di invio
[00:13:d4:59:7a:da] L'indirizzo Ethernet dell'host di invio

STCP guarda il Src e se corrisponde all'indirizzo IP dell'interfaccia su cui è stato ricevuto, STCP segnala un indirizzo IP duplicato nel syserr_log con un messaggio formattato come

<time> WARNING (<index>): MAC address <MAC address> is using our IP address <IP address>

Per esempio:

11:13:43 AVVISO(5): L'indirizzo MAC 00:13:d4:59:7a:da sta usando il nostro indirizzo IP 164.152.77.34

Il "MAC" sta per Media Access Control e conoscere l'indirizzo MAC vi darà alcuni indizi sull'identità dell'host che ha commesso l'infrazione. I primi 3 byte dell'indirizzo sono chiamati Organizationally Unique Identifier (OUI) e possono essere utilizzati per determinare qualcosa sulla scheda Ethernet o sull'host in cui si trova. Ad esempio, Stratus ha due OUI registrate, 00-00-A8 e 00-04-FC. È possibile consultare qualsiasi OUI all'indirizzo http://standards.ieee.org/develop/regauth/oui/public.html

Molti host, incluso STCP, quando si avviano o quando viene configurata un'interfaccia IP, inviano ciò che è noto come ARP gratuito. Questo frame cerca fondamentalmente il proprio indirizzo IP, se riceve una risposta sa che l'indirizzo IP è in uso. Ecco un esempio di traccia packet_monitor che mostra l'ARP gratuito inviato da un altro modulo VOS, in quanto riporta una delle sue interfacce. Si noti che entrambi gli elementi Destinatario e Src I campi hanno lo stesso indirizzo IP.

10:19:53.045 Rcvd Ether Dst ff:ff:ff:ff:ff:ff:ff:ff:ff Src 00:00:a8:41:3b:6e Tipo 0806 (ARP)
ARP Req Obiettivo 164.152.77.34 Src 164.152.77.34 [00:00:00:a8:41:3b:6e]

Ok, allora cos'è questa ruga di cui ho parlato all'inizio di questo post?

A partire da Windows 2008 e Windows 7, lo stack TCP di Microsoft invia l'ARP gratuito con il campo Src impostato su 0.0.0.0.

10:45:10.530 Rcvd Ether Dst ff:ff:ff:ff:ff:ff:ff:ff:ff Src 1c:c1:de:b4:76:60 Tipo 0806 (ARP)
ARP Req Obiettivo 164.152.77.34 Src 0.0.0.0.0 1c:c1:de:b4:76:60]

Il risultato è che STCP pensa che questa sia una richiesta "normale" per il suo indirizzo Ethernet e risponde con una risposta normale

10:45:10.530 Xmit Ether Dst 1c:c1:de:b4:76:60 Src 00:00:a8:41:3b:6e Tipo 0806 (ARP)
ARP Rep Target 0.0.0.0.0 [1c:c1:de:b4:76:60] Src 164.152.77.34 [00:00:a8:41:3b:6e]

Non registra alcuna indicazione di un indirizzo IP duplicato. La buona notizia è che lo stack di Windows riconosce la duplicazione e passa a un indirizzo locale di collegamento del modulo 169.254.X.Y.

Perché Microsoft ha fatto questo cambiamento? Sembra che molti stack TCP (incluso STCP) aggiornino la loro voce della cache ARP per l'indirizzo IP di origine con l'indirizzo Ethernet incluso nel frame ARP. Se l'indirizzo IP è un duplicato, si finisce per interrompere le connessioni correnti all'indirizzo IP duplicato, poiché i pacchetti vengono reindirizzati all'host duplicato. Modificando il campo Src a 0.0.0.0.0 Microsoft impedisce agli stack TCP (incluso STCP) di aggiornare le loro voci della cache ARP.

© 2024 Stratus Technologies.