容器 25:跨主机路径为什么会出现小包通大包失败
两端都要记录
直路由路径要使两端宿主知道对端 Pod 子网经哪个下一跳到达;封装路径则由 overlay 端点把内层包封装为外层 UDP/IP,并靠 underlay 递送到另一端。无论哪种,先在两台独立 VM 固定 IP、路由表、接口 MTU 和过滤规则,双端抓包,再逐次提高自建探针请求负载的报文大小。若小包成功、大包失败,比较内层 DF/分片、外层包长、ICMP Packet Too Big 和 PMTU 发现,不能只说“网络不稳定”。
正常例应验证小包与不超过路径 MTU 的大包均到达;边界例将受控 overlay 接口 MTU 配错,使请求在确定阈值附近失败,再调整仅属于实验的配置并复核双端结果。计时与丢包只报告真实抓包次数,不估算“合理的”性能数。本环境没有两台独立 VM、ip 或 CNI 插件,直路由与 VXLAN 对照、双端抓包、故障与恢复全部 NOT_RUN;补跑方案和探针源码包仍可独立取得。
| 现象 | 核查数据 | 不可直接推出 |
|---|---|---|
| 小请求正常、大请求卡住 | 两端抓包、MTU、ICMP | 一定是应用超时 |
| 两端 Pod 子网地址相似 | 各宿主路由及 overlay 端点 | 共享物理二层 |
| 外层丢包 | underlay 路由/过滤 | 内侧 veth 已坏 |
练习
- 先预测同一内层报文走 IPv4 和 IPv6 外层封装时可用 MTU 是否相同,按真实抓包计算外层头部并验证不硬编码数值。
- 预测停掉一侧受控 VXLAN 端点后两端分别看到哪些包;在专用 VM 抓包、恢复、确认所有自建接口删除。
上一篇:24:CNI;下一篇追踪 Pod 对象与节点执行。
系列总目录:从进程隔离到运行时与编排。
参考资料
All articles on this blog are licensed under CC BY-NC-SA 4.0 unless otherwise stated.



