Estoy intentando agregar una máquina virtual a una VLAN que creé a través de un puente. Tengo un servidor con 4 NIC. 2 (eno1 y eno2) son NIC de administración de 1 Gig y los otros 2 (enp1s0f0 y enp1s0f1) son NIC de reenvío de 10 Gig. Aquí está mi configuración de red a través de .yaml en 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 ]
Puedo verlos todos cuando hago un 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
Cuando inicio sesión en este QEMU/KVM a través de virt-manager, solo obtengo la opción virbr0 y los otros puentes no aparecen como opciones para agregarlos. ¿Hay alguna manera de hacer esto virsh
o simplemente lo estoy haciendo mal en virt-manager?
También intenté agregarlo a través de virt-install
pero no apareció en la VLAN correcta:
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'
Supongo que mi pregunta es ¿cómo hago para que los otros puentes aparezcan como opciones para una máquina virtual?
Respuesta1
libvirt (y por lo tanto virt-manager, virt-install, ...) no explora/conoce los puentes reales en el sistema. Ya ha definido sus VLAN y puentes a través de netplan, lo cual es excelente y el paso número 1 correcto.
De forma predeterminada, solo existe la default
red que es un puente local basado en NAT; es necesario definir una red. En eso, usted controla qué puentes, modos de reenvío, etc. se utilizan, y si se supone que libvirt debe generar, por ejemplo, dhcp en él (como lo haría en el puente predeterminado local).
Existe el gran recurso deejemplos de planes de redque se extienden todavía, ya que aún se encuentran casos indocumentados. Pero su caso es bastante común y allí también tiene un fragmento mínimo de ese xml de red libvirt como:
<network>
<name>vlan66</name>
<bridge name='br66'/>
<forward mode="bridge"/>
</network>
Usando lo anterior y adaptándolo a sus necesidades, podrá virsh net-define <xmlfilename>
hacer que libvirt conozca la red. Luego podrá verlos virsh net-list
en virt-manager y las otras herramientas.