【从零造容器】容器网络性能真相:veth vs macvlan vs eBPF 数据面
容器网络为什么比裸机慢?veth + bridge 每个包经过两次 netfilter,macvlan 跳过了 bridge,Cilium 用 eBPF 替掉了 iptables。到底慢多少?我们用 iperf3、wrk 和自定义 echo server 实测。
发布来自土法炼钢兴趣小组的知识、笔记、进展和应用。主题包括数据结构和算法、编程语言、网络安全、密码学等。
共 38 篇文章 · 返回首页
容器网络为什么比裸机慢?veth + bridge 每个包经过两次 netfilter,macvlan 跳过了 bridge,Cilium 用 eBPF 替掉了 iptables。到底慢多少?我们用 iperf3、wrk 和自定义 echo server 实测。
从 NIC 驱动到用户态 read(),一个网络包在 Linux 内核中到底经历了什么?本文拆解 sk_buff、NAPI、softirq、netfilter 的完整收包路径,并用 bpftrace 实测追踪每一跳的延迟。
五种 Linux 虚拟网络设备的内核实现原理、数据流路径、性能代价与适用场景,附手工实验验证。
Netfilter 五个 hook 点、四表五链的真实遍历顺序、conntrack 状态机与性能开销、SNAT/DNAT/MASQUERADE 辨析,再到 nftables 替代方案和 eBPF 数据面——从内核视角拆解 Linux 防火墙。
Linux 路由表、FIB 查找、策略路由,以及 VXLAN/Geneve/WireGuard 隧道技术深度拆解
从 AS 和路径属性到 Route Reflector,理解 Calico 底层依赖的 BGP 协议
eBPF 在网络栈中的五大挂载点,bpf_redirect 三兄弟,以及动手写一个 TC BPF 包过滤器
K8s 网络三条铁律、pause 容器的真实作用、Pod 网络命名空间的创建全过程
从 CNI 规范的四个操作到手写一个最简 CNI 插件,理解 K8s 网络的插件化机制
从 userspace 到 eBPF,拆解 kube-proxy 四种模式的实现原理与性能权衡
K8s 双栈网络的演化历程、地址分配机制、CNI 支持现状与现实中的陷阱
Flannel 三种 backend 的深度拆解,以及为什么它仍然是某些场景的最佳选择
Felix、BIRD、Typha 四大组件拆解,从纯 BGP 路由到 eBPF 数据面的 Calico 全景
从 eBPF 数据面到 Identity 安全模型,全面拆解 Cilium 的架构与实现
不是功能矩阵,而是基于真实场景和性能实测的 CNI 选型决策指南
ndots:5 的查询放大、search domain 陷阱、NodeLocal DNSCache,以及 DNS 排查全套路
ExternalTrafficPolicy 的真实行为、拓扑感知路由机制、MetalLB 深度拆解
主流 Ingress Controller 架构对比、热更新机制、TLS 终止,以及为什么 Ingress API 注定被替代
角色分离、资源模型、高级流量管理,以及从 Ingress 迁移到 Gateway API 的实战路径
从默认放行到零信任白名单,NetworkPolicy 的实现原理、策略模式与 CRD 扩展
从 IP-based 到 Identity-based 安全,Cilium 零信任网络架构的实现与落地
iptables、nftables、eBPF 三种防火墙机制的架构差异、性能对比与迁移路径
WireGuard、IPsec、透明 mTLS 三种容器网络加密方案的原理、性能与选型
MTU 层层封装计算、不匹配症状诊断、PMTUD 黑洞排查,以及各 CNI 的最佳 MTU 配置
DSR 三种实现方式、Cilium DSR 深度拆解、Maglev 一致性哈希,以及 DSR 的那些坑
三层可观测性体系:经典抓包工具、eBPF 原生观测、全栈 Metrics/Logs/Traces 一体化
10 个真实网络故障案例拆解,从 conntrack 表满到 ClusterMesh DNS 失败的完整排查手册
三种多集群网络模式的深度对比,从 Cilium ClusterMesh 到 Submariner 到 MCS API
VPC Peering、云厂商 CNI 对比、三云联邦网络架构设计实战
从 2014 年 socket filter 到可编程拥塞控制和 SmartNIC offload,eBPF 网络能力的完整演化史
四大趋势、AI 工作负载挑战、架构师决策矩阵,以及 K8s 网络的知识图谱
当 DDoS 洪水来袭,iptables 在协议栈里挣扎,而 XDP 在网卡驱动层就把垃圾包丢了。不进协议栈、不分配 skb、不走 netfilter——这才是丢包该有的样子。
上篇讲哲学,这篇写代码。用 C + ngtcp2 从 UDP socket 开始,手撕 Initial → Handshake → 1-RTT,逐帧拆解 QUIC 握手到底在干什么。
从 Linux 网络栈的第一个字节到多集群联邦网络的最后一跳——用代码、抓包和内核源码把 Kubernetes 网络讲透
多线程 Libevent 编程实践:异步网络 IO、事件驱动架构与跨平台开发
TCP SYN 处理详解:三次握手、SYN Flood 防护与网络性能优化
为什么要关闭 TCP Timestamp:网络性能优化与安全考虑
Libevent 源码分析:evbuffer 数据缓冲结构设计与实现原理