У меня есть хост Centos8 с установленными libvirt (KVM) и podman (1.6).
libvirt добавил мост под названием "virbr0", и гости будут подключены к нему с адресом из диапазона 192.168.122.0/24. Сам virbr0 имеет 192.168.122.1. Гости могут общаться друг с другом, с хостом и с интернетом. Пока ничего особенного...
Помимо libvirt у нас есть podman, который поставляется вместе с CNI, который, в свою очередь, предоставляет мост под названием «cni-podman0» и разворачивает сеть с диапазоном 10.88.0.0/16.
Когда я создаю контейнер (с собственным сетевым ns), скажем, экземпляр WordPress, я могу получить доступ к этой службе с хоста и из гостевой системы libvirt, используя IP-адрес контейнера, например:завиток -L 10.88.0.10.
Но с другой стороны, когда я пытаюсь связаться с гостем libvirt из контейнера Podman, я всегда получаю сообщение «curl: (7) Не удалось подключиться к порту 192.168.122.14 8443: соединение отклонено». (<-Нет, это не забытая настройка брандмауэра)
Когда я использую tcpdump, я вижу, что пакеты не идут дальше контейнерного моста "cni-podman0". (После двух "Повторных передач" он сдается)
Мне iptables кажется вполне нормальным:
iptables -nvL -t нат
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" */
...если я правильно понял, последняя строка говорит нам о необходимости перехвата всего трафика, предназначенного для целей, не относящихся к многоадресному адресу.
Пожалуйста, кто-нибудь, верните меня на правильный путь. Спасибо!