一、创那一个network namespace
ip netns add che-ns1
二、查看che-ns1的信息
ip netns exec che-ns1 ip a
三、启动che-ns1
ip netns exec che-ns1 ifup lo
四、如同前3步,再创建一个network namespace"che-ns2",并启动che-ns2
五、到这里,我们已经创建了两个network-namespace,那么这两个network-namespace之间该如何通信呢,
有了不同 network namespace 之后,也就有了网络的隔离,但是如果它们之间没有办法通信,也没有实际用处。要把两个网络连接起来,linux 提供了 veth pair 。可以把 veth pair 当做是双向的 pipe(管道),从一个方向发送的网络数据,可以直接被另外一端接收到;或者也可以想象成两个 namespace 直接通过一个特殊的虚拟网卡连接起来,可以直接通信。
六、创建type为veth pair的link
ip link add veth-link1 type veth peer name veth-link2
七、设置che-ns1的link为veth-link1,che-ns2的link为veth-link2
ip link set veth-link1 netns che-ns1
ip link set veth-link2 netns che-ns2
八、为veth-link1、veth-link2设置ip地址
ip netns exec che-ns1 ip addr add 192.168.1.21/24 dev veth-link1
ip netns exec che-ns2 ip addr add 192.168.1.22/24 dev veth-link2
九、命名空间che-ns1 ping che-ns2
ip netns exec che-ns1 ping 192.168.1.22
此处有个小小的翻车,没有启动veth-link1、veth-link2,启动后,重新再ping,就可以ping通了,
启动 veth-link的命令如下
## 启动命令
ip netns exec che-ns1 ip addr add 192.168.1.21/24 dev veth-link1
ip netns exec che-ns2 ip addr add 192.168.1.22/24 dev veth-link2
## 查看命令
ip netns exec che-ns1 ip link
ip netns exec che-ns1 ip a