VM, Virtualisierer & Co.

Virtualbox-Tricks für Profis und Fortgeschrittene

16.03.2017
Von David Wolski
Dieser Beitrag wirft einen Blick auf einige anspruchsvollere Aufgaben, unentdeckte Möglichkeiten und knifflige Problemstellungen, die beim Einsatz von Oracles Virtualbox als Virtualisierer für Desktop oder Server anfallen.

Virtualbox ist vornehmlich als Desktop-Virtualisierer entwickelt worden und erfüllt diese Rolle sehr gut. Trotz dieser Ausrichtung kann das an der Oberfläche unkompliziert wirkende Programm auch ambitionierte Szenarien meistern. Eine VM als Server im LAN, als Paket-Sniffer im lokalen Netzwerk zur Analyse und ein virtuelles Subnetz mehrerer VMs auf einem Host - das alles liegt bei richtiger Konfiguration im Rahmen der Fähigkeiten von Virtualbox.

Gasterweiterungen: Für Linux kompilieren

Ein virtuelles System ohne Gasterweiterungen ist noch nicht komplett. Zwar sind alle Basisfunktionen vorhanden, jedoch verbessern die Erweiterungen die Leistung deutlich. Die Grafikauflösung ist höher und wird automatisch an die Fenstergröße angepasst. Ordnerfreigabe, Zeitsynchronisation und der Shared Folder funktionieren auch erst mit den Erweiterungen. Ubuntu und seine Abkömmlinge liefern Gasterweiterungen in den Repositories, aus dem sie der Treibermanager installieren kann. Noch besser ist es aber, stets aktuelle Versionen der Gasterweiterungen von Virtualbox zu installieren, da diese viele Performance- und Anzeigeprobleme lösen. Es ist empfehlenswert, die Distribution zuerst mit dem Paketmanager auf den allerneusten Stand zu bringen. Sie benötigen zudem DKMS (Dynamic Kernel Module Support), das bei den meisten aktuellen Distributionen bereits per Standard eingerichtet ist. Bei Bedarf können Sie es in Ubuntu/Mint/Debian mit

sudo apt-get install dkms

nachrüsten. Und auch Fedora , Cent-OS und Open Suse kennen das Paket unter dem Namen "dkms". Generell benötigen Sie auch die Kernel-Header-Dateien, die Ubuntu im Paket "linuxheaders-[Kernelversion]" bereits mitliefert. Bei anderen Distributionen müssen Sie die Header des aktuellen Kernels meist noch selbst über den Paketmanager nachinstallieren, wobei sich der Name in den Distributionen unterscheidet. In Fedora und Open Suse lautet der Name der Header beispielsweise "kernel-devel".

Gastfreundliche Virtualbox: Dieser Befehl installiert die Gasterweiterungen in Debian 7, wofür zunächst die manuelle Installation von Kernel-Headern nötig ist. Ubuntu bringt diese Header bereits mit.
Gastfreundliche Virtualbox: Dieser Befehl installiert die Gasterweiterungen in Debian 7, wofür zunächst die manuelle Installation von Kernel-Headern nötig ist. Ubuntu bringt diese Header bereits mit.

Die Gasterweiterungen finden Sie in der Virtualbox im VM-Fenster über den Menüpunkt "Geräte -> Medium mit Gasterweiterungen einlegen". Während unter Windows-Gästen bei aktiviertem Auto-Run automatisch das Setup-Programm startet, müssen Sie die Installation in den meisten Linux-Systemen manuell anwerfen. Unter Linux werden Erweiterungen als Binary "VBoxLinuxAdditions.run" ausgeliefert, die schließlich die Kernel-Module baut und installiert. Dazu gehen Sie im Terminal auf das virtuelle CD, die Virtualbox für die Gasterweiterungen einhängt, und führen dort mit

sudo sh ./VBoxLinuxAdditions.run

das Installationsprogramm aus. Sollten noch Abhängigkeiten wie "make" oder "gcc" fehlen, dann wird Sie das Programm in der Logdatei "/var/log/vboxadd-install.log" darauf hinweisen. Ein frisches Ubuntu und Mint 17 liefert bereits alle Pakete mit, so dass die Installation ohne Fehlermeldung abschließt.

Virtuelle Server: Direkt ins Netzwerk

Virtualbox eignet sich gut, einen virtuellen Server aufzusetzen. Um dieser Aufgabe gerecht zu werden, ist es von Vorteil, wenn die virtuelle Maschine ihre Server-Dienste im lokalen Netzwerk anbieten kann. Die Standardeinstellung neu erstellter Maschinen ist NAT (Network Address Translation) für deren Netzwerkverbindung. Dabei bildet das Gastsystem mit dem Host ein eigenes Netzwerk.

Der Host agiert als Router mit DHCP-Server in einem Subnetz. Netzwerkpakete des Gastsystems reicht Virtualbox ins physikalische Netzwerk weiter - aber nicht umgekehrt. Soll die VM eingehende Pakete auf einer eigenen IP-Adresse im lokalen Netz empfangen, so ist eine Anpassung an der Konfiguration der VM nötig: Gehen Sie in Virtualbox für die ausgewählte, ausgeschaltete VM auf "Ändern > Netzwerk", und wählen Sie im Feld "Angeschlossen an" die "Netzwerkbrücke" aus. Ab dem nächsten Start erhält das Gastsystem vom DHCP-Server, also dem WLAN/ADSL-Router im Heimnetzwerk eine IP-Adresse.

Netzwerk: Gäste mit permanenter IP

Damit die VM immer aus dem LAN unter der gleichen IP-Adresse erreichbar ist, auch wenn sie zwischenzeitlich lange ausgeschaltet bleibt, ist eine feste IP nötig. Der Weg zur festen Adresse ist dabei nicht anders als bei realen Rechnern im LAN und benötigt den tatsächlichen Router im LAN, der per DHCP die IP-Adressen an die Teilnehmer verteilt. Beim Router reservieren Sie in den DHCP-Einstellungen für die gewünschte, stets gleiche MAC-Adresse der VM die gewünschte IP - im Detail:

1. Stellen Sie sicher, dass die Netzwerkkonfiguration der VM in Virtualbox unter "Angeschlossen an" die "Netzwerkbrücke" und nicht "NAT" nutzt.

2. Im gleichen Dialog zeigt Ihnen Virtualbox unter "Erweitert" neben "MAC-Adresse" die Hardware-Adresse des virtuellen Netzwerkadapters an. Diese MAC-Adresse müssen Sie im nächsten Schritt dem Router mitteilen.

3. Öffnen Sie im Webbrowser die Konfigurationsoberfläche des Routers über dessen IP-Adresse, und melden Sie sich dort an. Falls Sie die IP-Adresse des Routers nicht kennen, verrät diese der Befehl

route -n

in einem Terminal unter "Router". Die AVM Fritzbox erreichen Sie auch einfach über die Adresse "fritz.box". In den Einstellungsmenüs suchen Sie nach der Option "DHCP-Reservierung", "Static IP" oder auch "DHCP Static Lease". Der Name der Option unterscheidet sich je nach Router-Hersteller, findet sich meist aber in den Einstellungen für das lokale Netzwerk. Dort führt der Router in einer Tabelle die fest zugewiesenen IPs pro MAC-Adresse auf, und dort können Sie auch die MAC der virtuellen Maschine samt gewünschter IP eintragen.

Hinweis: Die meisten Router erwarten MAC-Adressen in der Form XX:XX:XX:XX:XX:XX, und Sie müssen daher die MAC-Angabe von Virtualbox noch mit den Doppelpunkten ergänzen.

Permanente IP-Adresse: In den Router-Einstellungen, hier bei einem Modell von D-Link, können Sie anhand der MAC-Adresse der Netzwerkschnittstelle auch für VM-Gäste eine feste IP-Adresse vergeben.
Permanente IP-Adresse: In den Router-Einstellungen, hier bei einem Modell von D-Link, können Sie anhand der MAC-Adresse der Netzwerkschnittstelle auch für VM-Gäste eine feste IP-Adresse vergeben.

Ports weiterleiten: Gastsystem als Server

Soll eine virtuelle Maschine einen Dienst wie beispielsweise einen Webserver oder Datenbankserver unter der IP-Adresse des Hosts anbieten und nicht per Netzwerkbrücke unter einer eigenen IP, dann bietet die Virtualbox eine Portweiterleitung an.

Diese leitet einen bestimmten (unprivilegierten) Port des Hosts an einen beliebigen Port in der VM weiter. Unprivilegierte Ports sind jene ab der Portnummer 1024, und Sie können so beispielsweise den Port 8080 des Hosts an den Port 80 eines Webservers in der VM weiterleiten. Dies ist auch nützlich, wenn es nicht möglich ist, einer VM eine feste IP auf dem Router zuzuweisen, weil man dort keine Administrationsrechte hat.

1. Schalten Sie die VM aus, und stellen Sie deren Netzwerk unter "Anwender" auf "NAT".

2. Klappen Sie "Erweitert", aus und klicken Sie dann unten auf "Portweiterleitung".

3. Klicken Sie auf das Plus-Symbol rechts oben, um eine neue Weiterleitung zu definieren. In der neuen Spalte wählen Sie dann das gewünschte Protokoll aus, TCP oder UPD. Die Host-IP lassen Sie leer und geben nur den Host-Port an, unter der die VM erreichbar sein soll, beispielsweise 8080. Sie können hier nur unprivilegierte Ports verwenden, da die Virtualbox nicht mit root-Rechten läuft. Die Gast-IP lassen Sie wieder leer, und im Feld des Gast-Ports geben Sie an, an welchen Port des Gasts der Netzwerkverkehr gehen soll. Hier sind natürlich auch privilegierte Ports erlaubt, etwa 80 für einen Webserver in der Standardkonfiguration.

4. Nach dem Einschalten der VM ist die Portweiterleitung aktiv, und Virtualbox kümmert sich automatisch um die Weiterleitung an die virtuelle IP-Adresse der virtuellen Maschine hinter Ihrem NAT-Gateway. In diesem Beispiel erreichen Sie den Port 80 der VM jetzt von anderen Teilnehmern über die Host-Adresse und den Port 8080 - beispielsweise über 192.168.1.1:8080, falls der Host die IP 192.168.1.1 hat.

Ports auf den Host legen: Mit der Portweiterleitung von Virtualbox können Sie Netzwerkverkehr an unprivilegierten Ports des Hosts an eine Portnummer des Gast durchreichen.
Ports auf den Host legen: Mit der Portweiterleitung von Virtualbox können Sie Netzwerkverkehr an unprivilegierten Ports des Hosts an eine Portnummer des Gast durchreichen.