Mysteriöse Paketverdopplung
Ich hab in den letzten Tagen viel Zeit damit verbracht, mich in Sachen Linux-HA
mal wieder auf den neuesten Stand zu bringen und im Zuge dessen viel mit
OpenAIS,
Corosync, DRBD,
OCFS2 und
Pacemaker experimentiert. Da bei mir zu
Hause natürlich nicht zehn Rechner rumstehen, habe ich stattdessen zwei
Virtualisierungstechniken benutzt. Zum einen war das User Mode
Linux Sachen, die man ohne größeres
Verbiegen des Kernels hinbekommen kann - meistens also als “Applikationsserver”
und dergleichen, wo ich, wenn überhaupt, nur Heartbeat oder so gebraucht habe
(und bevor jemand aufmerkt: Klar, man kann das auch alles für UML bauen. Ich war
nur zu faul!). Das geht mittlerweile echt gut, moderne Kernel kommen
standardmäßig zumindest mit dem SKAS0
-Patch was dazu führt, daß sowohl die
Performance als auch der Ressourcenhunger an und für sich in Ordnung sind. Für die
komplizierteren Sachen habe ich mich bei Suns
VirtualBox bedient - und dabei ist mir eine echt
interessante Sache aufgefallen:
Ich habe mein Szenario mit zwei Netzwerken abgebildet: Einmal eines, das im
Endeffekt ganz normal an meine Ethernet-Karte gebridged ist (also einen
uml-Switch an tap0
hängen, tap0
und eth0
zur Bridge br0
hinzufügen, der eine IP
in meinem Netz geben und in der VirtualBox-GUI einen Netzwerkadapter auf br0
bridgen), für Sachen wie Internet, und ein zweites Netzwerk mit einem
dedizierten Switch für die Heartbeat-Verbindungen. Das zweite Netz ist
eigentlich denkbar einfach:
|
|
Für die UML-Gäste hieß das beim Aufruf dann
eth1=daemon,,,/var/run/uml-utilities/uml_switch_virtual.ctl
und in der
VirtualBox-GUI habe ich den zweiten Adapter dann einfach auf tap1
gebridged. Und
jetzt kommts: Die Maschinen können alle miteinander reden, aber sobald ich das
erste Mal von einer VirtualBox-Maschine aus über den zweiten UML-Switch eine
UML-Maschine anpinge, kommt irgendwas aus dem Tritt: Jedes Paket, daß direkt von
der Adresse von tap1
an den Gast geht, wird doppelt gesendet. Jedes. Antworten
auf Pings, TCP-RST, alles, was ich getestet habe. Und auch nur, wenn es direkt
tap1 ist, das antwortet.
Kennt irgendjemand von Euch das Verhalten?