子网arp缓存中毒是局域网内同一广播域的攻击行为,需先确认通信双方属同一子网,再检查arp缓存异常映射、捕获伪造arp报文,最后通过清空缓存、静态绑定或端口隔离处置。

子网ARP缓存中毒不是跨子网问题,而是局域网内攻击行为。它发生在同一广播域(即同一子网)中,因此排查必须聚焦在本地子网设备、网关行为和ARP表状态上,不能误入路由或跨网段逻辑。
确认是否在同一子网内通信
ARP缓存中毒只影响二层可达的同子网设备。先验证故障主机与目标(如网关、其他终端)是否真属同一子网:
- 用 ipconfig(Windows)或 ifconfig / ip a(Linux)查看本机IP和子网掩码
- 计算网络地址:将IP与掩码做按位与运算,得出本网段号
- 对比目标IP(如网关192.168.1.1)是否落在同一网络地址范围内;若不在,说明通信本就不走ARP,而是发给网关——此时中毒可能性极低,应查路由或网关本身
检查本地ARP缓存是否存在异常映射
中毒的核心表现是“正确IP对应了错误MAC”。需人工比对关键条目:
- 执行 arp -a(Windows)或 arp -n(Linux),重点关注网关IP(如192.168.1.1)和邻近终端IP的MAC地址
- 手动获取真实网关MAC:登录路由器后台,或在另一台可信设备上执行arp -a后交叉核对
- 发现网关IP映射到非预期MAC(如不是路由器标称MAC,也不是已知终端MAC),高度疑似中毒
- 注意动态条目Age值:若频繁刷新或长期不老化,可能是攻击者持续发送伪造ARP响应
监听ARP流量识别伪造报文
仅看缓存不够,需捕获实时ARP交互确认异常来源:
- 用Wireshark过滤 arp,开启混杂模式抓包
- 观察是否有大量ARP Reply(非请求触发的单播应答),尤其来自非网关IP却声称自己是网关
- 检查ARP Request中源MAC是否与已知设备不符;是否存在 Gratuitous ARP(免费ARP)广播,且源IP为网关但MAC异常
- 若发现某台内网主机(如192.168.1.50)频繁发送“192.168.1.1 is at xx:xx:xx:xx:xx:xx”,而该MAC不属于路由器,则锁定该主机为攻击源
临时隔离与验证修复效果
排查后需快速验证并阻断影响:
- 清空ARP缓存:arp -d *(Windows)或 ip neigh flush all(Linux),观察是否短暂恢复后又中毒
- 静态绑定网关MAC:arp -s 192.168.1.1 aa-bb-cc-dd-ee-ff,可防缓存被覆盖(仅临时应急)
- 关闭可疑终端网络,或在交换机端口禁用其MAC;重启网关设备也能清除全网错误缓存
- 启用交换机端口安全(Port Security)或DAI(动态ARP检测),从基础设施层拦截非法ARP











