【从零造容器】Network Namespace:给你的进程接上虚拟网线
上一篇我们用 clone() 隔离了 PID、主机名和挂载点,但那个'容器'连 lo 都 ping 不通。本文从 CLONE_NEWNET 出发,用 veth pair + bridge + iptables MASQUERADE,一步步给容器接上网。
Linux 内核、存储与网络、可观测性、系统架构与大模型基础设施的工程笔记:机制拆解、踩坑复盘与可核对证据,少空谈。
共 9 篇文章 · 返回首页
上一篇我们用 clone() 隔离了 PID、主机名和挂载点,但那个'容器'连 lo 都 ping 不通。本文从 CLONE_NEWNET 出发,用 veth pair + bridge + iptables MASQUERADE,一步步给容器接上网。
iptables/nftables 只是用户态前端——真正拦截每一个网络包的是内核中的 Netfilter 框架。本文从 Linux 6.6 内核源码拆解 Netfilter 的三大核心:nf_hook_entries 钩子链的注册与遍历、nf_conn 连接跟踪的双向元组哈希表与 GC 机制、NAT 的 SNAT/DNAT 转换路径;以及 nf_tables 相比 iptables 的关键架构升级——generation-based 无锁更新和 blob 化规则存储。
容器网络为什么比裸机慢?veth + bridge 每个包经过两次 netfilter,macvlan 跳过了 bridge,Cilium 用 eBPF 替掉了 iptables。到底慢多少?我们用 iperf3、wrk 和自定义 echo server 实测。
Netfilter 五个 hook 点、四表五链的真实遍历顺序、conntrack 状态机与性能开销、SNAT/DNAT/MASQUERADE 辨析,再到 nftables 替代方案和 eBPF 数据面——从内核视角拆解 Linux 防火墙。
从 userspace 到 eBPF,拆解 kube-proxy 四种模式的实现原理与性能权衡
Felix、BIRD、Typha 四大组件拆解,从纯 BGP 路由到 eBPF 数据面的 Calico 全景
从默认放行到零信任白名单,NetworkPolicy 的实现原理、策略模式与 CRD 扩展
iptables、nftables、eBPF 三种防火墙机制的架构差异、性能对比与迁移路径
5000 个 Service、十万条 iptables 规则、一次更新锁五秒——这就是 kube-proxy 的现实。Cilium 用 eBPF Map 的 O(1) 查找干掉了整条 KUBE-SERVICES 链,顺便把 sidecar 也一起埋了。