Permitir que los invitados KVM en la red virtual virsh accedan a la red interna real

Permitir que los invitados KVM en la red virtual virsh accedan a la red interna real

Tengo una red doméstica 192.168.1.0 detrás de un enrutador 192.168.1.1. En esta red hay un conjunto de hosts Linux y Windows existentes, la mayoría con conexiones Ethernet por cable. Estoy configurando un nuevo servidor que ejecuta un hipervisor KVM y 3 invitados Debian. El nuevo servidor utiliza wifi para la conectividad de red.

En el hipervisor, solía virshconfigurar una red virtual como esta:

<network>
  <name>virtual</name>
  <forward mode='route'/>
  <ip address='192.168.2.1' netmask='255.255.255.0'>
    <dhcp>
      <range start='192.168.2.2' end='192.168.2.255'/>
      <host mac='52:54:00:00:00:01' ip='192.168.2.2'/>
      <host mac='52:54:00:00:00:02' ip='192.168.2.3'/>
      <host mac='52:54:00:00:00:03' ip='192.168.2.4'/>
    </dhcp>
  </ip>
</network>

Luego, creé una ruta estática en mi enrutador desde 192.168.2.0/24 a la dirección IP del hipervisor 192.168.1.41.

Cuando creé los invitados de Debian, especifiqué el nombre de la red virtual y las direcciones MAC de la virshred virtual, así:

--network network=virtual,mac=52:54:00:00:00:01

Esto resulta /etc/network/interfacesasí en cada invitado:

iface eth0 inet static
   address 192.168.2.2
   netmask 255.255.255.0
   network 192.168.2.0
   broadcast 192.168.2.255
   gateway 192.168.2.1

Con esta configuración implementada, la mayoría de las cosas funcionan. Puedo:

  • Conéctese desde los hosts en 192.168.1.0 a ambas direcciones IP del hipervisor (.2.1 y .1.41)
  • Conéctese desde los anfitriones en 192.168.1.0 con cada huésped
  • Conéctese desde el hipervisor a cada huésped
  • Conéctese desde cada invitado al hipervisor (.2.1) y entre sí
  • Conéctate de cada huésped a la internet pública
  • Reenviar conexiones externas (Internet) desde el enrutador a invitados individuales

Sin embargo, yono puedoconectarse desde los invitados a cualquier host en la red 192.168.1.0. Por ejemplo, no puedo hacer ssh desde 192.168.2.2 a 192.168.1.31.

A traceroutemuestra algo como esto:

traceroute to 192.168.1.31 (192.168.1.31), 30 hops max, 60 byte packets
 1  sol (192.168.2.1)  0.295 ms  0.252 ms  0.243 ms
 2  * * *
 3  * * *
 4  * * *
 5  * * *
 6  * * *

No estoy seguro de si mi configuración es incorrecta o si puedo tener un problema con el punto de acceso inalámbrico.

Intenté agregar ebtablesconfiguración (como se discutióaquí) para hacer la traducción MAC, pero eso no hizo ninguna diferencia. Intenté agregar un dispositivo de red puente independiente fuera de virsh, pero los dispositivos virtuales existentes no se pueden conectar a ningún otro puente. He considerado otras opciones como un virshfiltro o quizás algunas reglas de iptables, pero me estoy agarrando a un clavo ardiendo.

¿Alguien puede sugerir la forma correcta de abordar esto?

información relacionada