libvirt: vnetX

Bei der Verwendung von libvirt im Bridge-Modus und virtuellen Netzwerkschnittstellen zu den einzelnen VMs hin (vnetX), tauchten im Syslog eine Menge Fehlermeldungen der folgenden Art auf:

vnetX: received packet with own address as source address

Google brachte zwar eine Reihe von ähnlichen Fehlermeldungen zu Tage, aber keine davon gehörte zu einem ähnlich gelagerten Fall. Nach einigem Suchen ergab sich folgende Lösung:

Man wählt für die Netzwerkschnittstellen der Gäste eine zufällige MAC Adresse. libvirt legt dazu dann ein TAP-Device an und hängt dieses an die Bridge. Das TAP-Device benötigt ebenfalls eine MAC Adresse. Diese generiert libvirt, indem es die MAC-Adresse der Netzwerkschnittstelle nimmt und das erste Byte mit 0xFE überschreibt. Beginnt die selbstgewählte MAC-Adresse bereits mit 0xFE, erreichen das TAP-Device aus der VM heraus ständig Pakete mit der MAC-Adresse des TAP-Devices. Das führt naturgemäß zu einiger Verwunderung, die dann entsprechend im Syslog kundgetan wird ...

Die Lösung ist entsprechend simpel: MAC-Adressen wählen, die nicht mit 0xFE beginnen. Von libvirt zufällig zugeteilte Adressen beginnen immer mit 52:54:00 und können gefahrlos verwendet werden.

Tags: Netzwerk | Virtualisierung | Linux