2つの橋を接続すると、一方向にしか機能しません

2つの橋を接続すると、一方向にしか機能しません

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 するように指示しています。

誰か私を正しい道に戻してください。ありがとうございます!

関連情報