Un host, dos máquinas virtuales que no pueden hacer ping entre sí. Cómo resolver

10

Tenemos máquinas virtuales que operan dentro del KVMentorno. Configuramos uno como un servidor de desarrollo que ejecuta Apache, etc., y el otro como un Windowsentorno de desarrollo.

Los dos entornos están configurados y funcionando bien. Sin embargo, no pueden hacer ping entre sí. Me pregunto si hay una solución clara para esto.

Esto es lo que está pasando.

Del anfitrión:

  Cannot ping either of 2 VM's (one `Linux`, one `Windows`)

De cualquiera de las máquinas virtuales:

  Cannot ping host
  Cannot ping each other

Desde otras máquinas de red (por ejemplo, mi computadora portátil desde la red de mi empresa)

  Successfully ping host at 192.168.0.64
  Successfully ping VM1 (Linux) 192.168.0.43
  Successfully ping VM2 (Windows) 192.168.0.84
Jay Lepore
fuente
44
¿Tiene más información sobre la configuración de red de sus máquinas virtuales? ¿Está completamente seguro de que cuando sus otras máquinas de red hacen ping a sus máquinas virtuales, no están haciendo ping a alguna otra máquina aleatoria en la red? (por ejemplo, ¿puede realmente golpear el servidor apache con un navegador?).
GregHNZ
Creo que podría ser tu puente. Las iptables del kernel bloquearán su máquina para que no se hable a sí misma a menos que usted: echo "1"> / proc / sys / net / ipv4 / ip_forward; Posiblemente, de todos modos.
mikeserv
¿Qué comando utiliza para iniciar las máquinas virtuales?
jobin
¿Tiene otras máquinas en la misma red (que no reside en el mismo host)? ¿Estas máquinas pueden hacer ping a esas máquinas?
Sree
1
¿Utiliza una interfaz macvtap ( wiki.libvirt.org/page/… ) para el invitado?
nkms

Respuestas:

1

Es bastante obvio que las máquinas se comunican en modo puente, ya que puede hacer ping al host y a ambas máquinas virtuales desde fuera del entorno KVM.

Su problema es la protección anti-spoofing en el kernel, que descarta paquetes con un destino que no sea la dirección IP del host.

Para el tiempo de ejecución, haga esto en la línea de comando del servidor host:

 sudo sysctl -w net.ipv4.conf.default.rp_filter=0
 sudo sysctl -w net.ipv4.conf.all.rp_filter=0

Para que sobreviva el arranque, agregue las siguientes líneas a /etc/sysctl.conf:

 net.ipv4.conf.default.rp_filter=0
 net.ipv4.conf.all.rp_filter=0

De los comentarios sobre /etc/sysctl.conf(ligeramente cambiado):

rp_filter: habilita la protección de Spoof (filtro de ruta inversa).

Verificación de la dirección de origen en todas las interfaces para evitar algunos ataques de suplantación de identidad

Rui F Ribeiro
fuente
Sé que la pregunta es vieja ...
Rui F Ribeiro
0

En general, el tipo de conexión debería ser NAT hasta donde yo sé. Entonces, en la configuración del mouse, haga clic derecho en la VM particular, puede cambiar el tipo de red.

PD: ocultar una computadora del ping en la red de área local específicamente, creo que no es posible. Pero vale la pena echarle un vistazo.

rɑːdʒɑ
fuente
Es posible ocultar computadoras de los pings ICMP. Puede deshabilitar la funcionalidad en el núcleo o crear reglas de firewall para bloquearlo. Tengo Xen y Bhyve hosts en modo puente, y funcionan bien.
Rui F Ribeiro