Skip to content
Wireshark Wiki 中文翻译整理专题首页原始页面

Ethernet 抓包设置 ​

Ethernet 抓包要先确定“抓包机器能不能实际收到目标帧”。Wireshark 或 TShark 只能分析已经到达抓包接口的数据;把网卡设为混杂模式,只是让网卡把收到的更多帧交给主机,并不会让交换机把别的端口流量自动送过来。

适用场景:排查有线以太网中的主机通信、交换网络链路、端口镜像、TAP 或中间桥接抓包。不要把它和 loopback 抓包混淆;同一台机器内部进程之间的本机回环流量,应在 loopback 接口上抓。

先判断抓包位置 ​

目标推荐位置关键限制
只看本机收发流量在本机对应 Ethernet 接口抓包通常不需要特殊设置;如果是本机到本机流量,改看 loopback
看某台服务器的所有进出流量在服务器本机抓,或镜像/TAP 服务器所在链路本机抓不到交换机其他端口的无关单播流量
看交换机上两台设备之间的流量SPAN/port mirror、network TAP、临时中间桥只开混杂模式通常不够
做时序、丢包、合规或故障基线分析优先考虑 TAPSPAN 可能丢帧、改时序或不转发坏帧
看 VLAN tag物理 trunk 链路、合适的 SPAN 配置或 TAP网卡、驱动或交换机镜像端口可能剥离 tag

网卡实际会交给主机哪些帧 ​

普通情况下,Ethernet 网卡会把以下帧交给主机:

  • 发往该网卡 MAC 地址的单播帧。
  • 该主机订阅的组播帧,或部分网卡交付的所有组播帧。
  • 广播帧。
  • 主机自己发送帧的副本,通常由驱动或捕获机制提供。

混杂模式会关闭网卡层面的部分过滤,使它把“已经收到”的更多帧交给抓包程序。但在交换式 Ethernet 中,如果交换机没有把某个单播帧转发到抓包端口,网卡根本收不到它,混杂模式也无能为力。

共享式 Ethernet 与交换式 Ethernet ​

早期共享介质或真正的 hub 会让同一网段上的所有节点都看到所有帧。在这种环境下,混杂模式通常足以抓到该共享段上的流量。

现代 Ethernet 通常通过交换机连接。交换机会学习 MAC 地址与端口的对应关系,只把单播帧转发到目标端口;广播和组播则按交换机策略泛洪或转发。因此,在交换网络里要抓“别的两台设备之间”的单播流量,必须改变抓包位置或交换机转发方式。

交换网络中的常见抓包方案 ​

1. 在目标主机上抓包 ​

最简单的办法是在你关心的主机上直接运行 Wireshark、TShark 或 dumpcap。

  • 优点:改动小,能看到该主机协议栈实际收发的流量。
  • 缺点:看不到其他主机之间的流量;本机卸载、VLAN tag 剥离等行为可能影响可见内容。

2. 使用真正的 Ethernet hub ​

把旧式 hub 插入目标链路,可以让抓包机看到该共享段上的帧。

  • 优点:概念简单。
  • 缺点:真正的 hub 已不常见;插拔会中断链路;可能影响全双工 Ethernet 性能;有些标称“hub”的设备实际是 switching hub,并不能达到目的。

双速 10/100 Mb hub 还可能不会在不同速率端口之间转发单播流量,因此抓包机速率需要与目标链路匹配。

3. 使用交换机 monitor mode / port mirroring / SPAN ​

受管交换机通常可以把一个或多个源端口、VLAN 或方向的流量复制到监控端口。不同厂商叫法不同,例如 port mirroring、port monitoring、Roving Analysis 或 Cisco SPAN。

使用时重点检查:

  • 监控端口带宽必须足够。全双工链路的入向和出向流量被复制到一个出向监控端口时,可能超过监控端口速率而丢包。

  • 有些交换机只能镜像特定端口,不能镜像全交换机流量。

  • 高端交换机可能把监控端口设为专用只出端口;低端设备可能仍允许该端口正常参与网络。

  • VLAN tag 是否保留取决于交换机配置;例如某些设备需要把镜像端口配置为 trunk 才能保留 tag。

  • 优点:无需中断生产链路,启停灵活。

  • 缺点:高流量下可能丢包;可能不复制坏帧、过长/过短帧;时序可能被改变;VLAN tag 可能被剥离。

4. 使用中间机器做透明桥 ​

一台有两块 NIC 的机器可以放在目标链路中间,配置为桥接并在其中一块接口上抓包。Linux 可使用桥接工具,BSD 系统也有对应桥接机制。

  • 优点:不必修改被监控主机,硬件容易获得。
  • 缺点:需要插入链路并配置专用机器;会带来少量延迟;桥本身可能响应部分广播。

5. 使用 network TAP ​

Network TAP 是插入链路的专用硬件,常见类型包括 breakout TAP、aggregation TAP、replicating TAP、bypass TAP 和 media changing TAP。

Breakout TAP 通常把全双工链路的两个方向分别输出,因此需要两个捕获接口,或使用能聚合输出的 TAP/采集方案。较旧 Wireshark 版本不能同时从两个接口抓包时,需要分别抓包后再合并文件。

  • 优点:适合完整捕获全双工流量;对生产转发影响较小;比 SPAN 更适合基线、合规、审计和时序敏感分析。
  • 缺点:成本较高;安装通常需要插入链路;某些 TAP 上电或断电状态需要提前测试。

6. MITM 与 MAC flooding ​

ARP poisoning、MITM 软件和 MAC flooding 可以迫使或诱导交换网络把目标流量经过抓包机,但这些方法会改变网络行为,并可能造成交换机或 LAN 异常。

只应在你拥有并获授权的实验或自有 LAN 中使用。它们不适合作为生产网络的常规抓包方案。

SPAN 与 TAP 怎么选 ​

对比项SPAN / port mirroringNetwork TAP
部署通常无需断链,配置灵活通常需要插入链路,可能需维护窗口
高流量完整性可能因复制优先级或端口带宽丢包更适合完整捕获链路流量
坏帧/异常帧可能不复制更适合观察链路层异常
时序可能因汇聚两个方向而改变更适合时序敏感分析
VLAN tag取决于交换机镜像配置更接近线路上实际帧,但仍要注意采集接口行为
常见用途日常排查、连接研究、临时观察合规、审计、基线、深度故障分析

对多数日常排查,SPAN 足够且更方便;当你需要证明“线上实际经过了什么”、研究坏帧、精确时序或高负载丢包时,应优先考虑 TAP。

VLAN tag 可见性 ​

如果 Wireshark 没显示 802.1Q VLAN tag,常见原因有两个:

  1. 交换机在镜像端口上剥离了 tag,或镜像端口未按 trunk/保留 tag 的方式配置。
  2. 网卡或驱动在把帧交给抓包程序前剥离了 VLAN tag。

处理思路:先确认抓包位置是否在带 tag 的链路上,再检查交换机镜像配置,最后检查网卡和驱动是否会剥离 tag。更详细的平台差异见 CaptureSetup/VLAN。

相关页面 ​

Imported from https://wiki.wireshark.org/CaptureSetup/Ethernet on 2020-08-11 23:11:53 UTC

原始页面图片 ​

Capture-shared-hub-ws.png
Capture-shared-hub-ws.png
Capture-switch-problem-ws.png
Capture-switch-problem-ws.png
Capture-switch-same-computer-ws.png
Capture-switch-same-computer-ws.png
Capture-switch-hub-ws.png
Capture-switch-hub-ws.png
Capture-switch-monitor-port-ws.png
Capture-switch-monitor-port-ws.png
Capture-switch-mitm-2NIC-ws.png
Capture-switch-mitm-2NIC-ws.png
Capture-switch-tap-ws.png
Capture-switch-tap-ws.png
Capture-switch-mitm-ws.png
Capture-switch-mitm-ws.png
Capture-switch-mac-flooding-ws.png
Capture-switch-mac-flooding-ws.png

相关 Wireshark Wiki 页面 ​

网络分析技术档案