Appearance
Appearance
Ethernet 抓包要先确定“抓包机器能不能实际收到目标帧”。Wireshark 或 TShark 只能分析已经到达抓包接口的数据;把网卡设为混杂模式,只是让网卡把收到的更多帧交给主机,并不会让交换机把别的端口流量自动送过来。
适用场景:排查有线以太网中的主机通信、交换网络链路、端口镜像、TAP 或中间桥接抓包。不要把它和 loopback 抓包混淆;同一台机器内部进程之间的本机回环流量,应在 loopback 接口上抓。
| 目标 | 推荐位置 | 关键限制 |
|---|---|---|
| 只看本机收发流量 | 在本机对应 Ethernet 接口抓包 | 通常不需要特殊设置;如果是本机到本机流量,改看 loopback |
| 看某台服务器的所有进出流量 | 在服务器本机抓,或镜像/TAP 服务器所在链路 | 本机抓不到交换机其他端口的无关单播流量 |
| 看交换机上两台设备之间的流量 | SPAN/port mirror、network TAP、临时中间桥 | 只开混杂模式通常不够 |
| 做时序、丢包、合规或故障基线分析 | 优先考虑 TAP | SPAN 可能丢帧、改时序或不转发坏帧 |
| 看 VLAN tag | 物理 trunk 链路、合适的 SPAN 配置或 TAP | 网卡、驱动或交换机镜像端口可能剥离 tag |
普通情况下,Ethernet 网卡会把以下帧交给主机:
混杂模式会关闭网卡层面的部分过滤,使它把“已经收到”的更多帧交给抓包程序。但在交换式 Ethernet 中,如果交换机没有把某个单播帧转发到抓包端口,网卡根本收不到它,混杂模式也无能为力。
早期共享介质或真正的 hub 会让同一网段上的所有节点都看到所有帧。在这种环境下,混杂模式通常足以抓到该共享段上的流量。
现代 Ethernet 通常通过交换机连接。交换机会学习 MAC 地址与端口的对应关系,只把单播帧转发到目标端口;广播和组播则按交换机策略泛洪或转发。因此,在交换网络里要抓“别的两台设备之间”的单播流量,必须改变抓包位置或交换机转发方式。
最简单的办法是在你关心的主机上直接运行 Wireshark、TShark 或 dumpcap。
把旧式 hub 插入目标链路,可以让抓包机看到该共享段上的帧。
双速 10/100 Mb hub 还可能不会在不同速率端口之间转发单播流量,因此抓包机速率需要与目标链路匹配。
受管交换机通常可以把一个或多个源端口、VLAN 或方向的流量复制到监控端口。不同厂商叫法不同,例如 port mirroring、port monitoring、Roving Analysis 或 Cisco SPAN。
使用时重点检查:
监控端口带宽必须足够。全双工链路的入向和出向流量被复制到一个出向监控端口时,可能超过监控端口速率而丢包。
有些交换机只能镜像特定端口,不能镜像全交换机流量。
高端交换机可能把监控端口设为专用只出端口;低端设备可能仍允许该端口正常参与网络。
VLAN tag 是否保留取决于交换机配置;例如某些设备需要把镜像端口配置为 trunk 才能保留 tag。
优点:无需中断生产链路,启停灵活。
缺点:高流量下可能丢包;可能不复制坏帧、过长/过短帧;时序可能被改变;VLAN tag 可能被剥离。
一台有两块 NIC 的机器可以放在目标链路中间,配置为桥接并在其中一块接口上抓包。Linux 可使用桥接工具,BSD 系统也有对应桥接机制。
Network TAP 是插入链路的专用硬件,常见类型包括 breakout TAP、aggregation TAP、replicating TAP、bypass TAP 和 media changing TAP。
Breakout TAP 通常把全双工链路的两个方向分别输出,因此需要两个捕获接口,或使用能聚合输出的 TAP/采集方案。较旧 Wireshark 版本不能同时从两个接口抓包时,需要分别抓包后再合并文件。
ARP poisoning、MITM 软件和 MAC flooding 可以迫使或诱导交换网络把目标流量经过抓包机,但这些方法会改变网络行为,并可能造成交换机或 LAN 异常。
只应在你拥有并获授权的实验或自有 LAN 中使用。它们不适合作为生产网络的常规抓包方案。
| 对比项 | SPAN / port mirroring | Network TAP |
|---|---|---|
| 部署 | 通常无需断链,配置灵活 | 通常需要插入链路,可能需维护窗口 |
| 高流量完整性 | 可能因复制优先级或端口带宽丢包 | 更适合完整捕获链路流量 |
| 坏帧/异常帧 | 可能不复制 | 更适合观察链路层异常 |
| 时序 | 可能因汇聚两个方向而改变 | 更适合时序敏感分析 |
| VLAN tag | 取决于交换机镜像配置 | 更接近线路上实际帧,但仍要注意采集接口行为 |
| 常见用途 | 日常排查、连接研究、临时观察 | 合规、审计、基线、深度故障分析 |
对多数日常排查,SPAN 足够且更方便;当你需要证明“线上实际经过了什么”、研究坏帧、精确时序或高负载丢包时,应优先考虑 TAP。
如果 Wireshark 没显示 802.1Q VLAN tag,常见原因有两个:
处理思路:先确认抓包位置是否在带 tag 的链路上,再检查交换机镜像配置,最后检查网卡和驱动是否会剥离 tag。更详细的平台差异见 CaptureSetup/VLAN。
Imported from https://wiki.wireshark.org/CaptureSetup/Ethernet on 2020-08-11 23:11:53 UTC








