注:在Rocky8.6中使用brctl命令需安装需要下载源码编译安装,下载地址
模拟容器间网络通信
处在不同 namespace 的容器网络可以通过 veth pair 与 bridge 相连的方式来相互打通
# 添加虚拟网桥
[root@es1 ~]# brctl addbr br0
[root@es1 ~]# ip link set br0 up
#创建ns0命名空间,添加IP,并将接口连接到虚拟网桥上
[root@es1 ~]# ip netns add ns0
[root@es1 ~]# ip link add veth0 type veth peer name veth0_br
[root@es1 ~]# ip link set veth0 netns ns0
[root@es1 ~]# ip netns exec ns0 ip addr add 10.1.1.5/24 dev veth0
[root@es1 ~]# ip link set veth0_br up
[root@es1 ~]# ip netns exec ns0 ip link set veth0 up
[root@es1 ~]# brctl addif br0 veth0_br
#创建ns1命名空间,添加IP,并将接口连接到虚拟网桥上
[root@es1 ~]# ip netns add ns1
[root@es1 ~]# ip link add veth1 type veth peer name veth1_br
[root@es1 ~]# ip link set veth1 netns ns1
[root@es1 ~]# ip netns exec ns1 ip addr add 10.1.1.6/24 dev veth1
[root@es1 ~]# ip link set veth1_br up
[root@es1 ~]# ip netns exec ns1 ip link set veth1 up
[root@es1 ~]# brctl addif br0 veth1_br
#测试连接到网桥上的IP是否连通
[root@es1 ~]# ip netns exec ns1 ping 10.1.1.5
PING 10.1.1.5 (10.1.1.5) 56(84) bytes of data.
64 bytes from 10.1.1.5: icmp_seq=1 ttl=64 time=0.058 ms
64 bytes from 10.1.1.5: icmp_seq=2 ttl=64 time=0.053 ms
^C
--- 10.1.1.5 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1037ms
rtt min/avg/max/mdev = 0.053/0.055/0.058/0.007 ms