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
|