Docker 与 Kubernetes CNI 插件的底层依赖于 Linux 的 Net Namespace 与 veth pair 虚拟网卡对。通过建立虚拟命名空间并连接虚拟交换桥(Bridge),实现进程间的网络物理隔离与路由策略控制。
一、手把手构建独立的网络隔离沙箱
bash
# 创建两个独立的网络命名空间
ip netns add ns1
ip netns add ns2
# 创建一对 veth 设备
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
# 在各命名空间内配置独立 IP 并启动
ip netns exec ns1 ip addr add 192.168.10.1/24 dev veth-ns1
ip netns exec ns1 ip link set veth-ns1 up
ip netns exec ns2 ip addr add 192.168.10.2/24 dev veth-ns2
ip netns exec ns2 ip link set veth-ns2 up
# 验证隔离环境间的双向连通性
ip netns exec ns1 ping 192.168.10.2