libvirt (KVM) と podman (1.6) がインストールされた Centos8 ホストがあります。
libvirt は「virbr0」と呼ばれるブリッジを導入し、ゲストは 192.168.122.0/24 の範囲のアドレスで接続されます。virbr0 自体は 192.168.122.1 です。ゲストは互いに、ホストと、インターネットと通信できます。今のところ、特別なことは何もありません...
libvirt の他に、CNI に付属する podman があり、これが「cni-podman0」と呼ばれるブリッジを提供し、範囲 10.88.0.0/16 のネットワークを起動します。
コンテナ(独自のネットワーク ns を使用)を生成すると、たとえば WordPress インスタンスの場合、ホストから、またコンテナの IP アドレスを使用して libvirt ゲストからこのサービスにアクセスできます。カール -L 10.88.0.10。
しかし一方で、podman コンテナから libvirt ゲストにアクセスしようとすると、常に「curl: (7) 192.168.122.14 ポート 8443 への接続に失敗しました: 接続が拒否されました」というメッセージが表示されます。(<- いいえ、ファイアウォールの設定を忘れたわけではありません)
tcpdump を使用すると、パケットがコンテナ ブリッジ「cni-podman0」より先には送信されないことがわかります。(2 回の「再送信」の後、パケットは送信を中止します)
iptables は私には普通に見えます:
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" */
...これが正しければ、最後の行は、マルチキャスト アドレスに属していないターゲットに対するすべてのトラフィックを snat するように指示しています。
誰か私を正しい道に戻してください。ありがとうございます!