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