Ich habe daran gearbeitet, KVM unter CentOS 6.4 zum Laufen zu bringen und bin auf ein Problem gestoßen. Nachdem ich mehrere Online-Dokumente über die Einrichtung einer Brücke für die Verbindung des VPS durchgesehen und versucht hatte, die erforderlichen Änderungen manuell vorzunehmen, stieß ich schließlich aufDieser Artikeldas eine automatische Möglichkeit zeigt, dies zu tun:
virsh iface-bridge eth1 br0
Wenn ich das jetzt mache, brctl show
erhalte ich Folgendes:
bridge name bridge id STP enabled interfaces
br0 8000.001b78bb915a yes eth1
Bisher sieht alles gut aus. In meiner Domänenkonfiguration habe ich die folgende Netzwerkstruktur:
<interface type='network'>
<mac address='52:54:00:a3:dd:2c'/>
<source network='br0'/>
<model type='virtio'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
</interface>
Dennoch erhalte ich beim Versuch, die Domäne zu starten, immer wieder die folgende Fehlermeldung:
error: Failed to start domain service-a-2
error: Network not found: no network with matching name 'br0'
Nach einigem weiteren Suchen habe ich festgestellt, dass ich die für den Hypervisor verfügbaren Netzwerke auflisten kann, indem ich Folgendes eingebe:
$ -> virsh net-list --all
Aber in meinem Fall ist es leer. Also fand ichDieser ArtikelDas zeigt, wie man die Verwendung einer vorhandenen Bridge einrichtet. Meine Konfiguration sieht also so aus:
<network>
<name>br0</name>
<forward mode="bridge"/>
<bridge name="br0" />
</network>
Ich habe es über zum Hypervisor hinzugefügt virsh net-define /tmp/br0.xml
. Dann habe ich das Netzwerk und meine Domäne gestartet, aber jetzt, wenn ich ifconfig
den Befehl ausgebe, wird mir ein vnet0-Eintrag angezeigt:
vnet0 Link encap:Ethernet HWaddr FE:54:00:A3:DD:2C
inet6 addr: fe80::fc54:ff:fea3:dd2c/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:500
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
Das ergibt keinen Sinn. Sollte die Domäne nicht die vorhandene br0-Brücke verwenden? Wird für jeden vom Hypervisor gestarteten VPS ein neuer vnetX-Tunnel(?) erstellt?
Antwort1
Das ist absolut sinnvoll. Was passiert, wenn Sie eine Bridge einrichten, ist ein Dummy-Bridge-Gerät, an das nichts angeschlossen ist ( brctl show
darunter werden keine Netzwerkkarten aufgelistet).
Wenn Sie die Bridge an eine physische Schnittstelle anschließen, wird sie als eine der Schnittstellen angezeigt, die an die Bridge angeschlossen sind und über die tatsächlich der echte Datenverkehr läuft, aber das ist nur eine Schnittstelle der Bridge. Wenn Sie eine VM starten, wird ein Tap-Gerät angezeigt, das auch an den Switch angeschlossen werden sollte, damit der Switch zwei Schnittstellen haben und den Datenverkehr zwischen den beiden verschieben kann. Stellen Sie sich die Bridge einfach als Netzwerk-Switch vor, an den die VM angeschlossen ist (der Tap ist dieses vnet0-Gerät) und an den auch die echte Netzwerkkarte angeschlossen ist. Weitere VMs können an diese Bridge angeschlossen werden, ihr gesamter Datenverkehr wird über die physische Netzwerkkarte, die Sie an die Bridge angeschlossen haben, an das Netzwerk weitergeleitet.