1. 抓包环境搭建与最小流量采集

抓包环境搭建与最小流量采集 学习卡片

实验网络中的抓包点部署

抓包环境搭建的核心是让抓包主机能够看到被测链路上的双向报文。在实验网络中,常见采集方式有三种:交换机端口镜像(SPAN)、光分路器(分光)和无源 TAP。三者的部署位置和信号流向不同,但目标一致——把业务链路的流量复制一份送到抓包网卡。

以一台三层交换机连接服务器与客户端的实验拓扑为例:业务流量在交换机端口 Gi0/1(服务器)与 Gi0/2(客户端)之间双向流动。若采用端口镜像,需将 Gi0/1 和 Gi0/2 的进出流量同时镜像到 Gi0/24,抓包主机接在 Gi0/24 上。若采用 TAP,则 TAP 串接在服务器与交换机之间,A 口和 B 口分别输出两个方向的流量,抓包主机需要两块网卡分别接入,或使用支持聚合的 TAP 将双向合并到一条链路。

实验网络抓包点部署与双向流量采集 服务器 192.168.10.10 客户端 192.168.10.20 三层交换机 Gi0/1 ←→ Gi0/2 Gi0/24 镜像口 SPAN: 源 Gi0/1,Gi0/2 目的 Gi0/24 Gi0/1 Gi0/2 抓包主机 eth0: 192.168.10.100 tcpdump / Wireshark 混杂模式: 开启 捕获方向: 双向 镜像流量 Gi0/24 → eth0 业务流量方向 服务器 ⇄ 客户端 采集方式: ① 端口镜像(SPAN)— 交换机内部复制,配置简单 ② 分光器 — 光路分光,无源可靠 ③ 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 口,同样只能看到单向流量。