C'è un motivo particolare per cui gli switch Ethernet non cambiano l'indirizzo MAC di un pacchetto?
Serve per l'identificazione dell'host finale utilizzando l'indirizzo MAC o altro?
C'è un motivo particolare per cui gli switch Ethernet non cambiano l'indirizzo MAC di un pacchetto?
Serve per l'identificazione dell'host finale utilizzando l'indirizzo MAC o altro?
Risposte:
Se uno switch dovesse modificare gli indirizzi MAC, ciò interromperebbe completamente la rete.
L'indirizzo MAC è un identificatore univoco utilizzato dagli host sulla rete locale.
Se lo switch dovesse modificare il MAC di destinazione, il frame non verrebbe recapitato all'host appropriato. Nel caso in cui, ad esempio, il frame venisse inondato, l'host di destinazione lo lascerebbe cadere perché non sarebbe più destinato all'host.
Se lo switch dovesse modificare l'indirizzo MAC di origine, l'host di destinazione userebbe questo indirizzo MAC per qualsiasi risposta (incluso l'aggiornamento di eventuali voci ARP con dati errati). Ciò comporterebbe la stessa situazione che ho già descritto, solo per tutto il traffico di ritorno.
Ciò potrebbe ulteriormente creare problemi con cose come 802.1X e altri meccanismi che utilizzano l'indirizzo MAC per identificare / classificare il dispositivo.
Potrebbero essere sviluppati meccanismi per fare questo? Sono sicuro che potrebbero. Ma non c'è motivo di farlo a questo punto e questo complicherebbe solo la rete e aggiungerebbe elaborazioni non necessarie. Non siamo vicini a esaurire il pool di indirizzi MAC disponibile, quindi non c'è bisogno di qualcosa come MAT (non so se il concetto di traduzione dell'indirizzo MAC esiste anche da qualche parte, quindi forse ho appena coniato un termine?).
La riscrittura degli indirizzi dei datagrammi avviene al livello 3, ad esempio quando i gateway (router o firewall) che eseguono NAT riscrivono gli indirizzi IP degli host sulla rete interna, in modo che appaiano tutti da uno (o pochi) indirizzi IP esterni sul gateway stesso.
La ragione per cui qualcosa di simile non sta accadendo a livello di livello 2 (dove usiamo gli indirizzi MAC per distinguere host e switch fa il movimento dei datagrammi, cioè i frame) è come detto nei commenti sopra che non ce n'è davvero bisogno.
Nel caso di livello tre con NAT, NAT risolve una serie di problemi:
Quindi, se seguiamo l'esempio NAT, non c'è davvero bisogno di una controparte di livello due di NAT.
Spero che questo faccia luce sul perché gli switch non riscrivono gli indirizzi MAC. L'unico caso di livello 3 che mi è venuto in mente è stato NAT, altri sicuramente possono fornire esempi di altri casi di livello 3 in cui le riscritture IP sono garantite (e perché tali tecnologie non hanno davvero senso sul livello di livello 2) .
Riscrivere l'indirizzo MAC aggiungerebbe una notevole complessità (lo switch dovrebbe conoscere protocolli di livello superiore come arp in modo da poter riscrivere la risoluzione degli indirizzi), renderebbe più difficile la risoluzione dei problemi, impedirebbe il funzionamento di protocolli come STP e sarebbe generalmente una PITA. Inoltre, normalmente non è necessario.
Il che non significa che non sia possibile. ebtables (la controparte di livello 2 di iptables) ha alcune opzioni per la traduzione dell'indirizzo MAC. Ciò può essere utile se si dispone di switch che non utilizzano tabelle MAC per-vlan e si desidera eseguire un filtro di livello 2.