Netzwerk-Konfiguration
An dieser Stelle stehen zwei Möglichkeiten zur Wahl: eine Bridge oder ein eigenes privates Subnetz mit NAT-Konfiguration. In der Default-Einstellung bekommt die Maschine ein privates Subnetz 192.168.122.0/24 zugewiesen. Über ein Device »virbr0« auf dem KVM-Host kommuniziert die Maschine fortan mittels NAT mit der Außenwelt.
Das beschriebene Netzwerksetup ist in der Libvirt-Konfigurationsdatei »/usr/share/libvirt/networks/default.xml« hinterlegt:
<network> <name>default</name> <bridge name="virbr0" /> <forward/> <ip address="192.168.122.1" netmask="255.255.255.0"> <dhcp> <range start="192.168.122.2" end="192.168.122.254" /> </dhcp> </ip> </network>
Das Subnetz lässt sich über die Konfigurationsdatei anpassen oder mit einer zweiten Datei hinzufügen (Abbildung 5). Der Befehl »virsh net-define/usr/share/libvirt/networks/default.xml« aktiviert die Änderungen. Zum Verteilen der IP-Adressen greift »libvirt« auf »dnsmasq« zurück, im Fehlerfall ist also sicherzustellen, dass dieser Dienst tatsächlich aktiv ist. »virsh« kann dann alle bekannten Netzwerke auflisten:
[root@tiffy ~]# virsh net-list --all Name State Autostart ----------------------------------------- default active yes ovirtbr0 active yes [root@tiffy ~]#
Etwas irreführend ist dabei, dass das NAT-Gerät als Bridge aufgeführt ist. Aber der folgende Aufruf in Listing 1 bestätigt, dass der Bridge keine Netzwerkkarten zugeordnet sind, sondern die Kommunikation via NAT einzurichten ist, wobei sich Libvirt selbstständig um die NAT-Regeln kümmert.
|
Listing 1: »brctl |
|---|
01 [root@tiffy ~]# brctl show 02 bridge name bridge id STP enabled interfaces 03 ovirtbr0 8000.000000000000 no 04 virbr0 8000.000000000000 yes 05 06 [root@tiffy ~]# iptables -t nat -L 07 Chain PREROUTING (policy ACCEPT) 08 target prot opt source destination 09 10 Chain POSTROUTING (policy ACCEPT) 11 12 target prot opt source destination 13 MASQUERADE all -- 192.168.122.0/24 !192.168.122.0/24 14 MASQUERADE all -- 192.168.50.0/24 !192.168.50.0/24 15 16 Chain OUTPUT (policy ACCEPT) 17 target prot opt source destination |
Natürlich kann auch der Virt-Manager sowohl bestehende Netzwerke verändern als auch neue einrichten. Hierfür wählt der Anwender einfach über den Menüpunkt »Edit | Details« einer Hypervisor-Verbindung den »Virtual-Networks«-Tab aus. Auf die gleiche Weise kann er im Übrigen auch einfach eventuell vorhandene Storagepools über das Netzwerk einbinden.
Abbildung 5: Bestehende virtuelle Netze lassen sich über den Virt-Manager anpassen, genauso kann der Admin neue Netzwerke hinzufügen.
Alternatives Bridging
Wer lieber echtes Bridging konfigurieren will, sodass die virtuelle Maschine eine IP-Adresse aus dem Host-Subnetz bekommt, muss etwas Handarbeit leisten. Zuerst sind die entsprechenden Init-Skripte für die Netzwerkgeräte zu erzeugen (Listing 2). Hat man diese Änderungen mittels »service network restart« dem System übermittelt, so lassen sich abschließend die notwendigen IPtables-Regeln schreiben:
[root@tiffy ~]# iptables -I FORWARD -m physdev --physdev-is-bridged -j ACCEPT
Ein erneuter Aufruf von »brctl« bestätigt, dass »eth0« nun zur Bridge gehört:
[root@tiffy ~]# brctl show bridge name bridge id STP enabled ovirtbr0 8000.000000000000 no virbr0 8000.000000000000 yes br0 8000.000e0cb30440 no eth0
Die Netzwerkkarten verbinden nach dem Start die virtuellen Maschinen durch eine Art virtuelles Crossover-Kabel mit der Bridge und man sieht diese Geräte dann ebenfalls in der »brctl«-Ausgabe der Bridge zugeordnet.
|
Listing 2: |
|---|
01 [root@tiffy ~]# cat > ifcfg-eth0 <<EOF 02 DEVICE=eth0 03 HWADDR=00:16:76:D6:C9:45 04 ONBOOT=yes 05 BRIDGE=br0 06 EOF 07 08 [root@tiffy ~]# cat > ifcfg-br0 <<EOF 09 DEVICE=br0 10 TYPE=Bridge 11 BOOTPROTO=dhcp 12 ONBOOT=yes 13 DELAY=0 14 EOF |
Soll man sich nun für ein Bridge- oder NAT-Netzwerk entscheiden? Der Vorteil von NAT-Netzwerken ist, dass sie out of the Box funktionieren und keine Handarbeit mehr notwendig ist. Außerdem sind die Maschinen nicht direkt im Subnetz sichtbar. Der Nachteil besteht darin, dass für jeden Dienst, der in einer virtuellen Maschine läuft, eine entsprechende NAT-Regel einzurichten ist. Dieses Problem kennt eine Bridge nicht, da die Maschinen direkt im Subnetz erscheinen. Das heißt jedoch auch, dass sie besonders zu schützen sind, ganz so, als ob es sich um physische Rechner handelte.
Sind alle Eigenschaften der Maschine im Virt-Manager festgelegt, startet der eigentliche Installer. Hat die Installation geklappt, lässt sich die Maschine danach über den »virt-manager« oder auch auf der Kommandozeile wie folgt starten:
[root@tiffy ~]# virsh start node9 Domain node9 started
Die Konfiguration für die Maschine findet sich im Verzeichnis »/etc/libvirt/qemu«, allerdings kann der Benutzer sich diese auch mit Hilfe von »virsh« anzeigen lassen (Listing 3).
|
Listing 3: |
|---|
01 [root@tiffy ~]# virsh dumpxml node9 02 <domain type='kvm' id='5'> 03 <name>node9</name> 04 <uuid>7475d088-836d-2fad-1674-f438c83d62ff</uuid> 05 <memory>524288</memory> 06 <currentMemory>524288</currentMemory> 07 <vcpu>1</vcpu> 08 <os> 09 <type arch='i686' machine='pc'>hvm</type> 10 <boot dev='cdrom'/> 11 </os> 12 <features> 13 <acpi/> 14 <pae/> 15 </features> 16 <clock offset='utc'/> 17 <on_poweroff>destroy</on_poweroff> 18 <on_reboot>restart</on_reboot> 19 <on_crash>restart</on_crash> 20 <devices> 21 <emulator>/usr/bin/qemu-kvm</emulator> 22 <disk type='file' device='disk'> 23 <source file='/var/lib/libvirt/images/node9-sda.img'/> 24 <target dev='vda' bus='virtio'/> 25 </disk> 26 <interface type='bridge'> 27 <mac address='00:16:3e:12:34:63'/> 28 <source bridge='ovirtbr0'/> 29 <target dev='vnet0'/> 30 <model type='virtio'/> 31 </interface> 32 <serial type='pty'> 33 <source path='/dev/pts/9'/> 34 <target port='0'/> 35 </serial> 36 <console type='pty' tty='/dev/pts/9'> 37 <source path='/dev/pts/9'/> 38 <target port='0'/> 39 </console> 40 <input type='mouse' bus='ps2'/> 41 <graphics type='vnc' port='5900' autoport='yes' keymap='en-us'/> 42 </devices> 43 </domain> |
Diesen Artikel als PDF kaufen
Express-Kauf als PDF
Umfang: 7 Heftseiten
Preis € 0,99
(inkl. 19% MwSt.)
Als digitales Abo
Weitere Produkte im Medialinx Shop »
Versandartikel
Onlineartikel
Alle Rezensionen aus dem Linux-Magazin
- Buecher/07 Bücher über 3-D-Programmierung sowie die Sprache Dart
- Buecher/06 Bücher über Map-Reduce und über die Sprache Erlang
- Buecher/05 Bücher über Scala und über Suchmaschinen-Optimierung
- Buecher/04 Bücher über Metasploit sowie über Erlang/OTP
- Buecher/03 Bücher über die LPI-Level-2-Zertifizierung
- Buecher/02 Bücher über Node.js und über nebenläufige Programmierung
- Buecher/01 Bücher über Linux-HA sowie über PHP-Webprogrammierung
- Buecher/12 Bücher über HTML-5-Apps sowie Computer Vision mit Python
- Buecher/11 Bücher über Statistik sowie über C++-Metaprogrammierung
- Buecher/10 Bücher zu PHP-Webbots sowie zur Emacs-Programmierung
Insecurity Bulletin
Im Insecurity Bulletin widmet sich Mark Vogelsberger aktuellen Sicherheitslücken sowie Hintergründen und Security-Grundlagen. mehr...





