首页/网络/网络排障速查/ARP 表异常排查:表满、抖动与怀疑欺骗
连通性与链路检测54 条

ARP 表异常排查:表满、抖动与怀疑欺骗

ARP 表异常增长的典型信号:条目飙涨、同一 IP 对应 MAC 频繁变化、网关 MAC 变了;先区分环路/扫描/欺骗,再谈处置。

网络排障速查网络更新于 2026-10-13

ARP 表异常是什么

ARP 表异常增长有三个典型信号:条目数量飙涨、同一 IP 对应的 MAC 频繁变化、网关 MAC 突然改变。先别急着定性为 ARP 欺骗——MAC 变化也可能是合法的 VIP 漂移(VRRP/Keepalived 主备切换);条目暴涨则可能是大二层环路、地址扫描或配置错误导致的广播放大。区分原因之后再谈处置,方向完全不同。

基本信息

适用平台Linux(ip neigh)与交换机(MAC 地址表)
观察入口ip neigh、/proc/sys/net/ipv4/neigh/*/gc_thresh3、tcpdump arp
常见成因二层环路、地址扫描、ARP 欺骗、VIP 漂移、子网掩码配置错误
关键纪律先确认架构与设计,再定性为攻击

典型使用场景

  • 网络突然变慢伴随广播量上升:确认是否存在大二层环路
  • 网关地址间歇性不通:判断是否为 VRRP 主备切换造成的 MAC 变化
  • 怀疑地址扫描:观察 ARP 请求的来源是否集中、目标是否遍历整个网段
  • ARP 表容量告警:确认表项是否接近内核上限并评估回收行为
  • 安全事件响应:区分真实欺骗与正常冗余机制

观察与计数

观察与计数
# 条目数量级
ip neigh | wc -l
# 找出重复出现的 IP,即同一 IP 有多个 MAC
ip neigh | awk '{print $1}' | sort | uniq -d | head
# 观察某条记录是否频繁变化
watch -n2 'ip neigh show dev eth0 | head -20'
# 查看该接口的邻居表容量上限
cat /proc/sys/net/ipv4/neigh/eth0/gc_thresh3
# 抓 ARP 流量判断规模与来源分布
tcpdump -i eth0 -nn arp -c 200

异常模式对照

观察结果可能成因验证方式
条目数快速接近上限大二层环路或地址扫描抓 ARP 看请求分布与来源
同一 IP 出现多个 MACVIP 漂移或 ARP 欺骗确认是否部署 VRRP/Keepalived
网关 MAC 变化主备切换或欺骗查交换机日志与设备角色
广播帧持续高占比环路或故障网卡在交换机侧看广播抑制与端口流量
MAC 与 IP 的对应关系频繁变化,也可能完全正常:VRRP/Keepalived 的 VIP 在主备切换时必然更换 MAC,先确认架构再定性为攻击,可避免误伤合规变更。
单纯调大邻居表容量不是解决方案:在二层环路场景里,容量调多大都会被瞬间塞满,必须找到环路的成因(如新接入设备未启用 STP、双上联错配)。

易错点

  • 看到网关 MAC 变化就断定被欺骗:忽略 VRRP 主备切换这类正常行为
  • 把扩容 gc_thresh 当作处置手段:环路场景下毫无作用,只是延后症状
  • 只看本机 ARP 表不看交换机 MAC 表:缺少二层视角,环路与漂移难辨
  • 把 ARP 表条目多当成攻击:也可能是子网掩码配置错误造成的同一广播域过大
  • 抓包时过滤条件写错:只看到部分流量,结论建立在残缺数据上

数据来源与参考

  • RFC 826(ARP)
  • Linux 内核文档:neigh 参数(gc_thresh)

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌