Crear una interfaz puente para KVM desde nmcli en Fedora 34
En mi equipo personal ahora mismo estoy utilizando Fedora y Virtual Machine Manager para gestionar mis máquinas virtuales sobre KVM. Una de las cosas que más hecho de menos de VirtualBox es la posibilidad de utilizar una interfaz puente para poder asignar una IP de mi red local a una de mis máquinas virtuales. En esta publicación veremos cómo hacerlo.
Doy por entendido que tienes un conocimiento básico de lo qué es una interfaz puente y que conoces el comando nmcli. En caso contrario, busca un poco por Internet e infórmate de si realmente necesitas crear este tipo de interfaz. 😜
Crear la interfaz puente
El primer paso es crear la interfaz puente mediante el siguiente comando:
$ sudo nmcli con add ifname br0 type bridge con-name br0
Conexión «br0» (9a659c12-715f-4186-add1-fa92a1b7fd25) añadida con éxito.
Ahora tenemos que crear la interfaz esclava que vincularemos con nuestro puente
$ sudo nmcli con add type bridge-slave ifname enp8s0 master br0
Conexión «bridge-slave-enp8s0» (5009e0de-0e28-448c-b1b4-91dd4053232e) añadida con éxito.
En mi caso voy a desactivar spanning tree (STP) porque no me hace falta.
$ sudo nmcli con modify br0 bridge.stp no
Verificamos que todo está configurado como queremos.
$ nmcli -f bridge con show br0
bridge.mac-address: --
bridge.stp: no
bridge.priority: 32768
bridge.forward-delay: 15
bridge.hello-time: 2
bridge.max-age: 20
bridge.ageing-time: 300
bridge.group-forward-mask: 0
bridge.multicast-snooping: sí
bridge.vlan-filtering: no
bridge.vlan-default-pvid: 1
bridge.vlans:
Como yo tengo activa la interfaz por defecto que genera Fedora, tengo que desactivarla para poder utilizar la nueva interfaz puente.
$ sudo nmcli con down "Conexión cableada 1"
$ sudo nmcli con up br0
$ nmcli con show
NAME UUID TYPE DEVICE
br0 9a659c12-715f-4186-add1-fa92a1b7fd25 bridge br0
virbr0 b994e990-6364-4fa8-afaf-3016881b4cfb bridge virbr0
enp8s0 5009e0de-0e28-448c-b1b4-91dd4053232e ethernet enp8s0
Crear la interfaz en VMM
Hay que crear el siguiente fichero XML que nos permitirá definir la interfaz puente en VMM. En mi caso lo he ubicado en la carpeta /tmp
y lo he llamado br0.xml
<network>
<name>br0</name>
<forward mode="bridge"/>
<bridge name="br0" />
</network>
Ahora ejecutamos el siguiente comando para importar el fichero XML y que se genere la interfaz puente.
$ sudo virsh net-define /tmp/br0.xml
$ sudo virsh net-start br0
La red br0 se ha iniciado
$ sudo virsh net-autostart br0
La red br0 ha sido marcada para iniciarse automáticamente
$ sudo virsh net-list --all
Nombre Estado Inicio automático Persistente
----------------------------------------------------
br0 activo si si
nat activo si si
Si abrimos la consola de VMM ya podemos ver que se ha creado la nueva interfaz y está lista para ser usada con nuestras máquinas virtuales.