首页/网络/抓包与流量分析速查/Wireshark 过滤 ARP 操作码
Wireshark 技巧75 条

Wireshark 过滤 ARP 操作码

arp.opcode == 1 是请求、==2 是应答;配合 arp.src.proto_ipv4 可定位"谁在问谁的 MAC",排查网关地址冲突与免费 ARP。

过滤 ARP 操作码

ARP 报文里的操作码表示这是一次请求还是一次应答:1 是请求,2 是应答。配合发送方与目标地址字段,可以清楚回答「谁在问谁的地址」以及「谁应答了」。网关地址冲突、免费 ARP 引发的地址漂移,都要靠这几个字段来定位。

基本信息

适用平台Wireshark(arp 协议解析)
过滤语法arp.opcode == 1(请求)、arp.opcode == 2(应答)
关键字段arp.src.proto_ipv4、arp.dst.proto_ipv4
协议依据RFC 826(ARP)

典型使用场景

  • 排查网关冲突:看同一个地址是否有两个不同来源的应答
  • 识别地址迁移:设备迁移时会发出免费 ARP 通告自身地址
  • 检查探测行为:地址冲突检测会发送不期待应答的请求
  • 统计广播占比:请求属于广播,数量异常说明缓存或子网有问题
  • 与本地表对照:抓包结果与本地地址表互相印证

常用示例

常用示例
arp.opcode == 1 && arp.dst.proto_ipv4 == 10.0.0.1   # 谁在询问网关地址
arp.opcode == 2                                      # 全部应答
arp.src.proto_ipv4 == 10.0.0.5 && arp.opcode == 2     # 某地址的应答来源

操作码与字段

字段取值含义
操作码1请求
操作码2应答
发送方协议地址任意地址请求方自身的地址
目标协议地址任意地址希望查询的地址
免费 ARP 是发送方把自身地址主动通告出去,主机迁移、地址冲突检测与冗余切换时都会出现。抓到它不一定代表故障,要结合实际可用性判断。
同一个地址出现两个不同来源的应答时,要同时看时间与端口,才能区分这是迁移过程中的短暂重叠,还是真正的地址冲突。
本地地址表会缓存解析结果,从而掩盖已经发生的冲突。抓包结果要与本地地址表对照着看,才能发现缓存里保存的是旧值。
ARP 只在同一个广播域内传播,抓到网关的地址解析并不代表跨网段通信的真实路径。排查跨网段问题时应改用 IP 层字段来筛选。

易错点

  • 同一 IP 对应两个不同 MAC 应答时需要同时看时间与端口,判断是迁移还是冲突
  • ARP 表缓存会掩盖问题:抓包与本地地址表状态对照看
  • 把免费 ARP 直接当成异常:迁移与冗余切换都会产生,需结合实际可用性
  • 请求本身是广播,只看请求数量会把正常的高频刷新误判成广播风暴

数据来源与参考

  • Wireshark 显示过滤器参考(arp.opcode)
  • RFC 826(ARP)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌