容器网络模型与常见排错:从 veth、bridge 到 iptables

举报
yd_259625967 发表于 2026/10/28 10:53:41 2026/10/28
【摘要】 梳理 Linux 容器网络的数据面构成,覆盖 veth、网桥、iptables 与常见故障,帮助快速定位容器间不通、跨节点访问失败等问题。容器网络一直是「看起来简单、出问题就玄学」的领域。想排障,得先把数据面拆开看:容器内的流量其实沿着 veth pair → 网桥(或 overlay)→ iptables → 物理网卡 这条链路走。本文给一张实用排障地图。第一步:看容器内接口。 进容器 i...

梳理 Linux 容器网络的数据面构成,覆盖 veth、网桥、iptables 与常见故障,帮助快速定位容器间不通、跨节点访问失败等问题。

容器网络一直是「看起来简单、出问题就玄学」的领域。想排障,得先把数据面拆开看:容器内的流量其实沿着 veth pair → 网桥(或 overlay)→ iptables → 物理网卡 这条链路走。本文给一张实用排障地图。

第一步:看容器内接口。 进容器 ip a,你会发现 eth0 其实是一个 veth 的一端,另一端在宿主机,名字叫 vethXXXX。用 ip link 在宿主机上能看到对应关系。如果 eth0 是 DOWN,多半是 docker network 或 CNI 初始化失败。

第二步:看网桥与路由。 默认 docker bridge 是 docker0,所有容器挂在它上。自定义 network 则是 bridge 驱动生成的 br-xxxx。ip route 确认默认网关,容器要访问外网必须经过网桥的 NAT。

第三步:看 iptables。 这是重灾区。iptables -L -n 里 FORWARD 链默认对 overlay 网络常有 DROP 规则。跨节点不通,常见原因是节点间没有放行 CNI 的 overlay 协议(比如 Calico 走 179、Flannel 走 4789)。用 tcpdump 在网桥和物理网卡上各抓一次,对比丢包点,能定位到是防火墙拦了还是路由没配。

常见故障清单:

  • 容器内 ping 通网关、ping 不通外网:检查 NAT 是否生效、ip_forward 是否为 1。
  • 跨节点访问失败:确认 overlay 协议在节点间放行,CNI 的节点 IP 路由可达。
  • 服务间 DNS 解析失败:通常是 CoreDNS 副本不足或 Pod 内没有注入 --dns,先在 Pod 里 cat /etc/resolv.conf。

排障的黄金法则是「分段抓包」:从容器内、到网桥、到节点网卡,逐级对比丢在哪一段。把这套顺序记下来,绝大多数容器网络问题都能在 10 分钟内定位到边界。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。