Perché gli switch necessitano di tabelle ARP quando la traduzione viene eseguita sul lato macchine?


12

Come risulta chiaro dal titolo, perché gli switch necessitano di tabelle ARP quando la traduzione viene eseguita sul lato macchine?

In parole povere, perché ci sono due tabelle ARP su macchine e su switch? Quello sull'interruttore non è sufficiente?


Penso che le risposte in questa pagina siano corrette. Ho trovato altri commentatori su altre pagine dicendo che gli switch L2 contengono tabelle ARP. Questo non ha senso. Solo i dispositivi L3 contengono tabelle ARP.
Stephen Gibbons,

Risposte:


23

Questo è un malinteso piuttosto comune o, più specificamente, un problema di terminologia. In uno switch di livello due, non esiste una tabella ARP, ma solo una tabella di inoltro. Lo switch registra ogni indirizzo MAC di src che vede in entrata nella tabella di inoltro e lo attribuisce alla porta in modo che i frame con un MAC DST vengano inviati solo alla porta nota per quel MAC. Molte persone lo chiamano "tabella arp" o "cache arp" anche se non lo è.

In uno switch di livello due gestito, è presente una tabella di inoltro più una tabella ARP, ma quest'ultima viene utilizzata solo per l'interfaccia di gestione per comunicare con gli host interessati (ovvero il PC che si sta utilizzando per configurare lo switch). In uno switch di livello 3 gestito ci sarà una tabella di inoltro più una tabella ARP, poiché ne ha bisogno per l'interfaccia di gestione più la funzionalità del router esiste per eseguire l'inoltro tra le sottoreti.


Comprendo che modellereste uno switch come un insieme di porte (switch). Le porte sono code di pacchetti numerate. Lo switch scarica le porte in un ordine arbitrario e mantiene una mappatura da mac a porta. Quando un pacchetto viene scaricato da una porta, src mac (indirizzo) viene mappato sulla porta (numero). Quando un pacchetto svuotato deve essere consegnato, viene inviato alla porta del mac dest se noto o trasmesso se non noto. Ciò significa che una porta deve ottenere un pacchetto eth per essere mappata.
Rob,

@Rob, ci sono una serie di affermazioni poco chiare, se non addirittura imprecise, nel tuo commento. Le porte non sono code; potrebbe esserci un mapping 1 a 1 su alcune piattaforme, ma non sono uguali. L'indirizzo MAC viene appreso quando viene ricevuto un frame, non trasmesso. I frame vengono recapitati nella coda di output nell'ordine in cui vengono ricevuti, possibilmente in combinazione con una sorta di QoS, non è arbitrario. I frame con indirizzi di destinazione sconosciuti vengono inondati, non trasmessi.
YLearn

Quindi: switch modello come coppie numerate di (pacchetto ethernet) code (in, out). Quando viene letta una coda di input, assicurarsi che src mac di quel pacchetto sia mappato sul numero di porta della coda di input. Quel pacchetto deve essere inserito nella coda di uscita corrispondente a dst mac. Se la porta non è mappata, il pacchetto viene accodato in tutte le code di uscita diverse dalla propria. (Non sono sicuro di quale sia la distinzione broadcast / flood, dato che presumo che invii letteralmente lo stesso segnale su tutti i cavi a livello di hardware; o forse si rompa i robot attraverso le porte?)
Rob,

Ah ... penso di vedere l'obiezione alla modellazione dello switch come code di pacchetti. Lo switch potrebbe funzionare su blocchi di dati più piccoli rispetto a interi pacchetti. Vale a dire: non appena sappiamo quali porte dovrebbero ottenere un pacchetto per cui stiamo ottenendo byte, potremmo inviare quei byte. es: mettere in coda i byte sufficienti per gestire l'intestazione ethernet; non contenere l'intero pacchetto.
Rob,

@Rob, un frame allagato è un frame unicast con una destinazione sconosciuta che viene inondata da ogni porta diversa dalla porta di ricezione. Una trasmissione è un frame di tutte le destinazioni che viene inviato a tutte le porte diverse dalla porta di ricezione, ma continuerà a essere trattato in questo modo da tutti gli switch che lo ricevono nel dominio di trasmissione L2. Sebbene simile in effetti su un singolo switch, l'effetto sull'intera rete è significativamente diverso.
YLearn

6

Ogni dispositivo che utilizza il protocollo IP ha una tabella ARP. Poiché IP è un protocollo L3 e richiede un protocollo L2 sottostante, questo è un requisito affinché un dispositivo sia in grado di tradurre un indirizzo IP L3 nel suo indirizzo L2 corrispondente.

Indipendentemente dal fatto che il dispositivo comunichi o meno a un indirizzo IP sulla rete locale, deve inviare il proprio traffico L2 (per semplificare, escludiamo la trasmissione e il multicast da questa discussione) a un dispositivo specifico sul dominio L2 locale. Se l'indirizzo IP si trova sulla rete locale, questo sarebbe diretto al dispositivo di destinazione. In caso contrario, questo sarebbe il dispositivo che funziona come gateway o router per la rete locale che può inoltrare il traffico L3 verso la sua destinazione.

Se uno switch non utilizza affatto il protocollo IP (ovvero non fornisce nemmeno alcun tipo di gestione tramite IP, nessuna funzionalità L3, ecc.), Non ha bisogno di una tabella ARP.

Tuttavia, non sono a conoscenza di una piattaforma switch aziendale che non utilizza il protocollo IP. Telnet, SSH, HTTP, HTTPS e SNMP sono solo alcuni esempi dei servizi comunemente supportati di uno switch aziendale che richiederebbe l'accesso all'IP.


2

Come probabilmente già saprai, lo scopo della tabella ARP è tradurre gli indirizzi del livello di rete in indirizzi del livello di collegamento. cioè indirizzi IP a indirizzi MAC.

Le tabelle a cui ti riferisci non sono del tutto complete. Gli switch di livello 2 hanno anche due tipi di tabelle:

  • una tabella ARP utilizzata per comunicare con l'interruttore "come computer" per l'interfaccia con i suoi controlli. Bene, avrà questo se si tratta di uno switch gestito

  • una tabella che collega le porte degli switch agli indirizzi MAC

Esempio 1: se un PC avvia un pacchetto, utilizzerà l'indirizzo MAC se l'indirizzo IP è locale (dalla tabella ARP). Quando quel pacchetto raggiunge uno switch, lo switch sposta il pacchetto sulla porta appropriata in base all'indirizzo MAC (dalla porta switch / tabella MAC).

Esempio2: se uno switch avvia un pacchetto dalla sua interfaccia di gestione, fa la stessa cosa che farebbe un PC usando la sua tabella ARP. Ma, se uno switch avvia un pacchetto dalla sua funzione di commutazione, sposta semplicemente quel pacchetto da una porta all'altra in base alla sua tabella porta / MAC.


Grazie caro. Esempi utili e utili. Si prega di non confondere tra pacchetti e frame.
Mohamad-Jaafar NEHME,

-2

Gli switch hanno tabelle di indirizzi mac.
Endpoint come i PC hanno tabelle arp.


Quindi solo gli switch hanno tabelle di indirizzi mac? E solo gli endpoint hanno tabelle ARP?
YLearn

1
@YLearn Per gli attuali interruttori L2, sì.
Navin,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.