Virtual Networking mit VirtualBox
innotek VirtualBox ist eine Anwendung für die Virtualisierung
von Rechnersystemen. Als Host-System werden Windows, Linux und Mac OS X
unterstützt. In der virtuellen Maschine können Linux (debian, Ubuntu) , Windows, OS/2, BSD oder DOS als
Gast laufen. Die Gastsysteme lassen sich untereinander und mit dem Host vernetzen.
Dieser Artikel beschreibt die Möglichkeiten der virtuellen Vernetzung mit VirtualBox.
Dieses Tutorial basiert auf VirtualBox 2.1.2
Eine ältere Version beschreibt die Netzwerkeinrichtung in VirtualBox 2.0
Für die Virtualisierung von Desktop-Umgebungen ist VirtualBox besser geeignet als der VMware Server.
innotek wurde Anfang 2008 von Sun übernommen.
1 Grundlagen
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
Diese Karten werden von vielen Linux- und Windows-Versionen erkannt. Unter Vista muss der AMD-Treiber
manuell installiert werden. Windows 7 erkennt die Intel-Karten problemlos.
Jede der vier Netzwerkkarten kann innerhalb von VirtualBox separat
konfiguriert werden. Dabei wird zwischen vier Betriebsarten unterschieden:
- Nicht angeschlossen
- NAT
- Hostinterface
- Internes Netzwerk
2 Betriebsart "Nicht angeschlossen"
In dieser Konfiguration sieht der Gast eine Netzwerkkarte ohne angeschlossenes Kabel.
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.
3 Betriebsart Network Address Translation (NAT)
VirtualBox stellt den Gastsystemen einen NAT-Router inklusive DHCP-Server zur Verfügung.
Die erste Netzwerkkarte eines Gastes liegt im IP-Netz 10.0.2.0, die zweite in 10.0.3.0 und so weiter.
Bei Bedarf kann das IP-Netz auch geändert werden:
VBoxManage modifyvm "debian 1" -natnet1 "192.168/16"
Diese Kommando reserviert das private Netz 192.168.0.0/16 als Netzwerk für die VM.
Bedingt durch den NAT-Router ist per Default kein Verbindungsaufbau vom Host oder aus dem LAN zu einem Gast möglich.
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.
Der NAT-Router der VirtualBox transportiert ab Version 2.1.0 ICMP Echos.
Ein Ping aus dem Gast ist damit möglich. PXE wird ebenfalls unterstützt.
VPN-Verbindungen über PPTP bereiten ebenfalls Probleme in der Betriebsart NAT.
Das Protokoll GRE wird von der NAT-Engine nicht unterstützt.
Mit Apple Mac OS X als Host unterstützte VirtualBox bis zur Version 1.5.51 nur NAT als Netzwerkverbindung für
den Gast. In VirtualBox 2.0 wurde das Host Interface für Mac OS X eingeführt.
4 Betriebsart Hostinterface (HIF)
Mit dem Host Interface (HIF) verfügt VirtualBox über eine sehr flexible
Möglichkeit der Netzwerkeinbindung für virtuelle Maschinen.
VirtualBox greift mit einem "net filter"-Treiber auf den Host zu.
Für jedes Hostinterface müssen Sie eine entsprechende Netzwerkkarte im Host auswählen.
Der Gast mit dem Hostinterface befindet sich im selben Layer 2 Netz wie der Host.
Vereinfacht dargestellt, stecken der Host und der Gast am selben Switch. Der Gast kann
so beispielsweise eine IP-Adresse von einem DHCP-Server im LAN beziehen.
Alle Interfaces
innerhalb eines Layer 2 Netzwerkes müssen IP-Adressen aus dem selben IP-Netz nutzen.
5 Betriebsart Internes Netzwerk (intnet)
Über ein internes Netzwerk können Gastsysteme untereinander kommunizieren.
Die internen Netze werden über ihren Namen identifiziert. Den Namen können Sie in den
Netzwerkeinstellungen einer virtuellen Maschine vergeben bzw. auswählen.
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.
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. 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 (NAT oder Hostinterface) betreiben.
Dazu kann man zum Beispiel Software-Router wie m0n0wall, pfSense oder IPCop verwenden.
Laut innotek ist die Kommunikation über ein internes Netz performanter als
die Nutzung des Hostinterfaces.
6 Beispiel einer Vernetzung mit pfSense als Router
Im folgenden Beispiel wird von einem Gast zwischen einem Hostinterface (HIF) und einem internen Netzwerk
geroutet. Auf dem Host ist eine Bridge zwischen LAN und HIF eingerichtet.
Im Gast 1 ist die Software-Firewall pfSense installiert. Deren LAN-Interface erhält seine IP-Adresse
via DHCP vom ADSL-Router. Zum internen Netz hin agiert pfSense als DHCP-Server. Gast 2 und 3 erhalten ihre
IP-Adressen von pfSense und nutzen die 10.0.0.1 als Default Router.
Über diese Adresse können Gast 2 und 3 auch auf das Webinterface von pfSense zugreifen.
7 Links
|