Tengo un host Centos8 con libvirt (KVM) y podman (1.6) instalados.
libvirt trajo un puente llamado "virbr0" y los invitados se conectarán con una dirección del rango 192.168.122.0/24. El propio virbr0 tiene 192.168.122.1. Los huéspedes pueden hablar entre sí, con el anfitrión y con Internet. Hasta ahora nada especial...
Además de libvirt, tenemos podman que viene con CNI, que a su vez proporciona un puente llamado "cni-podman0" y activa una red con rango 10.88.0.0/16.
Cuando genero un contenedor (con su propia red ns), digamos una instancia de WordPress, puedo acceder a este servicio desde el host y desde un invitado libvirt usando la dirección IP del contenedor, por ejemplo.rizo -L 10.88.0.10.
Pero, por otro lado, cuando intento comunicarme con un invitado libvirt desde un contenedor podman siempre aparece "curl: (7) No se pudo conectar al puerto 192.168.122.14 8443: Conexión rechazada". (<-No, no es una configuración de firewall olvidada)
Cuando uso tcpdump puedo ver que los paquetes no irán más allá del puente de contenedor "cni-podman0". (Después de dos "Retransmisiones" se da por vencido)
iptables me parece normal:
iptables -nvL -t nat
Chain PREROUTING (policy ACCEPT 1540 packets, 192K bytes)
pkts bytes target prot opt in out source destination
Chain INPUT (policy ACCEPT 75 packets, 6929 bytes)
pkts bytes target prot opt in out source destination
Chain POSTROUTING (policy ACCEPT 1412 packets, 86218 bytes)
pkts bytes target prot opt in out source destination
0 0 RETURN all -- * * 192.168.122.0/24 224.0.0.0/24
0 0 RETURN all -- * * 192.168.122.0/24 255.255.255.255
3 180 MASQUERADE tcp -- * * 192.168.122.0/24 !192.168.122.0/24 masq ports: 1024-65535
0 0 MASQUERADE udp -- * * 192.168.122.0/24 !192.168.122.0/24 masq ports: 1024-65535
0 0 MASQUERADE all -- * * 192.168.122.0/24 !192.168.122.0/24
0 0 CNI-df70ac6052cc3121e6aed9de all -- * * 10.88.0.16 0.0.0.0/0 /* name: "podman" id: "ae18985e3e1a0905bc04be8021bcacdd61436e682be24c08e2e53b0705baad33" */
Chain OUTPUT (policy ACCEPT 1412 packets, 86218 bytes)
pkts bytes target prot opt in out source destination
Chain CNI-df70ac6052cc3121e6aed9de (1 references)
pkts bytes target prot opt in out source destination
0 0 ACCEPT all -- * * 0.0.0.0/0 10.88.0.0/16 /* name: "podman" id: "ae18985e3e1a0905bc04be8021bcacdd61436e682be24c08e2e53b0705baad33" */
0 0 MASQUERADE all -- * * 0.0.0.0/0 !224.0.0.0/4 /* name: "podman" id: "ae18985e3e1a0905bc04be8021bcacdd61436e682be24c08e2e53b0705baad33" */
...si entendí esto correctamente, la última fila nos dice que capturemos todo el tráfico dirigido a objetivos que no pertenecen a una dirección de multidifusión.
Por favor, ¿alguien podría devolverme el camino correcto? ¡Gracias!