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

Inhaltsverzeichnis
Vorwort
Leitfaden
1 Die Wurzeln von Ubuntu
2 Was ist Ubuntu?
3 Die Versionen im Detail
4 Die Möglichkeiten der beiliegenden DVDs
5 Daten aus Windows sichern
6 Die Installation
7 Erste Schritte
8 Kubuntu und Xubuntu
9 Ubuntu mobil
10 Programme und Pakete installieren
11 Internet und E-Mail
12 Office
13 Grafik und Bildbearbeitung
14 Multimedia
15 Das Terminal
16 Programmierung und Design
17 Einrichtung der grundlegenden Hardware
18 Software- und Paketverwaltung
19 Architektur
20 Backup und Sicherheit
21 Desktop-Virtualisierung
22 Server-Installation
23 Sicherheit und Monitoring
24 Netzwerke
25 Server im Heim- und Firmennetzwerk
26 Der Server im Internet
27 Server-Virtualisierung mit KVM
28 Server-Virtualisierung mit Xen
29 Hilfe
30 Befehlsreferenz
Mark Shuttleworth
Glossar
Stichwort

Download:
- ZIP, ca. 34,8 MB
Buch bestellen
Ihre Meinung?

Spacer
<< zurück
Ubuntu GNU/Linux von Marcus Fischer
Das umfassende Handbuch, aktuell zu Ubuntu 10.04 LTS "Lucid Lynx"
Buch: Ubuntu GNU/Linux

Ubuntu GNU/Linux
5., aktualisierte und erweiterte Auflage, gebunden, mit 2 DVDs
1.104 S., 39,90 Euro
Galileo Computing
ISBN 978-3-8362-1654-8
Pfeil 27 Server-Virtualisierung mit KVM
Pfeil 27.1 Allgemeines und Funktionsweise
Pfeil 27.2 Ubuntu und KVM
Pfeil 27.2.1 Voraussetzungen
Pfeil 27.2.2 Installation
Pfeil 27.2.3 Mögliche Probleme
Pfeil 27.2.4 Installation von Gästen auf der Kommandozeile
Pfeil 27.3 Fortgeschrittene Netzwerkeinrichtung
Pfeil 27.3.1 Bridging
Pfeil 27.3.2 Mehrere virtuelle Netzwerke
Pfeil 27.4 Quellen kompilieren


Galileo Computing - Zum Seitenanfang

27.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.

Terminologie

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

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 Netzwerkarte 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 Verbindungen 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 mithilfe einer Brücke über den Wirt leitet.


Galileo Computing - Zum Seitenanfang

27.3.1 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 man dem Gast mitteilt, 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 diese 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 Netzwerk-Bedingungen 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

27.3.2 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 ...

während der andere der Initiator ist:

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 einen 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. Mithilfe von ifname=IF können Sie dem Ganzen einen Netzwerknamen zuordnen, 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.


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 erstellten 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 für 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 originale .vmx-Datei bei dieser Aktion verändern und Sie diese danach nicht mehr in VMware verwenden können. Falls Sie dies 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






 Linux


Zum Katalog: OpenVPN






 OpenVPN


Zum Katalog: LPIC-1






 LPIC-1


Zum Katalog: Debian GNU/Linux






 Debian GNU/Linux


Zum Katalog: Shell-Programmierung






 Shell-Programmierung


Zum Katalog: Webserver einrichten und administrieren






 Webserver einrichten
 und administrieren


Zum Katalog: VirtualBox






 VirtualBox


Zum Katalog: IT-Handbuch für Fachinformatiker






 IT-Handbuch für
 Fachinformatiker


 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
InfoInfo




Copyright © Galileo Press 2010
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