Debian fährt die Schnittstelle mit eingestellter IP-Verbindung nicht herunter ... down

Debian fährt die Schnittstelle mit eingestellter IP-Verbindung nicht herunter ... down

Ich habe eine ganz spezielle Frage zu einer Trunk-Testumgebung. Ich habe dieses Netzwerk-Setup:

+------------+               +------------+
|            |    +-----+    |            |
|       eth0 +----+ br0 +----+ eth0       |
|            |    +-+---+    |            |
| Guest1     |      |        |     Guest2 |
|            |    +-----+    |            |
|       eth1 +----+ br1 +----+ eth1       |
|            |    +---+-+    |            |
+------------+      | |      +------------+
                  +-+-+--+
                  | Host |
                  +------+

Der KVM-Host stellt zwei Bridges für die Gastmaschinen bereit (/etc/network/interfaces):

auto br0
iface br0 inet manual
  bridge_ports none
  bridge_fd 0
  bridge_stp off

auto br1
iface br1 inet manual
  bridge_ports none
  bridge_fd 0
  bridge_stp off

Die Gastcomputer stellen mit dieser Konfiguration eine Verbindung zu den Switches her:

# Actual interfaces
allow-hotplug eth0 eth1
iface eth0 inet manual
iface eth1 inet manual

# Internet facing network
auto eth0.100 eth1.100
iface eth0.100 inet manual
iface eth1.100 inet manual

auto bond0
iface bond0 inet manual
  bond_mode active-backup
  bond_miimon 200
  bond_downdelay 200
  bond_updelay 200
  # Something I found to make the active secondary slave listening
  post-up echo 1 > /sys/devices/virtual/net/bond0/bonding/all_slaves_active
  slaves eth0.100 eth1.100

auto bond0.1
  address 10.110.0.10x
  netmask 255.255.0.0

# Please don't ask why the three vlan is needed.
# The bonding works only if these three are defined :\

Nun ist mein Problem folgendes:

Der standardmäßige primäre Slave ist die Schnittstelle eth0.100 auf beiden Gast-Geräten. Wenn ich den primären Slave mit dem folgenden Befehl herunterfahre

$ ip link set eth0.100 down

Die Verbindung wird gemäß „IP-Link“ unterbrochen, die Verbindung ändert den primären Slave, dennoch werden Pakete auf der inaktiven Schnittstelle akzeptiert. (Ich habe es herausgefunden, indem ich „tshark -i eth1.100“ ausgeführt habe und nur die Ping-Antwortnachrichten angezeigt wurden.)

Wenn ich die Schnittstelle auf dem Host-Rechner schließe, stoppt die gesamte Kommunikation zwischen den Gästen. Selbst der Bond erkennt die Änderung nicht.

Zusätzliche Information:

  • Ich habe keine IPTables/EBTables-Regel, um Pakete auf dieser Schnittstelle zu blockieren
  • Ich weiß, dass der Broadcast-Modus bei all meinen Problemen helfen würde, obwohl ich denke, dass er die Kommunikation zwischen den beiden Gästen aufbläht. Ich würde diese Option lieber nicht verwenden.

Fragen:

  • Warum wird die Verbindung bei „ip link set ... down“ nicht geschlossen?
  • Ist es möglich, dass das Eingreifen in all_slaves_active den Schnittstellenstatus irgendwie beeinflusst?
  • Gibt es eine Option, die ich möglicherweise übersehen habe, die das Active Backup auf die Schnittstellenänderung aufmerksam macht?
  • (Und warum brauche ich die drei VLANs, damit die Bündelung funktioniert?)

Wir sind für jede Antwort dankbar.

verwandte Informationen