Una vez que hemos instalado y configurado nuestro servicio de maquinas virtuales con KVM, nuestro host anfitrión habra creado una interfaz para proveer de IP’s a las maquinas virtuales. Esta interfaz debería de verse así.
[tusysadmin@lab ~]$ ifconfig virbr0
virbr0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
inet 192.168.124.1 netmask 255.255.255.0 broadcast 192.168.124.255
ether 52:54:00:f8:5e:07 txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
[tusysadmin@lab ~]$ sudo nmcli con show id virbr0
connection.id: virbr0
connection.uuid: c18c5902-35cf-4da8-8360-864b6b09e922
connection.stable-id: --
connection.type: bridge
connection.interface-name: virbr0
----
IP4.ADDRESS[1]: 192.168.124.1/24
IP4.GATEWAY: --
IP4.ROUTE[1]: dst = 192.168.124.0/24, nh = 0.0.0.0, mt = 0
Cuando una maquina virtual sea iniciada tomará una IP de la subred 192.168.124.1/24. La maquina virtual tendrá acceso a Internet a través del anfitrión pero solo es visible para este; si por ejemplo, dentro de una de las maquinas virtuales hubiera un servicio necesario para otros equipos, este no seria visible.
Para solucionar este problema existe la interfaz puente. Con ella la maquina virtual pertenecerá a la misma red que tenga el anfitrión. Comenzamos por instalar el paquete necesario para que funcione.
[tusysadmin@lab ~]$ sudo dnf install bridge-utils
Última comprobación de caducidad de metadatos hecha hace 1:15:12, el jue 08 feb 2024 20:18:00.
Dependencias resueltas.
================================================================================================================================================
Paquete Arquitectura Versión Repositorio Tam.
================================================================================================================================================
Instalando:
bridge-utils x86_64 1.7.1-6.fc38 fedora 34 k
Resumen de la transacción
================================================================================================================================================
Instalar 1 Paquete
Configuración
En este caso es necesario tener una interfaz física que nos provea la configuración para crear el «puente». Usaremos la interfaz eno1.
[tusysadmin@lab ~]$ sudo nmcli con show
NAME UUID TYPE DEVICE
cableada 8531cd56-9e22-3a04-9f99-44ca92be00c4 ethernet eno1
lo 0486ec18-04a3-4141-ae25-01de6f20809b loopback lo
SSID 51229f3b-5809-439e-a328-5b641b1a80ee wifi wlp0s20f0u2i2
Como la interfaz br0 no existe, se ejecuta el siguiente comando para crearla y se listan nuevamente las interfaces.
[tusysadmin@lab ~]$ sudo nmcli con add ifname br0 type bridge con-name br0
Conexión «br0» (4f60f6ee-6003-4fa6-88e1-856af2446c8e) añadida con éxito.
[tusysadmin@lab ~]$ nmcli con show
NAME UUID TYPE DEVICE
br0 4f60f6ee-6003-4fa6-88e1-856af2446c8e bridge br0
cableada 8531cd56-9e22-3a04-9f99-44ca92be00c4 ethernet eno1
lo 0486ec18-04a3-4141-ae25-01de6f20809b loopback lo
SSID 51229f3b-5809-439e-a328-5b641b1a80ee wifi wlp0s20f0u2i2
[tusysadmin@lab ~]$
Ahora se agrega la interfaz eno1 a la interfaz br0.
[tusysadmin@lab ~]$ sudo nmcli con add type bridge-slave ifname eno1 master br0
Conexión «bridge-slave-eno1» (7e3eb64d-faf0-4e9f-8620-4f24f286b102) añadida con éxito.
[tusysadmin@lab ~]$ nmcli con show
NAME UUID TYPE DEVICE
br0 4f60f6ee-6003-4fa6-88e1-856af2446c8e bridge br0
cableada 8531cd56-9e22-3a04-9f99-44ca92be00c4 ethernet eno1
lo 0486ec18-04a3-4141-ae25-01de6f20809b loopback lo
SSID 51229f3b-5809-439e-a328-5b641b1a80ee wifi wlp0s20f0u2i2
bridge-slave-eno1 7e3eb64d-faf0-4e9f-8620-4f24f286b102 ethernet --
Para que funcione se debe dar de baja la interfaz cableada y dar de alta la interfaz puente.
[tusysadmin@lab ~]$ sudo nmcli con down cableada
La conexión «cableada» se desactivó correctamente (ruta activa D-Bus: /org/freedesktop/NetworkManager/ActiveConnection/3)
[tusysadmin@lab ~]$ sudo nmcli con up br0
La conexión se ha activado correctamente (master waiting for slaves) (ruta activa D-Bus: /org/freedesktop/NetworkManager/ActiveConnection/7)
Se valida, debe reiniciarse el equipo para verificar que todo funcione adecuadamente.
[tusysadmin@lab ~]$ sudo nmcli con show
NAME UUID TYPE DEVICE
br0 39c7beb8-6b2f-4094-b732-4484cbadef11 bridge br0
lo f0bf6f96-1ffa-4770-a620-0fa0a6e78575 loopback lo
SSID 51229f3b-5809-439e-a328-5b641b1a80ee wifi wlp0s20f0u2i2
bridge-slave-eno1 5ec11066-d8fb-42c9-a949-88c2b0c10820 ethernet eno1
cableada 534d9e32-6edf-4e00-9e53-962abd1bec30 ethernet --
[tusysadmin@lab ~]$ ip a
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: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel master br0 state UP group default qlen 1000
link/ether 10:62:e5:19:83:60 brd ff:ff:ff:ff:ff:ff
altname enp0s31f6
3: wlp0s20f0u2i2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether e0:e1:a9:3a:60:e4 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.20/24 brd 192.168.1.255 scope global dynamic noprefixroute wlp0s20f0u2i2
valid_lft 85579sec preferred_lft 85579sec
inet6 fe80::b145:75ae:fc15:38f4/64 scope link noprefixroute
valid_lft forever preferred_lft forever
4: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 10:62:e5:19:83:60 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.21/24 brd 192.168.1.255 scope global dynamic noprefixroute br0
valid_lft 85580sec preferred_lft 85580sec
inet6 fe80::38a6:e06:84ee:34a7/64 scope link noprefixroute
valid_lft forever preferred_lft forever
Todo ha ido bien; en este momento la dirección IP es dinámica y la interfaz br0 ya puede ser usada como interfaz puente para la maquinas virtuales.
[tusysadmin@lab ~]$ sudo brctl show
bridge name bridge id STP enabled interfaces
br0 8000.1062e5198360 no eno1
[tusysadmin@lab ~]$