Filtrar tráfico entre máquinas virtuales

Filtrar tráfico entre máquinas virtuales

Tengo una máquina con Fedora 21 que actúa como sistema host para dos máquinas virtuales. Las máquinas virtuales se componen de QEMU/KVM/libvirt/virt-manager. Una máquina virtual ejecuta un servidor web y la otra máquina virtual actúa como cliente. El cliente puede visitar el servidor para que la red funcione bien hasta ahora. Creo que de alguna manera se administra a través de la interfaz virbr0 en la máquina host, que también actúa como puerta de enlace predeterminada para las máquinas virtuales.

Ahora, en la máquina host, quiero filtrar el tráfico de red de las máquinas virtuales. Por ejemplo, quiero ponerlo en una cola de netfilter y aceptarlo o descartarlo según determinadas circunstancias. Una regla de iptables ejemplar esiptables -I FORWARD -i virbr0 -j NFQUEUE --queue-num 1

En general, parece funcionar porque cuando dejo caer todos los paquetes que entran en la cola, las máquinas virtuales ya no pueden visitar sitios web en Internet. Por supuesto que no, la puerta de enlace predeterminada descarta los paquetes. Bien hasta ahora.

Pero no puedo detener el tráfico entre las dos máquinas virtuales. Incluso si dejo caer los paquetes, el Cliente puede cargar la página ofrecida por la VM del servidor web. Creo que esto se debe a que la virtualización forma una red donde las dos máquinas virtuales están conectadas sin la necesidad de una puerta de enlace predeterminada.

Entonces, ¿alguien puede decirme cómo controlar el tráfico entre dos máquinas virtuales a través de iptables y la cola netfilter?

Y quiero que el filtro funcione solo en la máquina host. Y no se pretende bloquear todo el tráfico. Sólo se trata de filtrar en determinadas circunstancias. Por lo tanto, la cola de netfilter.

información relacionada