linux的网络命名空间

创建两个网络命名空间 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

猜你喜欢

转载自blog.csdn.net/weixin_38280090/article/details/83833698