Virtual Networking mit VirtualBox
Sun VirtualBox ist eine Anwendung für die Virtualisierung von Rechnersystemen. Als Host-System werden Windows, Linux, OpenSolaris und Apple Mac OS X unterstützt.
In der virtuellen Maschine können u.a. Linux (debian, Ubuntu) , Windows, OS/2, BSD oder DOS als Gast laufen.
Die Gastsysteme lassen sich untereinander und mit dem Host vernetzen.
Auch der Betrieb von virtuellen Servern ist mit VirtualBox möglich.
Dieser Artikel beschreibt die Möglichkeiten der virtuellen Vernetzung mit Sun VirtualBox.
Diese Version des Tutorials basiert auf VirtualBox 3.1.6.
Für Anwender älterer Versionen gibt es auch eine Anleitung für die
Netzwerkeinrichtung in VirtualBox 2.0
und
VirtualBox 2.1.2.
Konfiguration für Ungeduldige
Für 90% aller Fälle passt die Einstellung auf NAT und der Adaptertyp Intel PRO/1000 MT Desktop.
Zum Surfen im Internet und für Office-Anwendungen ist diese Einstellung optimal.
Standardkonfiguration Netzwerk in VirtualBox
Grundlagen der Vernetzung virtueller Maschinen
Mit VirtualBox lassen sich jedem Gast bis zu vier Netzwerkkarten
zuweisen. Die emulierten Karten melden sich wahlweise als:
- PCnet-PCI II Am79C970A
- PCnet-FAST III Am79C973
- Intel PRO/1000 MT Desktop 8254 OEM
- Intel PRO/1000 T Server 82543GC
- Intel PRO/1000 MT Server 8254
- Paravirtualisiertes Netzwerk (virtio-net)
Diese Karten werden von vielen Linux- und Windows-Versionen
erkannt. Unter Vista muss der AMD-Treiber manuell installiert
werden. Microsoft Windows 7 erkennt die Intel-Karten problemlos.
Jumbo Frames unterstützt VirtualBox nur mit den Intel-Karten und im Bridged Mode.
Der virtio-Treiber ist eine spezielle Schnittstelle für die Netzwerkkommunikation bei virtualisierten Maschinen.
Im Gastsystem muss ein NetKVM-Treiber für die virtio-Netzwerkkarte installiert werden. Entsprechende Treiber für Linux, Windows XP, Vista und
Windows 7 finden Sie auf der Homepage des KVM Projektes unter Download.
Auswahl der Netzwerkkarte für das Gastsystem
Jede der vier Netzwerkkarten kann innerhalb von VirtualBox
separat konfiguriert werden. Dabei wird zwischen fünf Betriebsarten
unterschieden:
- Nicht angeschlossen
- NAT
- Netzwerkbrücke
- Internes Netzwerk
- Host-only Adapter
In den erweiterten Einstellungen kann die MAC-Adresse der virtuellen Netzwerkkarte geändert werden.
Aktuell vergibt VirtualBox MAC-Adressen mit der Herstellerkennung (OUI) 080027. Diese OUI gehört laut IEEE
allerdings der Firma Cadmus Computer Systems.
Betriebsart "Nicht angeschlossen" (Not attached)
In dieser Konfiguration sieht der Gast eine Netzwerkkarte ohne
angeschlossenes Kabel.
In dieser Einstellung sieht der Gast eine Netzwerkkarte ohne Link
Das virtuelle Kabel kann auch im laufenden Gast über das Menü
Geräte/Netzwerk-Adapter gezogen und gesteckt werden. Damit
lässt sich beispielsweise die Vergabe einer IP-Adresse über DHCP neu
starten.
Betriebsart Network Address Translation (NAT)
VirtualBox stellt den Gastsystemen einen NAT-Router inklusive DHCP-Server zur Verfügung.
Die Verbindung ins restliche Netzwerk wird über den IP-Stack des Hostsystems hergestellt.
Als Absender wird die IP-Adresse des Hosts verwendet.
Client in der Betriebsart NAT
Die erste Netzwerkkarte eines Gastes liegt im IP-Netz 10.0.2.0, die zweite in 10.0.3.0 und so weiter.
Diese internen IP-Netze können bei Bedarf auch angepasst werden:
VBoxManage modifyvm "My VM" --natnet1 "192.168/16"
Bedingt durch den NAT-Router ist per Default kein
Verbindungsaufbau vom Host oder aus dem LAN zu einem Gast möglich. Serverdienste auf dem Gast sind daher nicht erreichbar.
Dazu können aber Portweiterleitungen (port forwarding) eingerichtet
werden. Um eine Weiterleitung des TCP-Ports 8022 auf den Port 22 des
Gastes "debian 1" einzurichten, sind die folgenden Kommandos
notwendig:
VBoxManage setextradata "debian 1" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/Protocol" TCP
VBoxManage setextradata "debian 1" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/GuestPort" 22
VBoxManage setextradata "debian 1" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/HostPort" 8022
VirtualBox leitet nun alle Anfragen die den Host auf Port 8022
erreichen an den Gast (Port 22) weiter. Damit kann ein SSH-Server
auf dem Gast angesprochen werden.
VirtualBox unterstützt das Booten via PXE. Dazu stellt VirtualBox einen
internen TFTP-Server auf der IP-Adresse 10.0.2.3 bereit. Der Boot File Name lautet
vmname.pxe. Auch diese Einstellungen lassen sich anpassen:
VBoxManage setextradata "Linux Guest" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/NextServer" 10.0.2.2
VBoxManage setextradata "Linux Guest" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/BootFile"
/srv/tftp/boot/MyPXEBoot.pxe
Der NAT-Router von VirtualBox transportiert seit Version 2.1 ICMP-Echos. Ein Ping sollte also funktionieren.
Probleme hat der NAT-Router mit den Protokollen GRE und PPTP. Einige VPN-Clients
funktionieren daher nicht aus einem Gast mit NAT-Networking.
Betriebsart Netzwerkbrücke (Bridged networking)
In der Betriebsart Netzwerkbrücke werden Host und Gast quasi durch einen Switch verbunden.
Für andere Geräte im LAN ist der Gast als eigenständiges System sichtbar. Der Gast kann
eine IP-Adresse von einem DHCP-Server im LAN beziehen. Serverdienste auf dem Gast sind vom Host und aus
dem Netzwerk nutzbar.
Netzwerkbrücke mit einer Intel-Wireless-Karte
In den Einstellungen muss im Feld "Name" eine Netzwerkkarte für das Bridging ausgewählt werden.
Bei Hostsytemen mit wechselnden Netzwerkverbindungen (Notebook mit WLAN und LAN) muss diese
Einstellung jeweils angepasst werden.
Die Netzwerkbrücke eignet sich für den Betrieb virtualisierter Server.
Betriebsart Internes Netzwerk (Internal networking)
Über ein internes Netzwerk können Gastsysteme untereinander kommunizieren. Die internen Netze werden über ihren Namen (intnet) identifiziert. Den Namen können Sie in den Netzwerkeinstellungen einer virtuellen Maschine vergeben bzw. auswählen.
Internes Netzwerk intnet
Jedes dieser internen Netze kann man sich als autarken Switch vorstellen. VirtualBox stellt in diesen Netzen keine Dienste wie DHCP, DNS oder Routing zur Verfügung.
Internes Netzwerk intnet mit drei Gastsystemen
Um in einem internen Netz via IP kommunizieren zu können müssen die Gäste feste IP-Adressen nutzen (aus dem selben IP-Netzwerk) oder ein Gast muss einen DHCP-Server auf dem internen Netz betreiben. Der interne DHCP-Server kann ebenfalls für interne Netzwerke aktiviert werden.
Um mit dem Hostsystem oder einem externen Netz Daten austauschen zu können, muss ein Gast einen Router oder eine Bridge zwischen dem internen Netz und einem weiterem Netz betreiben. Dazu kann man zum Beispiel Software-Router wie m0n0wall, pfSense oder IPCop verwenden.
Betriebsart Host-only Adapter (Host-only networking)
In dieser Betriebsart erfolgt die Kommunikation über einen speziellen VirtualBox Host-only Ethernet Adapter". Dieser Adapter mit der IP-Adresse
192.168.56.1 verbindet den Host und den Gast transparent. Es ist nur eine Kommunikation zwischen Host und Gast möglich.
Der Gast hat keinen Zugriff auf das restliche Netzwerk. Mit Host-only könnte ein Webmaster beispielsweise ein Gastsystem mit einen lokalen
Apache für Test betreiben.
VirtualBox stellt einen DHCP-Server für den Gast zur Verfügung.
Der virtuelle Adapter und der DHCP-Server können über Datei / Globale Einstellungen / Netzwerk konfiguriert werden.
Zugriff mit Remote Desktop
VirtualBox beinhaltet einen eigenen Server für das VirtualBox Remote
Desktop Protocol (VRDP). VRDP ist kompatibel mit dem von Windows bekannten RDP.
In den Eigenschaften einer VM kann unter Anzeige / Fernsteuerung der VRDP-Zugriff auf ein Gastsystem aktiviert
werden. Per Default läuft das Protokoll auf Port 3389.
Fernsteuerung via VRDP aktivieren
Sollen mehrere Gastsysteme per VRDP gesteuert werden, benötigt jeder Gast eine eigene Portnummer.
Der Zugriff erfolgt über die IP-Adresse des Hostsystems.
Für den Zugriff von Windows-Systemen kann der Microsoft RDP-Client mstsc.exe genutzt werden.
Unter Linux gibt es für diesen Zweck rdesktop.
Trace der Netzwerkdaten erstellen
Für die Fehlersuche ist es oft hilfreich, einen Trace der Netzwerkkommunikation zu erzeugen.
Dazu kann der Datenverkehr auf dem Host oder im Client mit einem Analyzer wie Wireshark aufgezeichnet werden.
Aber auch VirtualBox kann den Datenverkehr einer VM mitschneiden und in ein pcap-File speichern.
Der Syntax sieht wie folgt aus:
# VBoxManage modifyvm [meine-vm] --nictrace[adapter-number] on --nictracefile[adapter-number] trace.pcap
# VirtualBox -startvm [meine-vm]
Um den Traffic des ersten Netzwerkadapters der VM "Windows 7" mitzuschneiden benötigen Sie folgendes Kommando:
# VBoxManage modifyvm "Windows 7" --nictrace1 on --nictracefile1 file.pcap
# VirtualBox -startvm "Windows 7"
Und nicht vergessen den Trace wieder zu beenden:
# VBoxManage modifyvm "Windows 7" --nictrace1 off
Die so erstellen pcap-Dateien lassen sich mit Wireshark analysieren.
Weiterführende Links
|