Warum benötigen wir eine IP-Adresse für eine Bridge?

27

Eine Bridge ist ein Layer-2-Netzwerkgerät. Auf physischen Bridges haben wir nur eine IP-Adresse für den Betrieb und die Wartung. Ich bin ein bisschen verwirrt, warum wir in KVM eine IP-Adresse für die Bridge benötigen. Ich verstehe, dass die Schnittstelle der VM eine IP-Adresse erhält und dass die an die Bridge angeschlossene physische Schnittstelle keine IP-Adresse hat. Dies stellt sicher, dass die IP-Adresse der VM nach außen sichtbar ist. In einer Serverumgebung würde ich nur statische IP-Adressen für die VMs verwenden.

Nehmen wir an, ich verwende statische IP-Adressen für die VMs. Warum benötige ich dann eine IP-Adresse für die Bridge?

fgeld
quelle

Antworten:

14

Sie müssen keine IP-Adresse für eine Bridge konfigurieren, genauso wie Sie keine IP-Adresse für ein Ethernet-Gerät auf einem Computer (Host / Gast oder was auch immer) konfigurieren müssen.

Wenn Sie jedoch ein Gerät / eine Bridge ohne IP-Adresse haben, können Sie nicht erwarten, dass es von der Partei verwendet werden kann, die es nicht richtig konfiguriert hat (sei es Host oder Gast).

Wenn ich zum Beispiel einen KVM-Host mit einer Bridge mit dem Namen "br_vm" habe, die ich allen KVM-Gästen als einzige Schnittstelle zuweisen (die Gäste werden es höchstwahrscheinlich "eth0" nennen), und wenn br_vm auf dem Host nicht konfiguriert ist Sie können nicht erwarten, dass die Gäste über ihre eth0-Schnittstelle mit dem Host sprechen können.

Sie fragen, warum Sie eine IP für eine Bridge benötigen und die Antwort lautet, dass Sie dies nicht tun. Wenn Sie jedoch wissen möchten, in welchen Szenarien Sie eine IP für die Bridge beim Host haben möchten, kann ich mir einige vorstellen:

  1. Sie möchten, dass Ihre VMs mit dem Host kommunizieren, auch wenn dies nur für DHCP oder DNS gilt.
  2. Möglicherweise möchten Sie den VM-zu-VM-Verkehr deaktivieren. Wenn Sie diese Brücke mit vielen VMs teilen, ist dies eine Überlegung wert.
  3. Möglicherweise möchten Sie zusätzlich zu den für Ihre VMs eingerichteten Firewalls eine Firewall auf Hostebene einrichten. Die Konzentration aller Firewall-Regeln auf den Host kann sinnvoll sein, wenn die Richtlinien, Zonen usw. für alle Ihre VMs etwa gleich sind. Es ist einfacher, wenn alle Regeln, IP-Adressen, Richtlinien usw. an einem Ort aufbewahrt werden (obwohl ich nur für den Fall eine grundlegende Firewall auf jeder VM einrichten würde).

Übrigens können Sie auf Ihren Gast-VMs dynamische IP-Adressen haben, die nichts damit zu tun haben, ob der Host eine IP auf der Bridge hat oder nicht (es sei denn, der Host ist natürlich der DHCP-Server für das Netzwerk). .

mbello
quelle
7

Dies ist eher eine Eigenheit in der Dokumentation, die ich finde. Ich gehe davon aus, dass Ihr Host die /etc/network/interfacesDatei für die Netzwerkkonfiguration verwendet.

Wenn Sie in der Zeilengruppe bridge interface (in diesem Beispiel br0) die Adresse 0.0.0.0 angeben, erhalten Sie genau das, was Sie suchen: An die Bridge angeschlossene VMs sind weiterhin mit dem Netzwerk verbunden und behalten ihre eigenen IP-Adressen bei.

Sie verlieren dann jedoch den "Port" des Hosts auf dieser Brücke. Wenn Sie (in der interfacesDatei) eine IP-Adresse angeben, wird diese genau wie die Verwaltungsschnittstelle eines herkömmlichen Switches zur IP-Adresse Ihres Hosts auf dieser Bridge.

Denken Sie daran, dass eine Bridge wie ein eigenständiger Switch ist, der Host sie jedoch weiterhin "verwaltet". Wenn Sie also eine IP-Adresse hinzufügen, wird lediglich eine adressierte Verwaltungsschnittstelle hinzugefügt (sofern dies sinnvoll ist).


Wenn Ihr Host wie ich über zwei Netzwerkkarten verfügt: eine für VMs und eine für sich selbst, können Sie der "VM-Bridge" die Adresse 0.0.0.0 zuweisen und sich auf die andere physische Netzwerkkarte verlassen, damit die Verwaltung eine ähnliche Konfiguration erhält.


Wenn Sie nicht danach fragen, lassen Sie es mich wissen und ich bearbeite es nach Ihren Wünschen.

agc93
quelle
3

Sie müssen einer Linux-Bridge keine IP zuweisen.

Hier ist ein Beispiel dafür, wie es in aussieht /etc/network/interfaces. br0ist die Brücke, die mit der eth0Schnittstelle verbunden ist:

auto br0
iface br0 inet manual
    bridge_ports eth0
Anders Trier
quelle