Virtualbox, Intel und die VLANs

by cmur2 on 2012-08-04 in

Nachdem mich vor ein paar Tagen die Idee überfallen hatte mal ein VLAN auf einer Direktverbindung zwischen zwei Linux-VMs (mit Virtualbox betrieben) einzurichten, sind meine ersten Experimente relativ ernüchternd gescheitert da trotz vermeintlich richtiger Konfiguration keine Kommunikation möglich war…

Aber von vorne: der initiale Setup sah vor die virtuellen Maschinen VM1 und VM2 mit jeweils zwei Netzwerk-Schnittstellen auszustatten, wobei die erste (eth0) via ganz normalem NAT über Virtualbox Internetkonnektivität bereitstellen soll und eth1 in einem “Internen Netzwerk” per VLAN mit der anderen VM kommunizieren soll. VLANs werden auf Ethernet-Ebene so realisiert dass ein zusätzlichen 802.1q-Header eingefügt wird der die Nummer des VLANs enthält, zu dem das Paket gehören soll - falls ein Paket ohne expliziten Tag auftaucht, so haben Switches Standardannahmen welchem VLAN (meist 0 oder 1) diese angehören sollen.

Unter (in meinem Fall) Debian Squeeze kann man nach apt-get install vlan und laden des Kernelmoduls 8021q (siehe auch /etc/modules) alle VLANs komfortabel und persistent über /etc/network/interfaces konfigurieren: es entstehen virtuelle Netzwerk-Schnittstellen namens “eth1.2” (wobei die 2 die VLAN-Nummer ist), jeglicher an diese Schnittstelle geschickter Traffic wird mit dem nötigen 802.1q-Headern samt passenden Tags versehen und über das zugrunde liegende “raw device” eth1 verschickt - von auf eth1 eingehenden Paketen für VLAN 2 werden die Tags entfernt und diese Pakete auf eth1.2 ausgegeben.

Nach vollständiger Konfiguration inklusive Zuweisen eines gemeinsamen Subnetzes für beide VMs auf eth1.2 war aber kein gegenseitiger Ping möglich - tcpdump hat keinerlei zu VLAN 2 gehörenden Traffic (tcpdump -i eth1 vlan 2) feststellen können und schon der ARP-Request für die anzupingende IP-Adresse blieb unbeantwortet :(

Nach längerem Suchen zu “debian vlan virtualbox …” und anderen Schlüsselbegriffen bin ich dann auf http://humbledown.org/virtualbox-intel-vlan-tag-stripping.xhtml gestoßen, der ziemlich genau dasselbe Problem gehabt zu haben scheint und das vor gar nicht allzu langer Zeit: Intels PRO/1000 Netzwerk-Adapter (Standard in Virtualbox, Linux-Treiber e1000) meint aus … Gründen so schlau sein zu müssen alle VLAN-Tags eigenständig zu entfernen (anstatt sie einfach in Ruhe zu lassen), sodass alle Software-seitig schon explizit getaggten Pakete beim Gegenüber ohne Tags ankommen. arrrgh Naja, die Adapter beider VMs auf AMDs “PCNet FAST III” geändert und ganz unspektakulär die jeweils andere VM pingen können.

Thema erledigt.

Bis gestern, als das Announcement für die Virtualbox 4.2 Beta 1 in den Posteingang flattert: einer der letzten Bulletpoints ist “E1000: 802.1q VLAN support” - was soll mir das jetzt sagen?

[Update] Mit dem Release von Virtualbox 4.2 scheint das Problem wirklich behoben worden zu sein. Werde es überprüfen genauso wie die versprochenen Autostarts für VMs unter Linux freu :)

The post »Virtualbox, Intel und die VLANs«
is licensed under Creative Commons BY-NC-SA 3.0.

cmur2

https://www.mycrobase.de/

GitHub