Docker基石 NetworkNamespace

Docker 基石-NetworkNamespace

1. veth-pair 是什么

veth-pair 是一对虚拟网卡,通过 veth-pair 可以将两个网络命名空间连接起来,从而实现两个网络命名空间之间的通信。和 tap/tun 设备不同的是,它都是成对出现的。一端连着协议栈,一端彼此相连着

全程只使用 ip 命令进行演示

2. 使用 veth-pair 和 netns 进行演示

2.1 创建两个网络命名空间

1
2
ip netns add ns1
ip netns add ns2

2.2 创建 veth-pair

1
ip link add veth1 type veth peer name veth2

2.3 将 veth1 移动到 ns1 中

1
ip link set veth1 netns ns1

2.4 将 veth2 移动到 ns2 中

1
ip link set veth2 netns ns2

2.5 启动 veth1

1
ip netns exec ns1 ip link set dev veth1 up

2.6 启动 veth2

1
ip netns exec ns2 ip link set dev veth2 up

2.7 设置 veth1 的 IP 地址

1
ip netns exec ns1 ip addr add 192.168.1.2/24 dev veth1

2.8 设置 veth2 的 IP 地址

1
ip netns exec ns2 ip addr add 192.168.1.3/24 dev veth2

2.9 测试

1
ip netns exec ns1 ping 192.168.1.3

0%