Creación de Dispositivo Puente para VirtManager KVM-QEmu en Ubuntu 24.04 Desktop
· 10min · virt
Introducción
Uno de los problemas que tenemos cuando creamos máquinas virtuales con Virt Manager KVM y Qemu es que por defecto no nos permite colocar un interfaz de red en la máquina virtual para que dicha máquina pueda tener una configuración de red en Puente y que la tarjeta de red de la máquina pueda estar en la misma red que el servidor host.
En esta entrada realizaremos la creación de este dispositivo puente para que las máquinas virtuales puedan configurarse a nivel de red de esta manera.
Primeros pasos
Lo primero que deberíamos hacer sería instalar el paquete bridge-utils que nos permitirá crear el dispositivo puente.
sudo apt update
sudo apt install bridge-utils
Para después comprobar la configuración de red de la máquina donde hemos instalado el Virt Manager
ip a s
Esto debería sacarnos una salida similar a esta:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host noprefixroute
valid_lft forever preferred_lft forever
2: enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 52:54:00:1f:39:de brd ff:ff:ff:ff:ff:ff
inet 192.168.122.119/24 brd 192.168.122.255 scope global dynamic noprefixroute enp1s0
valid_lft 2982sec preferred_lft 2982sec
inet6 fe80::5054:ff:fe1f:39de/64 scope link
valid_lft forever preferred_lft forever
Como vemos nos daría dos interfaces de red el típico lo de loopback (el 127.0.0.1) y la tarjeta de red normal en este caso se llamaría enp1s0 y tendría la dirección ip asignada de 192.168.122.119
Creando el interfaz puente
Para crear el dispositivo puente en el cado de Ubuntu 24.04 Desktop debemos usar el cli de NetworkManager llamado nmcli.
Por ejemplo si queremos que nos saque la configuración de los dispositivos, ejecutaríamos:
nmcli device status
Que podría darnos una salida similar a la siguiente:
DEVICE TYPE STATE CONNECTION
enp1s0 ethernet conectado Conexión cableada
Usando el nmcli el CLI de NetworkManager creamos el dispositivo
sudo nmcli connection add type bridge con-name br0 ifname br0
Posible salida:
Conexión «br0» (c92f961b-91cd-497f-9c0e-515fd97c1914) añadida con éxito.
Asociamos el Dispositivo de red físico enp1s0 como esclavo del bridge br0
sudo nmcli connection add type bridge-slave con-name enp1s0-slave ifname enp1s0 master br0
Posible salida:
Conexión «enp1s0-slave» (826865ba-2516-415b-baf8-ce6ba6b703ac) añadida con éxito.
Asignamos una ip estática 192.168.122.70 al nuevo interfaz br0:
sudo nmcli connection modify br0 ipv4.method manual ipv4.addresses 192.168.122.70/24 ipv4.gateway 192.168.122.1 ipv4.dns "8.8.8.8 8.8.4.4"
Activamos el puente
sudo nmcli connection up br0
Posible salida:
La conexión se ha activado correctamente (master waiting for slaves) (ruta activa D-Bus: /org/freedesktop/NetworkManager/ActiveConnection/9)
Damos de baja el interfaz físico:
sudo nmcli connection down "Conexión cableada"
Posible salida:
La conexión «Conexión cableada» se desactivó correctamente (ruta activa D-Bus: /org/freedesktop/NetworkManager/ActiveConnection/13)
Verificando la conexión
Hacemos ping al gateway
ping 192.168.122.1
Hacemos ping a google
ping google.es
Configuración de la Máquina Virtual
Como vemos en el apartado de la Tarjeta de Red (NIC) debemos configurar el dispositivo puente br0 y el modelo de dispositivo VirtIO