Woher weiß ein Switch, wohin das Paket weitergeleitet werden soll, wenn sich vor dem Ziel ein weiterer Switch befindet?

8

Ich frage mich nur, wie ein Switch weiß, wie er Pakete an Ziele weiterleitet, die hinter einem anderen Switch "versteckt" sind. Nach meinem Verständnis hat ein Switch eine Tabelle, die jeden seiner Hardware-Ports genau einer MAC-Adresse zuordnet. So weit so gut, wenn ein Paket / Frame (?) Eintrifft, kann es jetzt den Port bestimmen, an dem das Paket weitergeleitet werden soll.

Aber was passiert, wenn ein anderer Switch an einen dieser Ports angeschlossen ist und an diesem zweiten Switch mehr als ein Gerät angeschlossen ist?

Ich frage mich, wie ein Switch dies beheben kann (auf OSI-Layer 2 ohne Router), da ich denke, dass dies in der Realität tatsächlich funktioniert (?)

Es tut mir leid, wenn diese Frage bereits vorhanden ist (ich denke, das sollte nicht ungewöhnlich sein), aber ich konnte es nicht schaffen, meine Gedanken in eine geeignete Suchanfrage zu integrieren.

Jonas Eschmann
quelle
Verwandte: Wie lernt ein Switch eine Switch-Tabelle? . Der gleiche Prozess, mit dem ein Switch seine MAC-Adresstabelle auffüllt, wird verwendet, wenn zwei Switches oder drei Switches oder eine beliebige Anzahl von Switches vorhanden sind.
Eddie

Antworten:

15

Ein Layer 2-Switch lernt die meisten seiner Informationen über den Standort anderer Endpunkte durch "Abhören" eingehender Frames. Wenn er den Standort nicht kennt, verwendet er floodingdie Antwort und lernt daraus. Nehmen wir an, die Topologie lautet:

(Host A) <--> (Switch A) <--> (Switch B) <--> (Host B).

Es ist auch wichtig zu beachten, dass ein L2-Schalter nicht weiterleitet. Damit meine ich, wenn es einen gekapselten Frame empfängt, leitet es Schnittstellen weiter.

  • Host A möchte zu Host B gelangen. Host A kennt die MAC-Adresse von Host B. Host A sendet also einen Frame an Switch A.
  • Switch A hat Host B nicht in seiner MAC-Adresstabelle. Switch A überflutet dann den Frame an allen Ports, mit Ausnahme des Hosts, auf dem sich Host A befindet. Unter all diesen Ports befinden sich die Ports, an die Switch B angeschlossen ist, sodass Switch B den Frame empfängt.
  • Switch B überflutet dann alle seine Ports mit diesem Frame (wenn man bedenkt, dass Switch B Host B nicht in seiner MAC-Adresstabelle hat).
  • Host B antwortet auf den Frame, Switch B zeichnet dann die MAC-Adresse von Host B auf und sendet die Antwort an Switch A. Switch A zeichnet dann die MAC-Adresse von Host B in seiner Tabelle auf und sendet die Antwort an Host A.

Hier ist eine verwandte Frage: Wie lernt ein Switch eine Switch-Tabelle?

Hal
quelle
vielen Dank! Ich dachte über Rundfunk nach, dachte aber, es würde zu viel Overhead verursachen, besonders wenn viele Schalter miteinander verkettet sind.
Jonas Eschmann
2
@ sh4kesbeer Es kann vorkommen, dass die Switches nicht einmal "zusätzliche" L2-Broadcasts generieren: Bevor Host A ein Paket an Host B sendet, sendet er normalerweise trotzdem eine Arp-Anforderungssendung, in der er nach der MAC-Adresse fragt, die zu der angegebenen IP-Adresse gehört . Bei der Verarbeitung dieser Abfrage lernen alle Switches, wo der MAC des A eintritt. Daher können sie die Arp-Antwort bereits korrekt steuern und (zumindest diejenigen auf dem Weg von B nach A) lernen, woher der MAC von B kommt. - "Zusätzliche" Übertragung, die durch den Wechsel verursacht wird, erfolgt normalerweise erst nach einer Topologieänderung
Hagen von Eitzen
Dies ist nicht ganz genau und kann zu Verwirrung führen. Wenn der Switch nicht weiß, an welchem ​​Port sich der Zielhost befindet, überflutet er den Frame an allen Ports (mit Ausnahme des Ursprungsports) und sendet nicht. Der Frame ist immer noch ein Unicast-Frame, der an allen Ports überflutet wird, und kein Broadcast.
JFL
4

Der Switch kann einem Port mehrere Mac-Adressen zuordnen.

Somit werden alle Geräte-Macs auf dem zweiten Switch vom ersten Switch als zu einem Port gehörend angesehen.

Es aktualisiert seine Tabelle, wenn es ein Paket empfängt, da alle einen Quell-Mac enthalten. Wenn sich der Mac an einem anderen Port befand, bevor er seine Mac-Adresstabelle änderte (Mac-zu-Port-Zuordnung).

Wenn sich die Position eines Mac zwischen den Ports häufig ändert, wird dies als Mac-Klappe gemeldet.

Pieter
quelle
1

Wenn die Topologie wie beschrieben ist: Host A - Switch A - Switch B - Host B.

Im Idealfall kennt Host A die IP-Adresse von Host B (dem Ziel, mit dem er kommunizieren möchte). Angenommen, die IP-Adressen der beiden Hosts befinden sich im selben Netzwerk, verwendet Host A ARP, um die Mac-Adresse des Ziels abzurufen. Dies ist ein Broadcast-Frame, der über die Ports von Switch A - und Switch B - an Host B weitergeleitet wird. Dieser erkennt, dass es sich um den beabsichtigten Empfänger handelt, und antwortet mit seiner eigenen MAC-Adresse.

Host A verwendet später diese MAC-Adresse und sendet das Paket an Switch A.

Switch A erkennt die MAC-Adresse und leitet dieses Paket unter Bezugnahme auf seine eigene MAC-Tabelle aus der entsprechenden Schnittstelle weiter. Ein ähnlicher Vorgang tritt bei Switch B auf, der später den Zielhost B erreichte.

deedee
quelle