4 つの名前空間を 1 つの OVS ブリッジに接続する方法を教えていただきたいのですが、それらはすべて 1 つのホストにあります。これらの 4 つの名前空間に対して 2 組の veth を試し、ブリッジに内部ポートを追加しましたが、名前空間は veth のもう一方の端からしか ping できません。
[root@centos7 ~]# ovs-vsctl show
689941bc-760e-451e-a91c-ddc33caf2396
Bridge brtest
Port "test1"
tag: 9
Interface "test1"
type: internal
Port "test4"
tag: 9
Interface "test4"
type: internal
Port "test2"
tag: 9
Interface "test2"
type: internal
Port brtest
Interface brtest
type: internal
Port "test3"
tag: 9
Interface "test3"
type: internal
ovs_version: "2.7.0"
ip netns exec nstest1 ifconfig test1 promisc
ip netns exec nstest2 ifconfig test2 promisc
ip netns exec nstest3 ifconfig test3 promisc
ip netns exec nstest4 ifconfig test4 promisc
名前空間の veth の promisc をオンにして、それぞれ 172.24.0.11 から 172.24.0.14 の IP を割り当てました。しかし、nstest1 と nstest2 は veth のペアで接続され、nstest3 と nstest4 は別の veth のペアで接続されているため、nstest1 のみが nstest2 に、nstest3 のみが nstest4 にアクセスできます。
これら 4 つの名前空間を完全に通過させることはできますか?
答え1
答えは出ました。これら 4 つの名前空間に veth ペアを作成し、一方の端を名前空間に割り当て、もう一方の端をポートとして仮想ブリッジに追加するだけです。すると、これら 4 つの名前空間は、いずれか 1 つから通過できるようになります。
ip link set test1a netns nstest1
ip link set test2a netns nstest2
ip link set test3a netns nstest3
ip link set test4a netns nstest4
ovs-vsctl br-list
ovs-vsctl list-br
ovs-vsctl show
ovs-vsctl add-br br0
ovs-vsctl add-port br0 test1b
ovs-vsctl add-port br0 test2b
ovs-vsctl add-port br0 test3b
ovs-vsctl add-port br0 test4b
ip netns exec nstest1 ifconfig test1a 172.24.0.11/24 promisc up
ip netns exec nstest2 ifconfig test2a 172.24.0.12/24 promisc up
ip netns exec nstest3 ifconfig test3a 172.24.0.13/24 promisc up
ip netns exec nstest4 ifconfig test4a 172.24.0.14/24 promisc up
ip link set dev test2b up
ip link set dev test1b up
ip link set dev test3b up
ip link set dev test4b up