VM, Virtualisierer & Co.

Virtualbox-Tricks für Profis und Fortgeschrittene

19.11.2015 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.

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

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.

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.

Ports weiterleiten: Gastsystem als Server

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.

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.

Drahtlosnetzwerk: WLAN per USB

Wifi muss mit: Wenn ein Gastsystem über einen echten WLAN-Adapter verfügen soll, etwa um als Netzwerk-Scanner zu arbeiten, können Sie einen USB-WLAN-Adapter am Host-System an den Gast weitergeben.

Virtualbox bietet eine vollständige Virtualisierung mit der Emulation von Geräten, die ein modernes Betriebssystem erwartet. Mit Paravirtualisierung, die einem Gast eine direkte Nutzung von physikalisch vorhandener Hardware auf dem Host-System ermöglicht, kann Virtualbox nicht dienen.

Was deshalb leider nicht gelingt, ist der Zugriff auf eine Netzwerkkarte für Drahtlosnetzwerke, da der virtuelle Netzwerkadapter diese über seinen eigenen Treiber im Gast als Ethernet-Karte abbildet.

Dies ist dann eine empfindliche Einschränkung, wenn es darum geht, Programme wie WLAN-Scanner in einer VM laufen zu lassen oder ganz einfach die WLAN-Fähigkeiten und Drahtloskonfiguration in Gastbetriebssystemen zu testen. Ganz aufgeben muss man Drahtlosnetzwerke in einer VM in Virtualbox aber nicht: Ein Umweg über USB bringt eine reale Netzwerkschnittstelle ins Gastsystem. Sie brauchen dazu lediglich einen USB-WLAN-Adapter für USB 2.0, den Sie am Host anschließen. Adapter für 802.11/b/g/n gibt es bereits ab ein paar Euro. Wenn der Gast ein Linux-System ist, sollten Sie schon beim Kauf Wert auf einen USB-WLAN-Adapter legen, der vom Linux-Kernel ohne Probleme unterstützt wird. Beispielsweise funktionieren die Billigadapter Edimax EW-7811UN zu acht Euro und der CSL 300 MBit/s WLAN-Stick für 12 Euro mit Linux – ganz ohne lästige manuelle Treibersuche.

Nach dem Anschluss an einem USB-Port während der eingeschalteten VM gehen Sie in der Menüleiste der Virtualbox auf „Geräte -> USB-Geräte“ und finden dann in der Liste den physikalischen USB-WLAN-Adapter, den Sie per Klick aktivieren. Dabei wird dieses USB-Gerät vom Host abgeklemmt und steht jetzt dem Gast als reale WLANNetzwerkschnittstelle zur Verfügung.

Übersicht: Die Netzwerkanbindung der Gäste

Gut vernetzt: Virtualbox lässt Gäste über eine Netzwerkbrücke auch direkt als eigenständigen Netzwerkteilnehmer ins LAN. Standard ist jedoch NAT (Network Address Translation).

Die Virtualbox unterstützt auf den virtuellen Netzwerkadaptern verschiedene Anbindungen, die festlegen, wie eine VM mit dem Netzwerk oder dem Host kommunizieren kann.

NAT: Network Address Translation ist die Standardeinstellung. Die Virtualbox fungiert hier als Router und leitet den Netzwerkverkehr einer VM unter der IP-Adresse des Hosts ins lokale Netzwerk weiter. Die VM ist ohne Portweiterleitung von außen jedoch nicht erreichbar.

NAT Netzwerk (NAT Network): Möchte man mehrere VMs in einem eigenen privaten Subnetz zusammenschließen, das von außen nicht erreichbar ist, aus dem aber die VMs unter der IP des Hosts herauskommen, dann ist dies die richtige Einstellung. Dafür ist es nötig, zunächst ein NAT-Netzwerk im Hauptfenster der Virtualbox unter „Datei -> Globale Einstellungen -> Netzwerk -> NAT Netzwerk“ mit dem Plus-Symbol hinzuzufügen.

Netzwerkbrücke (Bridged Adapter): Der virtuelle Adapter gibt sich im LAN als eigenständiger Teilnehmer aus, und die VM erhält eine IP-Adresse vom tatsächlichen DHCP-Server. Ein Gast ist so auch ohne Portforwarding aus dem LAN erreichbar.

Host-only-Adapter: Dies erlaubt den Netzwerkverkehr lediglich zwischen Host und Gast. Der Gast kommt nicht ins LAN oder ins Internet und ist auch nicht erreichbar. Damit dieser Modus funktioniert, müssen Sie erst unter „Datei -> Globale Einstellungen -> Netzwerk -> Host-only Netzwerk“ ein neues, virtuelles Netzwerk erstellen und dieses wiederum in den Einstellungen der VM auswählen.

Ubuntu in der Virtualbox

Beengte Verhältnisse: Bevor die Gasterweiterungen installiert sind, präsentiert sich ein frisch installiertes Ubuntu oder Linux Mint nur mit der Minimalauflösung von 640 x 480 Pixeln.

Der Grafiktreiber für den Gastbetrieb in der Virtualbox ist in Ubuntu als proprietär gekennzeichnet und wird nach der Installation dieser Ubuntu-Systeme nicht automatisch geladen. Deshalb zeigt sich der Desktop zunächst in seiner abschreckenden Minimalauflösung von 640 x 480 Pixeln, unter der sich nicht vernünftig arbeiten lässt. Das ist aber schnell behoben: In Ubuntu und seinen Varianten wie Xubuntu und Lubuntu öffnen Sie mit Alt-F2 den Ausführen-Dialog und geben

software-properties-gtk --open-tab=4

ein, was „Software & Aktualisierungen“ auf der Registerkarte „Zusätzliche Treiber“ öffnet. Dort wählen Sie unterhalb von „InnoTek Systemberatung GmbH: VirtualBox Guest Service“ den ersten Punkt „x86 virtualization solution“ aus, verschieben das Fenster etwas nach rechts, damit der verdeckte Teil sichtbar wird, und klicken dann auf „Änderungen anwenden“. In Kubuntu rufen Sie den Treibermanager der Systemeinstellungen stattdessen im Ausführen-Dialog mit diesem Befehl auf:

kcmshell4 kcm_driver_manager

Aufgrund der niedrigen Auflösung ist der Weg über diese Kommandos einfacher als über die jeweiligen Menüs, die nicht ganz auf den virtuellen Bildschirm passen.

Anschließend ist ein Neustart des Systems notwendig. Dies ersetzt noch nicht die Kompilierung und Installation der vollen Gasterweiterungen, aber immerhin steht jetzt dank Xorg-Treiber die volle Auflösung des Monitors in der VM bereit.

(PC-Welt/ad)