Problem mit der Brücke, die L2-, aber nicht L3-Verkehr passiert

Problem mit der Brücke, die L2-, aber nicht L3-Verkehr passiert

Hey Leute, hoffentlich kann mir hier jemand helfen.

Ich habe auf meinem Ubuntu-System eine Bridge eingerichtet, um eine Verbindung zu einer VM herzustellen, die ich innerhalb von KVM laufen habe. Die Bridge kann ARP-Anfragen und -Antworten senden, sodass ich bidirektionalen Datenverkehr habe, aber kein IP-Datenverkehr passieren kann.

Das Netzwerk ist wie folgt: vnet0 -> bridge -> eth1 -> VLAN mit Hosts, die ich anpingen möchte

Beim Versuch, eth1 zu durchqueren, schlägt der Ping fehl. Ich habe TCPDUMPs auf meinen Schnittstellen vnet0, bridge und eth1 durchgeführt. Ich sehe, dass das Problem darin besteht, dass keine IP-Pakete eth1 verlassen, wenn sie von vnet0 gesendet werden, während sie die Bridge-Schnittstelle problemlos passieren. Außerdem verwende ich für diese Verbindung einen USB 3.0-Gigabit-Adapter.

Bisherige Fehlerbehebung:

  1. IPv6 über sysctl.conf deaktiviert, da ich denke, dass das irgendwie ein Problem sein könnte
  2. Den USB-Adapter an einen anderen USB-Anschluss angeschlossen
  3. Brücke mehrfach gelöscht und erstellt
  4. Neustarts

Ratlos. Irgendeine Idee, warum nur L2 durchkommt? Meine VM lernt MAC-Adressen für Systeme über eth1 per ARP, kann aber keine IP-Pakete durchschicken.

Danke

Antwort1

Nachdem ich mir noch eine Stunde lang den Kopf am Schreibtisch zerbrochen hatte, fand ich es heraus. Ich basierte meine /etc/network/interfaces-Konfiguration auf dem, was ich auf einem anderen Rechner mit 14.04 zum Laufen gebracht hatte. Die defekte Schnittstellendatei zeigt nur die relevanten Teile:

auto eth1
iface eth1 inet manuell
up ifconfig eth1 up

automatische E-MGMT-Bridge
iface E-MGMT-Bridge inet manuell
bridge_stp aus
bridge_fd 0
bridge_ports eth1

In 16.04 unterbricht dies irgendwie Layer 3, lässt aber weiterhin Layer-2-Verkehr wie ARP-, CDP- und STP-Frames durch. Sehr seltsam. Damit es in 16.04 funktioniert, müssen Sie die eth1-Strophe entfernen und nur die Brücke und nicht die physikalische Schnittstelle definieren, auf die sie sich bezieht, wie folgt:

automatische E-MGMT-Bridge
iface E-MGMT-Bridge inet manuell
bridge_stp aus
bridge_fd 0
bridge_ports eth1

Ich musste neu starten und konnte dann von meiner VM über die Brücke zum realen Netzwerk pingen, das an meinen Switch angeschlossen ist. Ich bin mir nicht sicher, ob das schon mal jemand erlebt hat oder ob ich einfachglücklich.

Antwort2

Wenn Sie nur ARP, aber keinen „echten“ Datenverkehr sehen, könnte Ihr Problem bei iptables liegen. Überprüfen Sie, ob die FORWARDING-Richtlinie von iptables auf ACCEPT eingestellt ist. Wenn Sie stattdessen die Richtlinie DROP verwenden möchten, überprüfen Sie, ob Weiterleitungsregeln hinzugefügt wurden, um Ihren KVM-Datenverkehr zuzulassen.

verwandte Informationen