[Linuxtrent] Re: due pc con mac address uguale

  • From: Antonio Galea <ant9000@xxxxxxxxxx>
  • To: linuxtrent@xxxxxxxxxxxxx
  • Date: Tue, 25 Oct 2005 17:34:10 +0200

On Tue, Oct 25, 2005 at 04:06:57PM +0200, Daniele P. wrote:
>
> Quel che succede esattamente rimane in gran parte indeterminato, per 
> esempio dipende da come si comportano i tuoi dispositivi di rete: il 
> tuo switch, il tuo sistema operativo. Ma di norma non dovrebbe essere 
> un grossissimo problema. Probabilmente la cache dei vari dispositivi 
> coinvolti non servirà a molto e ci sarà un degrado di prestazioni in 
> relazione alla quantità di traffico in contemporanea dei due 
> dispositivi.
> 

Premessa tecnica:

 Una comunicazione TCP/IP ha un host di invio ed uno di destinazione
 individuati ciascuno da un indirizzo IP.

 Se il destinatario non e` nella stessa rete di chi spedisce (controllo che
 viene fatto applicando le netmask delle reti source/dest agli IP source/dest
 e confrontando), il pacchetto con i dati viene girato ad un router che
 gestisce la rete del destinatario; se un router specifico non e` dichiarato,
 il pacchetto va verso il default router (se esiste).

 Nel caso invece i computer siano nella stessa rete, l'indirizzo IP _non_
 viene usato direttamente per la consegna dei dati - si usa invece il MAC.

 Le ethernet sono un medium broadcast: se voglio comunicare con il mac
 x:x:x:x, butto sul cavo una "bottiglia" contrassegnata con quel mac e la
 affido alle onde (elettromagnetiche, in questo caso). Il pc con quel mac lo
 legge dal cavo e agisce di conseguenza (naturalmente, chiunque sia sul cavo
 puo` leggere qualsiasi cosa se setta la sua scheda in modo promiscuo).

 Il computer sorgente -se non possiede gia` l'indirizzo MAC del destinatario-
 manda sul cavo una richiesta broadcast usando il protocollo ARP (address
 resolution protocol): qualcosa del tipo: "io sono IP A.B.C.D e ho MAC
 x.y.z.w; chi ha l'IP a.b.c.d, puo` dirmi qual'e` il suo indirizzo MAC?".
 Quando il computer di destinazione (oppure un proxy ARP) gli risponde, il MAC
 viene salvato nella ARP cache del sorgente. Generalmente, anche il
 destinatario approfitta della richiesta per salvarsi l'IP/MAC del sorgente.

 Per design, il protocollo ARP cerca di parlare il meno possibile; ne risulta
 che la cache ARP delle varie macchine in rete e` (o dovrebbe essere) una
 collezione (variabile in funzione delle comunicazioni in corso) di records
 "praticamente statici".

Torniamo al tuo problema: 

Se le periferiche della ethernet (PC, hub, switch - tutto cio` che ha una
scheda) hanno gia` nella loro cache la coppia IPxyxw/MAC1, tutte le loro
comunicazioni dirette ad IPxywz avranno MAC1 come indirizzo fisico (pensa
all'etichetta sulla bottiglia): il risultato e` che un PC con indirizzi
IPxyzw/MAC2 sara` di fatto invisibile.

Per essere precisi, MAC2 sara` invisibile finche' non prova a comunicare col
resto del mondo: in questo caso, se MAC1 e` silenzioso le cache dei
destinatari di MAC2 si aggiornano e diventa invisibile MAC1. Questo e` il
principio su cui si basano molti sistemi di "IP takeover" usati per fare high
availability, ed e` una "buona cosa" (TM).

I problemi nascono quando anche MAC1 sta dialogando con gli stessi
destinatari di MAC2: in questo caso scoppia quella che in gergo si chiama una
'ARP storm': il traffico ARP aumenta di botto, e le comunicazioni dirette ad
IPxyzw vanno ogni tanto verso MAC1 e ogni tanto verso MAC2, a seconda del
record nell'ARP cache di chi spedisce... e qui sono dolori.

Scrivere ho scritto molto... spero si riesca anche a capire :)

Ant9000

-- 
-----------------------------------------------------------------------------
Dr. Antonio Galea       N e t   W i s e                 http://www.netwise.it
Sviluppo tecnico     Tecnologie per il Web    Tel 0461.421016 Fax 0461.426021
-----------------------------------------------------------------------------
"Understanding. A cerebral secretion that enables one having it to know
 a house from a horse by the roof on the house.
 It's nature and laws have been exhaustively expounded by Locke,
 who rode a house, and Kant, who lived in a horse." - Ambrose Bierce
-----------------------------------------------------------------------------
--
-- 
Per iscriversi  (o disiscriversi), basta spedire un  messaggio con OGGETTO
"subscribe" (o "unsubscribe") a mailto:linuxtrent-request@xxxxxxxxxxxxx


Other related posts: