linux实现namespace间通信

一 目的

linux实现两个namespace间通信

 

二 操作

1. 逻辑

①创建两个namespace
②创建一对网络接口
③给每个namespace分配网络接口
④每个namespace设置ip,激活网卡
⑤测试两个namespace能否通信

 

三 结论 

目前测试,两个namespace,网段需要一致,否则网络unreach

 

四 资料

Network namespace是linux内核提供的用于实现网络虚拟化的重要功能,能创建多个隔离的网空间,每个网络空间的防火墙,网卡,路由表,邻居表,协议栈,都是独立的。

# 创建命名空间
ip netns add ns1 
# 查看命名空间
ip netns list
# 删除命令空间
ip netns delete ns1
# 进入命名空间,执行命令
ip netns exec ns1 ip a

# 给网口分配ip
ip netns exec ns1 ip addr add 192.168.1.1/24 dev veth-ns1
ip netns exec ns2 ip addr add 192.168.1.2/24 dev veth-ns2

# 激活网卡
ip netns exec ns1 ip link set dev veth-ns1 up
ip netns exec ns2 ip link set dev veth-ns2 up
veth pair虚拟设备接口技术,该技术需要一对网络接口,分别置于两个命名空间中

# 创建一对儿网络接口
ip link add veth-ns1 type veth peer name veth-ns2

# 把网络接口分配给网络空间
ip link set veth-ns1 netns ns1
ip link set veth-ns2 netns ns2 

 

posted @ 2024-05-21 11:07  qx和世界  阅读(47)  评论(0编辑  收藏  举报