
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.