Tengo dos servidores en juego aquí, uno es un host Qemu VM y el otro es una especie de caja de almacenamiento.
Son máquinas Hetzner y las tengo conectadas mediante un vSwitch.
Interfaz vSwitch del servidor 1:
3: local@eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 10:7b:44:b1:5b:7d brd ff:ff:ff:ff:ff:ff
inet 192.168.100.1/24 brd 192.168.100.255 scope global local
valid_lft forever preferred_lft forever
Ruta IP del servidor 1 (host de VM):
default via <redacted-public-ip> dev eth0 proto static metric 100
<redacted-public-ip> dev eth0 proto static scope link metric 100
192.168.10.0/24 dev virbr0 proto kernel scope link src 192.168.10.254 metric 425 <-- virbr0 network
192.168.10.253 via 192.168.100.2 dev local <-- srv02 IP to fit in virbr0 net space
Interfaz vSwitch del servidor 2:
3: local@eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1400 qdisc noqueue state UP group default qlen 1000
link/ether 08:60:6e:44:d6:2a brd ff:ff:ff:ff:ff:ff
inet 192.168.100.2/24 brd 192.168.100.255 scope global local
valid_lft forever preferred_lft forever
inet 192.168.10.253/24 brd 192.168.10.255 scope global local
valid_lft forever preferred_lft forever
Ruta IP del servidor 2:
default via <redacted-public-ip> dev eth0 proto static metric 100
<redacted-public-ip> dev eth0 proto static scope link metric 100
192.168.10.0/24 dev local proto kernel scope link src 192.168.10.253 <-- to access virbr0 via vSwitch
Supongo que tengo las rutas configuradas correctamente, ya que todo funciona bien con el servicio firewalld desactivado.
Sin embargo, si lo enciendo, comienzan los problemas.
Estas son las zonas de firewall en el Servidor1 (en las que cuando desactivo firewalld todo funciona)
libvirt (active)
target: ACCEPT
icmp-block-inversion: no
interfaces: virbr0
sources:
services: dhcp dhcpv6 dns ssh tftp
ports:
protocols: icmp ipv6-icmp
forward: no
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
rule priority="32767" reject
public (active)
target: default
icmp-block-inversion: no
interfaces: eth0 local
sources:
services: cockpit dhcpv6-client ssh
ports:
protocols:
forward: no
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
Intenté activar la mascarada en cada uno de ellos, ambos al mismo tiempo, sin éxito. Estoy "probando" esto con un simple ping desde el Servidor2, hacia una de las máquinas virtuales en virbr0.
¿Hay algo obvio que me falta aquí?
Gracias a todos de antemano.
Respuesta1
Logré resolver esto usando las siguientes dos reglas en el host QEMU
firewall-cmd --permanent --direct --add-rule ipv4 filter FORWARD 0 -o local -i virbr0 -j ACCEPT
firewall-cmd --permanent --direct --add-rule ipv4 filter FORWARD 0 -o virbr0 -i local -j ACCEPT