PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : KVM (libvirt) Host-Bridge im gerouteten TAP Mode



pixel
04.09.13, 16:32
Hallo zusammen,

ich habe mir gerade eine KVM-Testumgebung mit Ubuntu 12.04.03 LTS (64Bit) aufgebaut. Mit einer gleichen Umgebung arbeite ich auch produktiv. Der Prinzipielle Aufbau ist immer gleich. Ich habe zwei physische NIC's im System und ich erzeuge die beiden Bridges:

- intern
- extern

Wobei intern, wie der Name unschwer vermuten lässt, für die Anbindung ans LAN ist und extern ins Internet führt. Die NIC's füge ich diesen Bridges hinzu:

eth0 -> intern
eth1 -> extern

Bisher habe ich die Konfiguration der Bridges immer im OS selbst durchgeführt d.h. alles in der /etc/network/interfaces konfiguriert.

Nun möchte ich die Bridge jedoch einmal komplett mit libvirt konfigurieren was ja, wenn ich die Dokumentation richtig verstehe, funktionieren sollte.

Hierzu erstelle ich zunächst die /etc/network/interfaces:

# The loopback network interface
auto lo
iface lo inet loopback


# eth0 ohne IP für Bridge Variante 1
auto eth0
iface eth0 inet manual
up ifconfig eth0 0.0.0.0 promisc up

sowie die /etc/libvirt/qemu/networks/intern.xml:

<network>
<name>intern</name>
<uuid>77b879fa-4c04-0cb2-e58a-aef0673806a4</uuid>
<bridge name="intern" />
<forward mode="route" dev="eth0"/>
<mac address="52:54:00:8F:05:DB"/>
<ip address="192.168.100.1" netmask="255.255.255.0">
</ip>
</network>

Das Netz "intern" setzte ich via virsh auf autostart und reboote das System. Danach zeigt mir ein ifconfig folgende Schnittstellen:


root@vmhost01:~# ifconfig
eth0 Link encap:Ethernet Hardware Adresse 68:05:ca:0f:81:2c
inet6-Adresse: fe80::6a05:caff:fe0f:812c/64 Gültigkeitsbereich:Verbindung
UP BROADCAST RUNNING PROMISC MULTICAST MTU:1500 Metrik:1
RX packets:192 errors:0 dropped:0 overruns:0 frame:0
TX packets:228 errors:0 dropped:0 overruns:0 carrier:0
Kollisionen:0 Sendewarteschlangenlänge:1000
RX-Bytes:22033 (22.0 KB) TX-Bytes:24529 (24.5 KB)
Interrupt:18 Speicher:fcfc0000-fcfe0000

intern Link encap:Ethernet Hardware Adresse 52:54:00:8f:05:db
inet Adresse:192.168.100.1 Bcast:192.168.100.255 Maske:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metrik:1
RX packets:172 errors:0 dropped:0 overruns:0 frame:0
TX packets:104 errors:0 dropped:0 overruns:0 carrier:0
Kollisionen:0 Sendewarteschlangenlänge:0
RX-Bytes:14661 (14.6 KB) TX-Bytes:16033 (16.0 KB)

lo Link encap:Lokale Schleife
inet Adresse:127.0.0.1 Maske:255.0.0.0
inet6-Adresse: ::1/128 Gültigkeitsbereich:Maschine
UP LOOPBACK RUNNING MTU:65536 Metrik:1
RX packets:20 errors:0 dropped:0 overruns:0 frame:0
TX packets:20 errors:0 dropped:0 overruns:0 carrier:0
Kollisionen:0 Sendewarteschlangenlänge:0
RX-Bytes:1536 (1.5 KB) TX-Bytes:1536 (1.5 KB)
Was für mein dafürhalten ja passt. Wenn ich mir allerdings die Bridge anschaue sehe ich dass das Interface eth0 fehlt:

root@vmhost01:~# brctl show
bridge name bridge id STP enabled interfaces
intern 8000.5254008f05db yes intern-nic

Erst wenn ich ich dieses manuell hinzufüge:

root@vmhost01:~# brctl addif intern eth0
[...]
root@vmhost01:~# brctl show
bridge name bridge id STP enabled interfaces
intern 8000.5254008f05db yes eth0
intern-nic

erreiche ich den Host aus dem LAN aus unter der 192.168.100.1. Die Zeile:

<forward mode="route" dev="eth0"/>
aus der der libvirt-Konfiguration sollte dies doch erledigen, oder? Wo habe ich einen Fehler?

Viele Grüße
pixel