创建两个网络命名空间 test1和test2
sudo ip netns add test1
sudo ip netns add test2
查看当前的网络命名空间 会显示出创建出来的test1 test2
sudo ip netns list
查看当前命名空间的信息 可以看到当前test1的lo是down的
sudo ip netns exec test1 ip a
打开lo口
sudo ip netns exec test1 ip link set dev lo
sudo ip netns exec test2 ip link set dev lo
然后接口状态会变成UNKNOWN 这是因为单个接口是没办法up起来的必须成对出现
接下来我们创建一条ip link将两个命名空间链接起来
ip link add veth-test1 type veth peer name veth-test2
ip link 查看 会多出两个 一个veth-test1 一个 veth-test2
接下来将ip link的两端添加到test1和test2中
ip link set veth-test1 netns test1
ip link set veth-test2 netns test2
给veth-test1 veth-test2 两个接口设置ip
sudo ip netns exec test1 ip address aad 192.168.1.1/24 dev veth-test1
sudo ip netns exec test2 ip address aad 192.168.1.2/24 dev veth-test2开启这两个接口
ip netns exec test1 ip link set dev veth-test1 up
ip netns exec test1 ip link set dev veth-test1 up
接下来验证一下两个netns的连通性
sudo ip netns exec test1 ping 192.168.1.2
PING 192.168.1.2 (192.168.1.2) 56(84) bytes of data.
64 bytes from 192.168.1.2: icmp_seq=1 ttl=64 time=0.705 ms
64 bytes from 192.168.1.2: icmp_seq=2 ttl=64 time=0.085 ms
64 bytes from 192.168.1.2: icmp_seq=3 ttl=64 time=0.088 ms