VirtualBox: Unterschied zwischen den Versionen
Omee (Diskussion | Beiträge) Links als einzelnen Punkt erstellt |
GerBra (Diskussion | Beiträge) Abschnitt zu Netzwerk-Konfig(bridge) hinzugefügt, Kategorie auf Konfiguration erweitert. |
||
Zeile 51: | Zeile 51: | ||
Nach einem Kernelupdate oder einfügen eines eigenen Kernels müssen die Kernelmodule von Virtualbox neu erstellt werden. Das machst du einfach mit | Nach einem Kernelupdate oder einfügen eines eigenen Kernels müssen die Kernelmodule von Virtualbox neu erstellt werden. Das machst du einfach mit | ||
vbox_build_module | vbox_build_module | ||
==Konfiguration== | |||
Hier werden verschiedene Konfigurationsmöglichkeiten für den Wirt und Gast beschrieben | |||
===Netzwerk über HostInterface(dynamisch)=== | |||
Diese Konfiguration macht das Gastsystem zu einem vollwertigen Client im lokalen Netzwerk, d.h. er bekommt eine IP-Adresse die im Gegensatz zu NAT auch von anderen Systemen erreichbar ist. Dies erfolgt über virtuelle Netzinterfaces (tun/tap), die mit dem Wirt zu einer Bridge zusammengeschlossen werden.<br> | |||
Dafür sind dauerhafte Änderungen an der Netzwerk-Konfiguration des Wirts nötig, das vom Gast benötigte virtuelle Interface wird beim Start des Gastsystems erzeugt und in die Bridge aufgenommen. | |||
Auf dem Wirt sind folgende Pakete zu installieren: | |||
pacman -S bridge-utils | |||
pacman -S uml_utilities | |||
pacman -S sudo | |||
Jetzt muß die /etc/rc.conf des Wirtes angepaßt werden um die Bridge einzurichten. Das "normale" Netzwerkdevice (ich gehe hier von eth0 aus) wird dadurch direkt nach dem Start als alleiniges Mitglied in die Bridge(br0) aufgenommen. Jedweder Netzverkehr wird also nun über br0 statt bisher eth0 transferiert. | |||
# /etc/rc.conf entsprechend an diesen Stellen ändern bzw. einfügen | |||
# | |||
MODULES=(... tun ...) | |||
# | |||
# NETWORKING | |||
BRIDGE_INTERFACES=(br0) | |||
bridge_br0=(eth0) | |||
# statische IP an eigenes Netz anpassen! | |||
br0="br0 192.168.0.20 netmask 255.255.255.0 broadcast 192.168.0.255" | |||
# Oder bei Verwendung von DHCP | |||
# br0="dhcp" | |||
eth0="eth0 0.0.0.0 promisc" | |||
INTERFACES=(br0 eth0) | |||
Nach einem Neustart sollte nun das Netzwerk des Wirtes funktionieren wie bisher, als konfiguriertes Device wird nun halt br0 statt bisher eth0 benutzt (ifconfig, route). Die Bridge arbeitet auf der MAC-Adressebene, d.h. Pakete werden anhand der | |||
Ziel/Quell-MAC-Adresse von ihr an die in der Bridge aufgenommenen "realen" Interfaces verteilt. Momentan ist darin nur eth0, später durch die VirtualBox-Gäste auch noch deren Devices(tap0 - tapN) | |||
Jetzt muß am Wirt noch mittels sudo erlaubt werden, daß der User der VirtualBox diverse Befehle ausführen darf als wäre er root. Sudo wird konfiguriert mit: | |||
visudo | |||
In die sudoers-Datei eintragen: | |||
%vboxusers ALL=(ALL) NOPASSWD: /sbin/ifconfig, /usr/sbin/brctl, /usr/bin/tunctl | |||
Jetzt noch zwei Skripte erstellen, die später die Gast-Devices einrichten und zur Bridge hinzufügen. Diese z.B. nach /usr/local/bin/vbox_start und /usr/local/bin/vbox_stop speichern (Rechte: root.vboxusers rwxr-xr--) | |||
#!/bin/sh | |||
# | |||
# vbox_start | |||
IF=$(sudo tunctl -b -u $USER) | |||
echo $IF | |||
sudo ifconfig $IF up | |||
sudo brctl addif br0 $IF | |||
#!/bin/sh | |||
# | |||
# vbox_stop | |||
sudo brctl delif br0 $2 | |||
sudo tunctl -d $2 | |||
Jetzt die Netzwerk-Konfiguration an einem Gast vornehmen.<br> | |||
Im Abschnitt Netzwerk z.B. für Adapter0 "Angeschlossen an" umstellen auf '''Hostinterface'''.<br> | |||
Dann bei "Einstellungen für Hostinterface": | |||
Name des Interfaces: '''bleibt leer!''' | |||
Programm zum Einrichten: '''/usr/local/bin/vbox_start''' | |||
Programm zum Entfernen: '''/usr/local/bin/vbox_stop''' | |||
Wenn dieses Gastsystem nun startet wird durch das Einrichte-Skript ein freies tap-Device angelegt, eingerichtet und in die Bridge aufgenommen. Ein weiterer Gast (oder ein Gast mit mehreren Netzwerk-Karten) erhält die nächst freien Nummern (tap0 bis | |||
tapN). Beim Beenden des Gastsystems werden diese tap-Devices jeweils wieder aus der Bridge entfernt und freigegeben. | |||
==Links== | ==Links== | ||
Zeile 57: | Zeile 115: | ||
[[Kategorie: Installation]] | [[Kategorie: Installation]] | ||
[[Kategorie: Konfiguration]] |
Version vom 9. Mai 2008, 09:49 Uhr
Virtualbox
Was ist Virtualbox?
Virtualbox ist eine von der Firma Innotek entwickelte Software zur virtuallisierung. Mit Virtualbox ist es möglich weiter Betriebssysteme (Gast) wie ein Normales Programm auf seinem Rechner laufen zu lassen. Virtualbox steht in 2 Versionen bereit, einer Open-Source-Edition (OSE) und einer Closed-Source-Edition, die unter bestimmten Bedingungen kostenlos verwendet werden darf.
Einige Features fehlen der OSE Version:
- Remote Display Protocol (RDP) Server
- USB Unterstützung
- USB über RDP
- ISCSI Unterstützung
Installation
Hier wird erklärt wie du Virtualbox installiers. Es stehen zwei möglichkeiten zur Auswahl, die Open Source Edition oder die Closed Source Edition.
Virtualbox (Open Source Edition)
Die OSE Version befindet sich im Comunity Zweig der Repos.
Dieser Teil:
[community] # Add your preferred servers here, they will be used first Include = /etc/pacman.d/community
darf also nicht auskommentiert sein!
Nun wird Virtualbox einfach über pacman (als root) installiert
pacman -Sy virtualbox-ose
(Die virtualbox-modules werden automatisch mit installiert)
Nun fügst du deinen Benutzernamen der Gruppe vboxusers hinzu. Einfach via
gpasswd -a USERNAME vboxusers
Nun noch die Module "vboxdrv" in die rc.conf unter MODULES eintragen, sodass diese bei einem Systemstart automatisch geladen werden. Um nicht neustarten zu müssen, können die Module zur sofortigen Verwendung händisch geladen werden. Dies geschiet mit
modprobe vboxdrv
Virtualbox (Closed Source Edition)
Zur Closed Source Edition befindet sich ein PKGBUILD im AUR. Einfach downloaden, mit makepkg das Paket erstellen und (als root) mit
pacman -U NAME_DES_PAKETS.pkg.tar.gz
installieren.
Nun musst du dich noch in die Gruppe vboxusers hinzufügen. Dies geschieht mit
gpasswd -a USERNAME vboxusers
Nun noch die Module "vboxdrv" in die rc.conf unter MODULES eintragen, sodass diese bei einem Systemstart automatisch geladen werden. Um nicht neustarten zu müssen, können die Module zur sofortigen Verwendung händisch geladen werden. Dies geschiet mit
modprobe vboxdrv
WICHTIG: Nach einem Kernelupdate oder einfügen eines eigenen Kernels müssen die Kernelmodule von Virtualbox neu erstellt werden. Das machst du einfach mit
vbox_build_module
Konfiguration
Hier werden verschiedene Konfigurationsmöglichkeiten für den Wirt und Gast beschrieben
Netzwerk über HostInterface(dynamisch)
Diese Konfiguration macht das Gastsystem zu einem vollwertigen Client im lokalen Netzwerk, d.h. er bekommt eine IP-Adresse die im Gegensatz zu NAT auch von anderen Systemen erreichbar ist. Dies erfolgt über virtuelle Netzinterfaces (tun/tap), die mit dem Wirt zu einer Bridge zusammengeschlossen werden.
Dafür sind dauerhafte Änderungen an der Netzwerk-Konfiguration des Wirts nötig, das vom Gast benötigte virtuelle Interface wird beim Start des Gastsystems erzeugt und in die Bridge aufgenommen.
Auf dem Wirt sind folgende Pakete zu installieren:
pacman -S bridge-utils pacman -S uml_utilities pacman -S sudo
Jetzt muß die /etc/rc.conf des Wirtes angepaßt werden um die Bridge einzurichten. Das "normale" Netzwerkdevice (ich gehe hier von eth0 aus) wird dadurch direkt nach dem Start als alleiniges Mitglied in die Bridge(br0) aufgenommen. Jedweder Netzverkehr wird also nun über br0 statt bisher eth0 transferiert.
# /etc/rc.conf entsprechend an diesen Stellen ändern bzw. einfügen # MODULES=(... tun ...) # # NETWORKING BRIDGE_INTERFACES=(br0) bridge_br0=(eth0) # statische IP an eigenes Netz anpassen! br0="br0 192.168.0.20 netmask 255.255.255.0 broadcast 192.168.0.255" # Oder bei Verwendung von DHCP # br0="dhcp" eth0="eth0 0.0.0.0 promisc" INTERFACES=(br0 eth0)
Nach einem Neustart sollte nun das Netzwerk des Wirtes funktionieren wie bisher, als konfiguriertes Device wird nun halt br0 statt bisher eth0 benutzt (ifconfig, route). Die Bridge arbeitet auf der MAC-Adressebene, d.h. Pakete werden anhand der Ziel/Quell-MAC-Adresse von ihr an die in der Bridge aufgenommenen "realen" Interfaces verteilt. Momentan ist darin nur eth0, später durch die VirtualBox-Gäste auch noch deren Devices(tap0 - tapN)
Jetzt muß am Wirt noch mittels sudo erlaubt werden, daß der User der VirtualBox diverse Befehle ausführen darf als wäre er root. Sudo wird konfiguriert mit:
visudo
In die sudoers-Datei eintragen:
%vboxusers ALL=(ALL) NOPASSWD: /sbin/ifconfig, /usr/sbin/brctl, /usr/bin/tunctl
Jetzt noch zwei Skripte erstellen, die später die Gast-Devices einrichten und zur Bridge hinzufügen. Diese z.B. nach /usr/local/bin/vbox_start und /usr/local/bin/vbox_stop speichern (Rechte: root.vboxusers rwxr-xr--)
#!/bin/sh # # vbox_start IF=$(sudo tunctl -b -u $USER) echo $IF sudo ifconfig $IF up sudo brctl addif br0 $IF
#!/bin/sh # # vbox_stop sudo brctl delif br0 $2 sudo tunctl -d $2
Jetzt die Netzwerk-Konfiguration an einem Gast vornehmen.
Im Abschnitt Netzwerk z.B. für Adapter0 "Angeschlossen an" umstellen auf Hostinterface.
Dann bei "Einstellungen für Hostinterface":
Name des Interfaces: bleibt leer! Programm zum Einrichten: /usr/local/bin/vbox_start Programm zum Entfernen: /usr/local/bin/vbox_stop
Wenn dieses Gastsystem nun startet wird durch das Einrichte-Skript ein freies tap-Device angelegt, eingerichtet und in die Bridge aufgenommen. Ein weiterer Gast (oder ein Gast mit mehreren Netzwerk-Karten) erhält die nächst freien Nummern (tap0 bis tapN). Beim Beenden des Gastsystems werden diese tap-Devices jeweils wieder aus der Bridge entfernt und freigegeben.