namespace+veth+bridge 构建docker网络模型

257 阅读1分钟

准备

sudo apt-get install bridge-utils

新建2个namespace

sudo ip netns add ns1
sudo ip netns add ns2

新建2对veth

sudo ip link add v1 type veth peer name v1p
sudo ip link add v2 type veth peer name v2p

设置veth的namespace

sudo  ip link set v1p netns ns1
 sudo ip link set v2p netns ns2

添加bridge

 sudo brctl addbr br1

把veth添加到bridge

sudo brctl addif br1 v1
sudo brctl addif br1 v2

设置namespace的ip

sudo  ip netns exec ns1 ip addr add local 172.17.0.1/24 dev v1p
sudo ip netns exec ns2 ip addr add local 172.17.0.2/24 dev v2p

启动网络设备

sudo ip link set br1 up
sudo ip link set v1 up
sudo ip link set v2 up
sudo ip netns exec ns1 ip link set v1p up
sudo ip netns exec ns2 ip link set v2p up

测试

sudo ip netns exec ns1 ping 172.17.0.2
sudo ip netns exec ns2 ping 172.17.0.1