18.04.2014, 09:36 UhrDeutsch | English
Hallo Gast [ Registrierung | Anmelden ]

Einrichten eines Virtuellen Netzwerks

(für per qemu emulierte virtuelle maschinen)

Diese Anleitung baut auf dem Qemu + KQemu HowTo? auf:
http://wiki.kanotix.net/CoMa.php?CoMa=Qemu_+_KQemu_Installation_HowTo

Leider bietet Qemu keine vollständige Unterstützung für ein virtuelles Netzwerk.
So ist es z.B. nicht möglich, "ping" ins Internet zu nutzen, da es root-Rechte erfordern würde (und wir qemu als user benutzen wollen).
Auch ist es nicht so ohne weiteres möglich mehrere virtuelle Maschinen untereinander und mit dem Internet kommunizieren zu lassen.

Um den virtuellen Maschinen eine vollständige TCP/IP-Anbindung zu geben erstellen wir unser eigenes virtuelles Netzwerk.

Dazu benutzen wir das Programm

vde

(virtual distributed ethernet). vde ist im Debian repository (v. 1.5.9-3).
Allerdings haben sich die Kommandozeilen-Parameter in qemu 0.8 geändert, so dass wir eine neuere Version von vde brauchen.
D.h. wir kompilieren uns vde 2.0.2 aus den Quellen selbst:

Herunterladen der vde Quellen:
:code:$ wget ::

Im tmp Verzeichnis auspacken:
:code:$ cd /tmp/
$ tar xfvj /home/madblueimp/vde-2.0.2.tar.bz2?:code:

Konfigurieren und kompilieren:
:code:$ ./configure
$ make:code:

Als root installieren:
:code:$ su
# make install:code:

Erstellen eines Skriptes, um das virtuelle Netzwerk und Routing
beim Systemstart einzurichten:
:code:# cd /etc/init.d
# vi vde:code:

Folgende Zeilen eintragen und speichern:
:code:#!/bin/sh
# /etc/init.d/vde: setup/shutdown a virtual distributed ethernet
#
# description: virtual distributed ethernet
#

case "$1" in
      1. "virtual distributed ethernet setup"
# Start the virtual ethernet as daemon: /usr/local/bin/vde_switch -tap tap0? -daemon -sock /tmp/vde.ctl # To run your virtual ethernet in hub mode, use the -hub option instead: # /usr/local/bin/vde_switch -hub -tap tap0? -daemon -sock /tmp/vde.ctl
# Wait a little for the virtual network to setup: /bin/sleep 2
# Assign an IP to the virtual interface tap0?: /sbin/ifconfig tap0? 192.168.254.254
# Make it accessible for everyone: /bin/chmod -R 777 /tmp/vde.ctl
# Activate routing to the ethernet:
    1. "1" > /proc/sys/net/ipv4?/ip_forward /sbin/iptables -t nat -A POSTROUTING -o lan0? -j MASQUERADE ;;
    1. "virtual distributed ethernet shutdown"
# Flush the POSTROUTING list in iptables: /sbin/iptables -F POSTROUTING -t nat
# Shutdown the virtual network: /sbin/ifconfig tap0? down >/dev/null 2>&1
# Kill the vde daemon: /usr/bin/killall vde_switch >/dev/null 2>&1 ;;
  • )
    1. "Usage: $0 {start|stop}"
    2. 1
esac
exit 0:code:

Danach das Skript noch ausführbar machen:
:code:# chmod +x vde:code:

Dann ins Verzeichnis mit den im Runlevel 5 zu startenden Scripten wechseln:
:code:# cd /etc/rc5?.d:code:

Und einen symbolischen Link zum Start des Skriptes anlegen:
"S" steht hier für "Start", d.h. der Parameter "start" wird an das Skript übergeben.
"20" steht für die Prioritäts-Reihenfolge gegenüber anderen Skripten.
:code:# ln -s /etc/init.d/vde S20vde:code:

Nach einem Neustart sollte das virtuelle Netzwerk verfügbar sein.

Durch die Routing Regel haben die virtuellen Maschinen auch Zugriff auf das Internet.
Bei mir wird das aber erstmal durch die Firewall Regeln geblockt.
Also Start von Guarddog:
:code:$ kdesu guarddog:code:
Dann Anlegen einer neuen Netzwerkzone (ich habe sie VLAN genannt) und
das gesammte virtuelle LAN mit der Netzwerkadresse 192.168.254.0/255.255.255.0 hinzufügen.
Dieses noch per Häkchen mit den gewünschten Netzwerken verbinden (Internet, ...).
Im Reiter Protokoll wiederum festlegen, welche Dienste ins Internet (oder anderen Zonen)
möglich sein sollen ("von Internet für VLAN bereitgestellt").
Also z.B. Netzwerk->DNS und Ping, Dateiübertragung->HTTP, HTTPS und FTP, usw.


Um jetzt die per QEMU emulierten Maschinen beim Starten mit dem virtuellen Netzwerk
zu verbinden gibt es einen Wrapper-Befehl, der folgendermassen benutzt wird:
:code:$ vdeqemu -snapshot -cdrom /media/sda7?/ISO/Kanotix/KANOTIX-2005-04.iso -m 265 -boot d:code:

vdeqemu übergibt qemu als Parameter das virtuelle Netzwerk als Interface.
Man lässt also die Netzwerk Optionen (-net) weg und kann ansonsten die gleichen Parameter
verwenden, wie beim direkten Aufruf von qemu.

In JQEMU (einer grafischen Benutzeroberfläche für qemu) kann man in den Optionen (alt-o)
den Befehl zum Aufruf von qemu in vdeqemu ändern, und somit vde auch in JQEMU nutzen.


Das einzige was jetzt noch fehlt ist die Netzwerk-Konfiguration der Clients.
Dies gelingt leider nicht automatisch, da für das virtuelle Netzwerk kein DHCP-Server
vorhanden ist.
Folgende Einstellungen müssen in den Clients vorgenommen werden:
:code:IP: 192.168.254.[1-253] (also z.B. 192.168.254.1)
Netmask: 255.255.255.0
Broadcast: 192.168.254.255
Gateway: 192.168.254.254
DNS-Server: Wie im Host, bzw. code :


So das war's. Jetzt haben wir ein virtuelles Netzwerk und können munter
Samba-Konfigurationen, Firewall-Regeln und andere Dinge testen, ohne einen
zweiten Rechner laufen lassen zu müssen.


Diese Anleitung wurde mit freundlicher Genehmigung des Autors ;) hier entnommen:
https://blueimp.net/forum/viewtopic.php?t=230#4564
XML Revisions of $tag
Seiten-History :: Letzter Editor : madblueimp :: Eigentümer : madblueimp ::
Powered by pnWikka 1.0
 
 
Deutsch | English
Logos and trademarks are the property of their respective owners, comments are property of their posters, the rest is © 2004 - 2006 by Jörg Schirottke (Kano).
Consult Impressum and Legal Terms for details. Kanotix is Free Software released under the GNU/GPL license.
This CMS is powered by PostNuke, all themes used at this site are released under the GNU/GPL license. designed and hosted by w3you. Our web server is running on Kanotix64-2006.