欢迎访问 内存溢出 —— 独立后端与系统工程技术博客

专注于分布式系统、Linux内核、数据库存储与后端工程实践

网络隔离与微隔离:基于 Linux Network Namespace 的网络拓扑构建

发表于:|最后更新:|分类:Linux与网络|阅读:6339 次

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