
Estoy ejecutando una máquina virtual en un host conectado a mi LAN. El Host aparece en mi red local (al igual que los otros Hosts conectados por Wifi) pero el VM Guest no. Inicialmente, esto se debía a que la máquina virtual invitada tenía conexión NAT desde el host. El VM Guest pudo acceder a Internet y a otros servidores de mi LAN, pero otros servidores no pudieron acceder a él. Esto tiene sentido. Lo que quiero que suceda es que la máquina virtual invitada aparezca en la red como si estuviera conectada directamente a ella como el host. Por mi vida no puedo entender lo que me estoy perdiendo.
Tengo una configuración básica de red doméstica. Se parece a la siguiente imagen:
- Enrutador/wifi Netgear Nighthawk
- Host Intel NUC cableado al enrutador
- SO de servidor Ubuntu
- Virtualización KVM/QEMU
Inicialmente configuré la VM con la configuración NATed así (la red predeterminada es la red puenteada NATed):
Lo anterior funcionó muy bien, pero nuevamente, no pude acceder a las máquinas virtuales desde otros dispositivos en la LAN (porque las máquinas virtuales tenían NAT).
Luego intenté configurar una configuración enrutada para que cada VM obtuviera su propia IP y pudiera:
- llegar a internet
- ser accesible desde otros hosts en la LAN
Lo que estaba tratando de hacer era algo similar a esto:
Creé una nueva red virtual de la siguiente manera:
Sin embargo, con la configuración anterior, la VM no puede acceder a Internet y no es accesible desde otros hosts de la red. Es casi así si de alguna manera configuro las cosas en una DMZ detrás del Host.
Por todo lo que he leído, configurar la configuración Enrutada (a través de virbr3 como en la imagen de arriba) debería crear una Red Virtual en el Host que sea del tipo "Enrutada", lo que hará que el Host simplemente pase. Puedo ver en la tabla ARP del Host que conoce el VM Guest:
Lo que esperaría ver cuando inicie sesión en mi enrutador Netgear es que VM Guest aparezca como una conexión por cable, pero no aparece. Intenté ingresar al enrutador y agregar manualmente una dirección IP reservada para la IP del VM Guest (y la dirección MAC del VM Guest) pensando que las solicitudes de red para esa IP se enrutarían adecuadamente, pero no es así. Es casi como si el Host conociera la VM pero no anunciara las rutas correctamente y el enrutador no conociera la VM Invitada, de modo que cuando intento hacer ping a la IP del Invitado desde un Host diferente en la LAN, el enrutador no lo hace. ¿No sabes dónde enviarlo? ¿Alguna sugerencia sobre cómo remediar esto?
EDITAR
Me di cuenta de que faltaba un paso: agregar una ruta estática en mi enrutador NetGear para que supiera dónde reenviar las solicitudes a las direcciones IP asociadas con las máquinas virtuales (a través de la puerta de enlace eth0). Ahora puedo hacer ping a las máquinas virtuales desde otros hosts de la red, lo que supone un gran paso adelante. El único problema pendiente es que ahora las máquinas virtuales no pueden acceder a Internet (es decir, google.com).
EDITAR 2
El resultado de traceroute google.com
la máquina virtual invitada es el siguiente:
192.168.100.1 es la puerta de enlace local.
Creo que 192.168.1.1 es mi puerta de enlace inalámbrica. Estoy haciendo esta llamada porque aparece como la puerta de enlace predeterminada en el Host y en mi Mac, que también está conectada a la LAN.