Galileo Computing < openbook > Galileo Computing - Professionelle Bücher. Auch für Einsteiger.
Professionelle Bücher. Auch für Einsteiger.

Inhaltsverzeichnis
Vorwort
Leitfaden für die Nutzung des Buchs und der beiliegenden DVDs
Das Terminal – sinnvoll oder überflüssig?
1 Die Wurzeln von Ubuntu
2 Was ist Ubuntu?
3 Die Versionen im Detail
4 Daten sichern, migrieren und synchronisieren
5 Die Installation
6 Erste Schritte
7 Kubuntu
8 Programme und Pakete installieren
9 Internet und E-Mail
10 Office
11 Grafik und Bildbearbeitung
12 Multimedia
13 Programmierung und Design
14 Software- und Paketverwaltung
15 Architektur
16 Backup und Sicherheit
17 Desktop-Virtualisierung
18 Serverinstallation
19 Administration und Monitoring
20 Netzwerke
21 LAN-Server – im Firmennetzwerk oder als Multimediazentrale
22 Der Server im Internet
23 Servervirtualisierung mit KVM
24 Servervirtualisierung mit Xen
25 Hilfe
26 Befehlsreferenz
A Mark Shuttleworth
Stichwort

Download:
- ZIP, ca. 50,6 MB
Buch bestellen
Ihre Meinung?

Spacer
 <<   zurück
Ubuntu GNU/Linux von Marcus Fischer
Das umfassende Handbuch, aktuell zu Ubuntu 11.04 »Natty Narwhal«
Buch: Ubuntu GNU/Linux

Ubuntu GNU/Linux
geb., mit 2 DVDs
1118 S., 39,90 Euro
Galileo Computing
ISBN 978-3-8362-1765-1
Pfeil 23 Servervirtualisierung mit KVM
  Pfeil 23.1 Allgemeines und Funktionsweise
  Pfeil 23.2 Ubuntu und KVM
    Pfeil 23.2.1 Voraussetzungen
    Pfeil 23.2.2 Installation
    Pfeil 23.2.3 Mögliche Probleme
    Pfeil 23.2.4 Installation von Gästen auf der Kommandozeile
  Pfeil 23.3 Fortgeschrittene Netzwerkeinrichtung
    Pfeil 23.3.1 Terminologie
    Pfeil 23.3.2 Bridging
    Pfeil 23.3.3 Mehrere virtuelle Netzwerke
  Pfeil 23.4 Quellen kompilieren


Galileo Computing - Zum Seitenanfang

23.3 Fortgeschrittene Netzwerkeinrichtung  Zur nächsten ÜberschriftZur vorigen Überschrift

KVM als Standardeinstellung erlaubt es Zugriffen von außen nicht, sich mit Ihren virtuellen Maschinen zu verbinden. Andere komplexere Installationswege werden im Folgenden beschrieben. Wenn das Folgende Ihren Erfordernissen nicht entspricht, sollte die bestehende QEMU-Dokumentation für KVM ebenso relevant sein.


Galileo Computing - Zum Seitenanfang

23.3.1 Terminologie  Zur nächsten ÜberschriftZur vorigen Überschrift

Ein VLAN ist ein virtuelles Netzwerksegment. Sie können es als einen virtuellen Switch abbilden. Sie verbinden virtuelle Netzwerkkarten mit VLANs, verkabeln VLANs miteinander und erstellen letztlich eine Switch-Struktur, die einer realen Installationen ziemlich nahe kommt.

Wenn Sie keine Netzwerkoptionen spezifizieren, konstruiert KVM standardmäßig eine Netzwerkkarte, die mit einem nichtöffentlichen VLAN verbunden ist. Auf diesem VLAN wird auch ein einzelner Host emuliert, der als DHCP-Server und standardmäßiger Router fungiert. Sämtliche Verbindungen, die vom Gast initiiert worden sind, werden durch den nichtöffentlichen Stack von KVM gesteuert und erscheinen auf dem Host-Rechner als Anfragen von Sockets, die von dem KVM-Prozess auf 127.0.0.1 kommen.

Zwei Adressen

Die Netzwerke des Benutzer-Modus von KVM enthalten üblicherweise nur zwei Adressen: 10.0.2.2 (virtueller Host) und 10.0.2.15 (Gast). In der Sprache von KVM dargestellt, sieht das so aus:

kvm -net nic -net user ...

Mit anderen Worten: Fügen Sie eine Netzwerkkarte hinzu, und verbinden Sie sie mit vlan 1. Fügen Sie auch einen virtuellen Host hinzu, der mit vlan 1 verbunden ist. Der virtuelle Host verbindet das VLAN über NAT mit dem physischen Host. Da das Netzwerk im Benutzermodus über das Slirp-Protokoll (Slirp is eine Software, die über einen Shell-Zugang eine Verbindung zum Internet emuliert) implementiert wird, wird UDP nicht unterstützt. Sollten Sie UDP-Pakete zum Host oder nach außen transportieren müssen, müssen Sie eine andere Technik einsetzen.

Standard

Bei der Installation der Gäste haben wir bisher keinen großen Aufwand betrieben und die Standardeinstellungen bei der Netzwerkkonfiguration übernommen. Dies hat zur Folge, dass die Gäste per NAT die Einstellungen des Wirts übernehmen. Damit ist es selbstverständlich nicht möglich, von außerhalb auf die virtuellen Maschinen zuzugreifen, da der ankommende Datenverkehr nicht zu einem bestimmten Gast gelenkt werden kann. Um dies zu ermöglichen, ist das sogenannte Bridging notwendig, das den Datenverkehr quasi mit Hilfe einer Brücke über den Wirt leitet.


Galileo Computing - Zum Seitenanfang

23.3.2 Bridging  Zur nächsten ÜberschriftZur vorigen Überschrift

Um das Bridging einzurichten, sind zwei Schritte notwendig. Als Erstes muss die Brücke auf dem Wirt erstellt werden, bevor Sie dem Gast mitteilen, dass er diese Brücke für sein Netzwerk nutzen soll. Die Brücke ist eine virtuelle Schnittstelle, die von außerhalb wie eine reale physikalische Schnittstelle angesprochen werden kann. Dies hat bequemerweise zur Folge, dass sie wie normale Hosts dem restlichen Netzwerk zur Verfügung steht.

Eine Brücke auf dem Wirt erstellen

Die Brücke erstellen Sie wie jede andere Netzwerkschnittstelle, indem Sie die Datei /etc/network/interfaces editieren. Ersetzen Sie die bestehenden Angaben, oder kommentieren Sie sie aus. Fügen Sie folgende Angaben hinzu:

auto lo
iface lo inet loopback
auto br0
iface br0 inet static
        address 192.168.0.10
        network 192.168.0.0
        netmask 255.255.255.0
        broadcast 192.168.0.255
        gateway 192.168.0.1
        bridge_ports eth0
        bridge_fd 9
        bridge_hello 2
        bridge_maxage 12
        bridge_stp off

Starten Sie nun das Netzwerk neu, und Ihre virtuellen Maschinen werden während der Laufzeit als ganz normale Hosts in Ihrem Netzwerk erscheinen:

sudo /etc/init.d/networking restart

Den Gast einrichten

Wir müssen an dieser Stelle selbstverständlich der virtuellen Maschine noch mitteilen, welche Schnittstelle zum Netzwerk sie ab sofort zu verwenden hat.

Bei einer Neuinstallation einer virtuellen Maschine gelingt dies, indem Sie beispielsweise die Option ebenfalls angeben:

virt-install --name=hardyjeos --ram=256 --file-size=2 \
--bridge=br0 --vnc --connect=qemu:///system --accelerate \
-c hardy-jeos-i386.iso

Alternativ können Sie selbstverständlich auch bei der grafischen Abfrage des Virtual Machine Managers das richtige Netzwerk auswählen.

Um die geänderten Netzwerkbedingungen einer bereits vorhandenen virtuellen Maschine mitzuteilen, genügt es, die XML-Datei im Ordner /etc/libvirt/qemu/ zu bearbeiten. Achten Sie darauf, dass Sie die MAC-Adresse beim Editieren nicht ändern.

    <interface type='network'>
      <mac address='00:11:22:33:44:55'/>
      <source network='default'/>
    </interface>

Eine Änderung in dieser Datei könnte folgendermaßen aussehen:

    <interface type='bridge'>
      <mac address='00:11:22:33:44:55'/>
      <source bridge='br0'/>
    </interface>

Damit diese Konfiguration übernommen werden kann, müssen Sie alle virtuellen Maschinen herunterfahren und libvirtd neu starten:

sudo /etc/init.d/libvirtd restart

Galileo Computing - Zum Seitenanfang

23.3.3 Mehrere virtuelle Netzwerke  topZur vorigen Überschrift

Wenn Sie eine virtuelle Maschine mit mehreren Netzwerken aufbauen möchten, müssen Sie mehrere VLANs erstellen, an die die Netzwerke angeschlossen werden können. Um mehr als ein VLAN zu erstellen, ordnen Sie jedem VLAN eine ID zu. Der folgende Befehl beispielsweise erstellt zwei Netzwerke und zwei VLANs:

kvm -net nic,vlan=0 -net socket,listen=:8010,vlan=0 -net nic,vlan=1 \
-net user,vlan=1 ...

Socket-Connections

Mit den Socket-Connections können Sie Ihre virtuellen Maschinen mit nichtöffentlichen VLANs verbinden. Die Verwendung von TCP-Sockets ist hier sicher die einfachste Methode. Ein VLAN stellt den Empfänger dar:

kvm -net nic -net socket,listen=:8010 ...

Der andere hingegen ist der Initiator:

kvm -net nic -net socket,connect=127.0.0.1:8010 ...

Sollten Sie keine Adresse festlegen, wird der Empfänger alle verbundenen Interfaces empfangen. Um nur einen localhost zu empfangen, legen Sie bitte Folgendes fest:

kvm -net nic -net socket,listen=127.0.0.1:8010 ...

Selbstverständlich können auch virtuelle LANs, die auf anderen Hosts laufen, miteinander verbunden werden.

Möchten Sie mehrere Initiatoren mit einem einzelnen Empfänger verbinden, sollten Sie einen Multicast-Socket verwenden:

kvm -net nic -net socket,mcast=230.0.0.1:1234 ...
kvm -net nic -net socket,mcast=230.0.0.1:1234 ...
kvm -net nic -net socket,mcast=230.0.0.1:1234 ...

Damit werden drei VLANs am selben Punkt miteinander verbunden. Frames, die an eines der VLANs gesendet werden, werden von allen drei VLANs empfangen. Es können aber auch mehrere VLANs mit einem einzelnen VDE (Virtual Distributed Ethernet, unterstützt den Aufbau virtueller Netzwerkverbindungen) verbunden werden.

VLANs mit dem Host verbinden

Nachdem Sie sich nun mit einer Vielzahl von virtuellen Strukturen verbinden können, möchte ich Ihnen im Folgenden zeigen, wie Sie VLANs mit bestehenden, echten Netzwerken verbinden können.

Fast alle Verbindungen von virtuellen zu physischen Maschinen werden durch ein Tap-Device erzeugt. Tap-Devices sind regelmäßige Schnittstellen, ähnlich eth0, eth1, lo etc. Ein Ende des Taps wird mit dem VLAN verbunden, das andere mit normalen Netzwerkprogrammen konfiguriert(ifconfig, route etc.):

kvm -net nic -net tap ...

Dieser Befehl hat ein neues einzelnes Tap-ethernet-device erstellt (tap0, tap1 etc). Das Skript /etc/qemu-ifup wird dafür genutzt, das neue Netzwerkgerät einzurichten. Die Standardeinstellung in /etc/qemu-ifup ordnet dem neuen Interface die IP-Adresse 172.20.0.1 zu. Mit Hilfe von ifname=IF können Sie dem Ganzen einen Netzwerknamen zuweisen, und mit script=SCRIPT starten Sie ein anderes Skript:

kvm -net nic -net tap,ifname=qtap0,script=/var/vm/vm0.ifup

Taps lösen das Netzwerkproblem für eine einzelne virtuelle Maschine. Allerdings benötigt jeder Gast sein eigenes Tap-Device. Wie Sie sich vorstellen können, führt das zu einigen Verlangsamungen im System.


Tipp 279: Virtuelle VMware-Maschinen unter KVM nutzen

KVM ist in der Lage, virtuelle Maschinen zu betreiben, die von VMware erstellt wurden. Sie können somit Ihre aufwendig erzeugten Snapshots von VMware-Gästen weiterverwenden. Die einzige Einschränkung besteht darin, dass diese VMware-Gäste in einer einzigen Datei abgespeichert sind. Die Möglichkeit einer direkten Nutzung von gesplitteten Gästen, die VMware ebenfalls erstellen kann, unterstützt KVM (noch) nicht.

Damit der Virtual Machine Manager die .vmx-Dateien von VMware lesen kann, müssen sie in eine XML-Datei umgewandelt werden, mit der libvirt umgehen kann. Für diesen Zweck gibt es ein kleines Werkzeug unter http://people.ubuntu.com/~soren/vmware2libvirt/.

Rufen Sie dieses Skript folgendermaßen auf:

vmware2libvirt -f ./file.vmx > file.xml
virsh -c qemu:///system define file.xml

Das erste Kommando konvertiert die VMware-Datei file.vmx in eine mit libvirt kompatible Datei file.xml. Das zweite Kommando importiert die neu erstellte XML-Datei in libvirt. Die importierten XML-Dateien finden Sie im Ordner /etc/libvirt/qemu. Bitte behalten Sie im Auge, dass Sie die Original-.vmx-Datei bei dieser Aktion verändern und Sie diese danach nicht mehr in VMware verwenden können. Falls Sie das dennoch wünschen, verwenden Sie ein Backup dieser Datei.




Ihr Kommentar

Wie hat Ihnen das <openbook> gefallen? Wir freuen uns immer über Ihre freundlichen und kritischen Rückmeldungen.






 <<   zurück
  
  Zum Katalog
Zum Katalog: Ubuntu GNU/Linux

Ubuntu GNU/Linux
Jetzt bestellen


 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 Buchempfehlungen
Zum Katalog: Linux Server






 Linux Server


Zum Katalog: Linux-Server einrichten und administrieren






 Linux-Server
 einrichten und
 administrieren


Zum Katalog: Linux Hochverfügbarkeit






 Linux Hoch-
 verfügbarkeit


Zum Katalog: Linux






 Linux


Zum Katalog: Debian






 Debian


Zum Katalog: Android 3






 Android 3


Zum Katalog: GIMP






 GIMP


Zum Katalog: Webserver einrichten und administrieren






 Webserver einrichten
 und administrieren


 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
InfoInfo




Copyright © Galileo Press 2011
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


[Galileo Computing]

Galileo Press, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, info@galileo-press.de