场景痛点:容器网络问题定位困难,Pod IP动态变化、veth pair映射关系复杂、跨节点通信路径不透明。
一、定位Pod所在节点的veth网卡
# 获取Pod的eth0接口索引
kubectl exec -it ${PodName} -- cat /sys/class/net/eth0/iflink
# 在节点上查找对应veth
ip link |grep ${iflink_number}
找到对应的veth网卡(如cali3002ec233ba@if6)后,即可使用tcpdump抓包并用Wireshark分析 [^39^]。
二、7种核心抓包场景
| 场景 | 抓包位置 | Wireshark过滤 |
|---|---|---|
| Pod访问外网 | 节点eth0 + cni0 | host ${pod_ip} and not port 53 |
| Pod跨节点通信 | 源/目标节点veth + 物理网卡 | vxlan or host ${pod_ip} |
| Service ClusterIP不通 | kube-proxy所在节点 | host ${cluster_ip} or host ${endpoint_ip} |
| DNS解析异常 | coredns Pod网络命名空间 | port 53 |
| Ingress 502错误 | Ingress Controller Pod | http.response.code == 502 |
| Calico网络策略拦截 | 节点tunl0或vxlan.calico | icmp or tcp.flags.reset==1 |
| Pod启动网络初始化失败 | Pause容器网络命名空间 | arp or dhcp |
三、VXLAN隧道流量分析
当使用Flannel VXLAN模式时,Wireshark需要解析外层VXLAN头部和内层容器流量。设置解码器:右键UDP 4789端口 → 解码为 → VXLAN...

