libvirtd - VPS dazu bringen, die vorhandene Bridge zu verwenden

libvirtd - VPS dazu bringen, die vorhandene Bridge zu verwenden

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 showerhalte 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 ifconfigden 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 showdarunter 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.

verwandte Informationen