在centos中创建network namespace,以及实现network namespace之间的通信

一、创那一个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
发布了122 篇原创文章 · 获赞 152 · 访问量 112万+

猜你喜欢

转载自blog.csdn.net/ytangdigl/article/details/103606962
今日推荐