Ich versuche, eine VM zu einem VLAN hinzuzufügen, das ich über eine Bridge erstellt habe. Ich habe einen Server mit 4 Netzwerkkarten. 2 (eno1 und eno2) sind 1-Gigabit-Verwaltungs-Netzwerkkarten und die anderen 2 (enp1s0f0 und enp1s0f1) sind 10-Gigabit-Weiterleitungs-Netzwerkkarten. Hier ist meine Netzwerkkonfiguration über .yaml in Netplan:
network:
version: 2
renderer: networkd
ethernets:
eno1: {}
eno2: {}
enp1s0f0: {}
enp1s0f1: {}
bonds:
bond_10G:
interfaces:
- enp1s0f0
- enp1s0f1
parameters:
mode: balance-rr
bond_mgmt:
addresses:
- 192.168.21.228/24
gateway4: 192.168.21.1
interfaces:
- eno1
- eno2
nameservers:
addresses:
- 192.168.91.5
- 192.168.91.6
search:
- blah.net
parameters:
mode: active-backup
vlans:
vlan66:
dhcp4: no
dhcp6: no
accept-ra: no
id: 66
link: bond_10G
vlan69:
dhcp4: no
dhcp6: no
accept-ra: no
id: 69
link: bond_10G
vlan2232:
dhcp4: no
dhcp6: no
accept-ra: no
id: 2232
link: bond_10G
bridges:
br66:
dhcp4: no
dhcp6: no
interfaces: [ vlan66 ]
br69:
dhcp4: no
dhcp6: no
interfaces: [ vlan69 ]
br2232:
dhcp4: no
dhcp6: no
interfaces: [ vlan2232 ]
Ich kann sie alle sehen, wenn ich Folgendes mache brctl show
:
$ brctl show
bridge name bridge id STP enabled interfaces
br2232 8000.9e3e2f786260 no vlan2232
br66 8000.16545d040c3a no vlan66
br69 8000.92c5912a358b no vlan69
virbr0 8000.525400e3bdfa yes virbr0-nic
Wenn ich mich über virt-manager bei diesem QEMU/KVM anmelde, wird mir nur die Option virbr0 angezeigt und die anderen Bridges werden nicht als Optionen zum Hinzufügen aufgelistet. Gibt es eine Möglichkeit, dies über virt-manager zu tun, virsh
oder mache ich es im virt-manager einfach falsch?
Ich habe auch versucht, es über hinzuzufügen virt-install
, aber es ist nicht im richtigen VLAN gelandet:
sudo virt-install \
--name deb9-vm \
--ram 2048 \
--vcpus 2 \
--disk path=/var/lib/libvirt/images/deb9-vm.qcow2,size=20 \
--os-type linux \
--os-variant debian9 \
--network bridge=br66 \
--graphics none \
--console pty,target_type=serial \
--location 'http://ftp.debian.org/debian/dists/stretch/main/installer-amd64/' \
--extra-args 'console=ttyS0,115200n8 serial'
Ich schätze, meine Frage ist, wie ich es schaffe, dass die anderen Bridges als Optionen für eine VM angezeigt werden?
Antwort1
libvirt (und damit virt-manager, virt-install, ...) prüft/kennt die tatsächlichen Brücken im System nicht. Sie haben Ihre VLANs und Brücken bereits über Netplan definiert, was großartig ist und der richtige Schritt Nr. 1.
Standardmäßig gibt es nur das default
Netzwerk, das eine NAT-basierte lokale Brücke ist. Sie müssen ein Netzwerk definieren. Darin steuern Sie, welche Brücken, Weiterleitungsmodi usw. verwendet werden - und ob libvirt z. B. DHCP darauf starten soll (wie es auf der lokalen Standardbrücke der Fall wäre).
Es gibt die große Ressource vonNetplan-Beispieledie erweitert werden, da bisher undokumentierte Fälle gefunden wurden. Aber Ihr Fall ist ziemlich häufig und darin ist auch ein minimaler Ausschnitt dieser libvirt-Netzwerk-XML enthalten, wie:
<network>
<name>vlan66</name>
<bridge name='br66'/>
<forward mode="bridge"/>
</network>
Wenn Sie das oben genannte verwenden und an Ihre Bedürfnisse anpassen, können Sie virsh net-define <xmlfilename>
libvirt über das Netzwerk informieren. Sie können sie dann virsh net-list
aber im virt-manager und den anderen Tools sehen.