1. 抓包环境搭建与最小流量采集
实验网络中的抓包点部署
抓包环境搭建的核心是让抓包主机能够看到被测链路上的双向报文。在实验网络中,常见采集方式有三种:交换机端口镜像(SPAN)、光分路器(分光)和无源 TAP。三者的部署位置和信号流向不同,但目标一致——把业务链路的流量复制一份送到抓包网卡。
以一台三层交换机连接服务器与客户端的实验拓扑为例:业务流量在交换机端口 Gi0/1(服务器)与 Gi0/2(客户端)之间双向流动。若采用端口镜像,需将 Gi0/1 和 Gi0/2 的进出流量同时镜像到 Gi0/24,抓包主机接在 Gi0/24 上。若采用 TAP,则 TAP 串接在服务器与交换机之间,A 口和 B 口分别输出两个方向的流量,抓包主机需要两块网卡分别接入,或使用支持聚合的 TAP 将双向合并到一条链路。
最小流量采集与完整性确认
部署完成后,用一段最小业务流量验证采集是否完整。最小流量可以是一次 TCP 三次握手加一次 HTTP 请求/响应,或一次 ICMP 请求/应答。在抓包主机上执行:
tcpdump -i eth0 -n -c 20 host 192.168.10.10 and host 192.168.10.20
该命令在 eth0 上捕获 20 个与服务器和客户端相关的报文后停止。观察输出中是否同时出现源地址为 192.168.10.10、目的地址为 192.168.10.20 的报文,以及反向的报文。若只看到单向流量,说明镜像配置只复制了一个方向,或 TAP 的另一路输出未接入。
更严格的验证方式是在抓包主机上同时记录接口统计:
# 开始抓包前记录
cat /sys/class/net/eth0/statistics/rx_packets
# 执行最小流量交互后再次记录
cat /sys/class/net/eth0/statistics/rx_packets
两次差值应大于等于 tcpdump 捕获的报文数。若差值明显偏大,说明有额外流量进入镜像口;若差值偏小,说明存在丢包,需检查镜像口带宽是否过载或抓包主机处理能力是否不足。
最小流量采集检查清单:
- 抓包网卡已开启混杂模式(
ip link set eth0 promisc on) - 镜像源端口覆盖业务双向(Gi0/1 和 Gi0/2 的 ingress + egress)
- 抓包主机与镜像口速率匹配,避免镜像口拥塞
- tcpdump 过滤条件同时包含两个方向的地址对
- 捕获结果中能看到完整的 TCP 握手或 ICMP 请求/应答
常见问题:若抓包主机接在镜像口后只能看到单向流量,优先检查交换机镜像配置中是否只指定了源端口的 ingress 方向。部分交换机默认只镜像 ingress,需要显式配置
both 或分别指定 ingress 和 egress。使用 TAP 时,若只接入 A 口而忽略 B 口,同样只能看到单向流量。