Warum muss unter Linux die IP-Adresse von der eth-Schnittstelle zur Bridge-Schnittstelle verschoben werden?

27

Wenn einer Linux-Bridge eine Netzwerkschnittstelle (z. B. eth0) hinzugefügt wird (z. B. br0), muss die IP-Adresse von eth0 entfernt und zu br0 hinzugefügt werden, damit das Netzwerk ordnungsgemäß funktioniert.

Ich erinnere mich, dass ich in einer Open vSwitch-Readme-Datei gelesen habe (die ich derzeit nicht finde), dass das Verschieben der IP-Adresse aufgrund der Implementierung des Linux-Kernels erforderlich ist. Worum geht es bei der Implementierung von Linux, bei der die IP-Adresse von der Netzwerkkarte auf die Bridge verschoben werden muss?

Lorin Hochstein
quelle

Antworten:

10

Die Netzwerkkarte repräsentiert das Uplink-Kabel. Ein Kabel ist Schicht 1, nicht Schicht 3.

Jetzt fungiert die Bridge als das Gerät, das für den Netzwerkverkehr (eingehend) auf dem Server adressiert wird - entweder auf Schicht 2 (Ethernet / MAC) und / oder auf Schicht 3 (IP).

Das Gerät, das auf ARP-Anfragen antwortet, ist die Bridge - was gut ist, da der Datenverkehr auf die anderen Schnittstellen auf dieser Bridge verteilt werden muss.

Wenn das antwortende Gerät die Netzwerkkarte wäre, würde der Datenverkehr nicht weiter auf die Bridge geleitet.

In einigen Handbüchern wird daher sogar empfohlen, den MAC aus der (Uplink-) Netzwerkkarte zu entfernen.

Nils
quelle
Wenn ich also von den tatsächlichen Linux-Mechanismen spreche (nicht von guten Praktiken), heißt das, dass wenn ich eine Schnittstelle unter eine Brücke stelle, sie vom Kernel nicht mehr als adressierbare L2 / L3-Schnittstelle betrachtet wird? Recht ? Da nichts daran hindert, ihm eine MAC / IP zuzuweisen, ist dies verwirrend.
Jocelyn delalande
1
@Jocelyn Umgekehrt. Wenn es noch als L2 / 3 adressierbar ist, wird der andere Verkehr blockiert. Es sollte also nicht direkt angesprochen werden, wenn auf einer Brücke.
Nils
ok, aber standardmäßig bleibt der Port auf L2 adressierbar (behält einen MACaddr, wenn ich ihn nicht entferne), oder? Warum lässt es den L2-Verkehr zur Brücke fließen?
Jocelyn delalande
2
@Jocelyn Solange nicht auf Arp-Anfragen geantwortet wird, ist auf l2 / 3 alles in Ordnung. Wenn keine Pakete erfasst werden, werden die Pakete an den Netzwerkteil des Kernels weitergeleitet.
Nils
Okay. Ich habe gefragt, weil mir aufgefallen ist, dass beim Zuweisen einer Adresse zum Hafen ein Teil des Datenverkehrs unterbrochen wurde. aber es wurde von rp_filter verursacht.
Jocelyn delalande
1

Die Bridge verteilt den Datenverkehr dort, wo er benötigt wird, wenn sich mehrere Schnittstellen in einer Bridge befinden. Mehr oder weniger arbeiten die einzelnen Interfaces in der Bridge auf Layer 2 jetzt gemäß den Festlegungen der Bridge, nicht unabhängig auf Layer 3. Sie möchten also die Bridge als Ganzes ansprechen, nicht einzelne Interfaces innerhalb der Bridge.

LawrenceC
quelle