Login
Newsletter
Werbung

Do, 1. März 2007, 00:00

VirtualBox

Virtuelle Maschine für Linux

Netz

Ohne Zugang zum lokalen Netz oder gar zum Internet ist eine virtuelle Maschine meist nutzlos. Auch eine Netzverbindung mehrerer gleichzeitig laufender virtueller Maschinen ist wünschenswert, besonders wenn man bestimmte Netzkonfigurationen testen will. VirtualBox bietet drei verschiedene Möglichkeiten, ein Netzwerk einzurichten. Alle funktionieren als normaler Benutzer. Natürlich kann man den Netzwerk-Adapter (bis zu vier kann man definieren) auch ganz abschalten oder auf »nicht verbunden« setzen. Letzteres kann nützlich sein, wenn man dem Gastsystem die Netzverbindung entziehen will, um zum Beispiel eine Neukonfiguration des Netzwerks auszulösen.

NAT-Modus

Im Modus »NAT« ist der Zugriff auf das Netz außerhalb der virtuellen Maschine möglich. Es ist normalerweise keine Konfiguration nötig, da das Gastsystem seine Konfiguration per DHCP von einem in VirtualBox integrierten DHCP-Server bezieht. Dieser Modus ist am besten geeignet für Client-Rechner. In ihm ist es nicht möglich, von außen auf die VM zuzugreifen (außer mit dem Remote Display-Feature). VirtualBox stellt auch einen DNS-Server für die Gastsysteme bereit.

Host-Schnittstellen-Modus

Im Modus »Host Interface« ist der Zugriff auf das Netz außerhalb der virtuellen Maschine möglich. Vorteil ist auch, dass die VM so als Server dienen kann. Läuft ein SSH-Server in der VM, kann man sich vom Hostsystem, aber auch von jedem anderen Rechner im Netz aus, auf der VM einloggen. Die Konfiguration dieses Modus ist jedoch kompliziert. Es gibt zwei Arten, ihn einzurichten: Statisch oder dynamisch. Da sich beide Arten ähneln, beschreibe ich die dynamische. Die statische ist im Anwenderhandbuch erläutert.

Der Modus »Host Interface« verwendet eine Bridge und das tun/tap-Device. Richten wir zunächst die Bridge ein. Das Kommando brctl dürfe von fast jeder Distribution mitgeliefert werden, muss jedoch evtl. nachinstalliert werden. Es befindet sich in einem Paket namens bridge-utils oder ähnlich. Während der Einrichtung der Bridge geht die Netzwerkverbindung kurzzeitig verloren, dies muss man bei der Arbeit von einem anderen Rechner aus, manchmal auch unter X11, berücksichtigen. Alle Kommandos müssen mit Root-Rechten ausgeführt werden:

/sbin/brctl addbr br0
/sbin/ifconfig eth0 0.0.0.0
/sbin/brctl addif br0 eth0

Das letzte Kommando hängt davon ab, ob der Host seine Adresse per DHCP oder statisch bekommt. Im ersteren Fall sollte ein

/sbin/dhclient br0

die Netzverbindung wieder herstellen. Andernfalls trägt man die Adresse statisch ein.

/sbin/ifconfig br0 192.168.1.1
/sbin/route add default gw 192.168.0.1

Nun muss man das tun/tap-Device /dev/net/tun vorbereiten. Der Benutzer, der VirtualBox ausführt, benötigt Zugriff auf das Device, den man laut Dokumentation des Devices mit einem kernigen chmod 0666 /dev/net/tun erteilen kann. Man kann den Zugriff, auch wenn es nicht notwendig ist, auch auf die Gruppe vboxusers einschränken:

chmod 0660 /dev/net/tun
chgrp vboxusers /dev/net/tun

Konfiguration des Host-Netzwerks

hjb

Konfiguration des Host-Netzwerks

Damit ist alles vorbereitet für den dynamischen Teil, der von VirtualBox selbst ausgeführt wird. Damit VirtualBox weiß, was zu tun ist, muss man in der Netzwerk-Konfiguration drei Dinge eintragen: Den Namen der Netzwerkschnittstelle (tap0, tap1 oder ähnliches), ein Programm, das die Schnittstelle einrichtet, und eines, das sie wieder herunterfährt. Diese Programme können als Shellskripte realisiert werden, die nur ein bis zwei Zeilen enthalten. Ich nenne sie einfach up und down. Sie können von allen VMs genutzt werden, müssen also nur einmal erstellt werden. Das Skript up lautet:

#!/bin/sh
sudo /sbin/ifconfig $2 up
sudo /usr/sbin/brctl addif br0 $2

down ist noch komplizierter:

#!/bin/sh
sudo /usr/sbin/brctl delif br0 $2

Achtung: sudo funktioniert nur, wenn es kein Passwort verlangt. Andernfalls bleiben die Skripte hängen, weil sie auf eine Eingabe warten. In diesem Fall muss man sudo beispielsweise durch gksu -s ersetzen, das einen grafischen Passwort-Prompt bringt. KDE-Anwender verwenden kdesu. In meinen Tests funktionierte das jedoch nicht. Wenn es jemand erfolgreich zum Laufen gebracht hat, bitte ich um Rückmeldung.

Man sollte nicht vergessen, up und down ausführbar zu machen. Wichtig ist auch, zu kontrollieren, ob die Pfade zu ifconfig und brctl stimmen, denn es gibt bisweilen Unterschiede zwischen den Distributionen. Es fehlt noch ein sehr wichtiges Element, nämlich das Programm tunctl. Ohne dieses geht gar nichts. Die meisten Distributionen dürften auch dieses Programm mitliefern, wenn auch in unterschiedlichen Paketen. Bei Debian ist es in uml-utilities versteckt.

Im Vergleich zu anderen Programmen wie VMWare und Parallels ist dieser Modus unnötig kompliziert einzurichten. VirtualBox sollte das Tool tunctl eingebaut haben und das Äquivalent zu up und down standardmäßig ausführen, solange ein Anwender nichts anderes angibt.

Interner Netz-Modus

Der letzte Modus »Internal Network« stellt ein virtuelles Netz bereit, das nur für den Host und die virtuellen Maschinen, die für das gleiche virtuelle Netz konfiguriert sind, sichtbar ist. Dieser Modus ist wieder ein Beispiel für die Unvollständigkeit der GUI - um ihn zu aktivieren, muss man abermals zur Kommandozeile greifen. Ein Kommando zur Aktivierung der zweiten Netzwerkkarte und Zuordnung zum internen Netz My Net könnte dann lauten:

VBoxManage modifyvm "My Machine 1" -nic2 intnet -intnet2 "My Net"

In diesem Modus haben die Gastsysteme keinen Zugriff auf Rechner außerhalb ihres eigenen Netzes, was schon aus Sicherheitsgründen manchmal erwünscht ist. Die Netzwerkkonfiguration ist automatisch. VirtualBox arbeitet in diesem Modus als Ethernet-Switch, der Broadcast, Multicast und Promiscous-Modus unterstützt. Die Kommunikation zwischen den VMs soll in diesem Modus schneller sein als in anderen Modi.

Audio

VirtualBox emuliert einen Intel AC97-Audiocontroller, wobei man einstellen kann, ob die Audio-Ausgabe im Nirvana verschwindet oder an ein OSS- oder ALSA-Gerät (seit Version 1.3.4) des Hosts geht.

Kommentare (Insgesamt: 1 || Alle anzeigen )
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung