Gibt es einen bestimmten Grund, warum Ethernet-Switches die MAC-Adresse eines Pakets nicht ändern?
Ist es für die Identifizierung des Endhosts anhand der MAC-Adresse oder etwas anderes?
Gibt es einen bestimmten Grund, warum Ethernet-Switches die MAC-Adresse eines Pakets nicht ändern?
Ist es für die Identifizierung des Endhosts anhand der MAC-Adresse oder etwas anderes?
Antworten:
Wenn ein Switch die MAC-Adressen ändern würde, würde dies das Netzwerk vollständig unterbrechen.
Die MAC-Adresse ist eine eindeutige Kennung, die von Hosts im lokalen Netzwerk verwendet wird.
Wenn der Switch den Ziel-MAC ändern würde, würde der Frame nicht an den entsprechenden Host geliefert. In den Fällen, in denen der Frame beispielsweise überflutet wird, wird er vom Zielhost gelöscht, da er nicht mehr für den Host bestimmt ist.
Wenn der Switch die Quell-MAC-Adresse ändern würde, würde der Zielhost diese MAC-Adresse für alle Antworten verwenden (einschließlich der Aktualisierung von ARP-Einträgen mit fehlerhaften Daten). Dies würde zu der gleichen Situation führen, die ich bereits beschrieben habe, nur für den gesamten Rückverkehr.
Dies könnte weitere Probleme mit Dingen wie 802.1X und anderen Mechanismen verursachen, die die MAC-Adresse zum Identifizieren / Klassifizieren des Geräts verwenden.
Könnten dafür Mechanismen entwickelt werden? Ich bin sicher, dass sie könnten. Derzeit gibt es jedoch keinen Grund, dies zu tun. Dies würde die Vernetzung nur erschweren und unnötige Verarbeitung hinzufügen. Wir sind nicht nahe daran, den verfügbaren MAC-Adresspool zu erschöpfen, sodass so etwas wie MAT nicht erforderlich ist (Sie wissen nicht, ob das Konzept der MAC-Adressübersetzung überhaupt irgendwo existiert, also habe ich vielleicht nur einen Begriff geprägt?).
Das Umschreiben von Adressen von Datagrammen erfolgt auf Schicht 3, wenn beispielsweise Gateways (Router oder Firewall), auf denen NAT ausgeführt wird, die IP-Adressen von Hosts im internen Netzwerk neu schreiben, sodass sie alle von einer (oder mehreren) externen IP-Adressen auf dem Gateway selbst angezeigt werden.
Der Grund dafür, dass etwas Ähnliches nicht auf Ebene 2 passiert (wo wir MAC-Adressen verwenden, um Hosts und Switches zu unterscheiden, die die Bewegung von Datagrammen, dh Frames, ausführen), ist, wie in den obigen Kommentaren erwähnt, dass es wirklich keine Notwendigkeit dafür gibt.
Im Fall der dritten Schicht mit NAT löst das NAT eine Reihe von Problemen:
Wenn wir uns also an das NAT-Beispiel halten, ist ein Layer-2-Gegenstück zu NAT wirklich nicht erforderlich.
Ich hoffe, dies gibt Aufschluss darüber, warum Switches MAC-Adressen nicht neu schreiben. Der einzige Layer-3-Fall, den ich mir von oben ausgedacht habe, war NAT. Andere können sicherlich Beispiele für andere Layer-3-Fälle liefern, in denen IP-Umschreibungen erforderlich sind (und warum diese Technologien auf Layer-2-Ebene nicht wirklich sinnvoll sind). .
Das Umschreiben der MAC-Adresse würde zu einer erheblichen Komplexität führen (der Switch müsste über Protokolle höherer Ebenen wie arp Bescheid wissen, damit die Adressauflösung neu geschrieben werden kann), die Fehlerbehebung erschweren, verhindern, dass Protokolle wie STP funktionieren, und wäre im Allgemeinen eine PITA. Es wird normalerweise auch nicht benötigt.
Das heißt nicht, dass es nicht möglich ist. ebtables (das Layer-2-Gegenstück zu iptables) bietet einige Optionen für die MAC-Adressumsetzung. Dies kann nützlich sein, wenn Sie Switches haben, die keine MAC-Tabellen pro VLAN verwenden, und eine Layer-2-Filterung durchführen möchten.