排查arp泛洪攻击需用tcpdump快速识别高频、伪造或无响应的arp流量:先统计密度(如30秒超50包)、过滤请求(opcode 1)与异常目标、比对arp缓存一致性,再保存样本供深挖。

排查 ARP 泛洪攻击,关键不是“抓全所有包”,而是快速识别异常高频、伪造或无响应的 ARP 流量。tcpdump 本身不直接标记“攻击”,但配合合理过滤和观察模式,能高效暴露泛洪特征。
确认是否真有泛洪:先看 ARP 流量密度
ARP 泛洪最直观的表现是单位时间内 ARP 包数量远超正常水平(例如每秒几十上百个请求)。可先粗略统计:
- 实时计数:运行 sudo tcpdump -i eth0 -c 30 arp,30 秒内若捕获到大量(如 >50)ARP 包,尤其集中在同一源 IP/MAC 或广播请求,需警惕
- 持续观察速率:用 sudo tcpdump -i eth0 -n -q arp | head -20 查看前 20 条,注意时间戳间隔——若多条 ARP 请求间隔仅毫秒级,且源 MAC 频繁变化或固定为可疑地址,即为典型泛洪迹象
定位异常源:过滤高频率或伪造的 ARP 请求
泛洪通常由单一设备发起大量 ARP 请求(尤其是对不存在或非本网段 IP 的请求),或伪造网关/服务器响应。重点过滤:
Linux 性能分析与调优专家,覆盖 CPU、内存、磁盘 I/O、网络、内核参数、编译优化、容器/K8s。适用场景:系统卡顿/高负载、内存不足/OOM/Swap 高、CPU 异常/iowait 高。
- 只看 ARP 请求(opcode 1):用 sudo tcpdump -i eth0 -e -n -vv arp and 'arp[6:2] == 1',-e 显示 MAC,-vv 显示操作码;正常网络中请求应零星出现,泛洪时会密集刷屏
- 检查请求目标是否异常:比如对私有网段外 IP(如 8.8.8.8)发 ARP,或对大量不同 IP 发请求:sudo tcpdump -i eth0 -n arp | grep "who-has" | head -10,观察目标 IP 是否杂乱无章
- 排查伪造网关响应:若怀疑某设备冒充网关(如 192.168.1.1),运行 sudo tcpdump -i eth0 -e -n arp and 'arp[6:2] == 2' and 'arp[24:4] == 0xc0a80101'(十六进制对应 192.168.1.1),看是否有非网关 MAC 频繁发送该响应
比对缓存与实际流量:验证 ARP 行为一致性
泛洪常伴随 ARP 缓存混乱。需交叉验证:
- 执行 arp -n 查看当前缓存,记下网关 IP 对应的 MAC 地址
- 立即用 sudo tcpdump -i eth0 -e -n arp and host 抓取与该 IP 相关的所有 ARP 包,观察是否频繁收到不同 MAC 发来的“is-at”响应——若有,说明存在 ARP 欺骗式泛洪
- 若发现缓存中 MAC 与抓包中最新响应 MAC 不一致,基本可判定正遭受主动伪造攻击
辅助判断:保存样本供离线深挖
确认异常后,保存原始流量用于进一步分析(如用 Wireshark 看时间分布、源 MAC 行为):
- 限速保存:sudo tcpdump -i eth0 -w arp_flood.pcap -c 200 arp(抓 200 个 ARP 包)
- 增强信息保存:sudo tcpdump -i eth0 -e -n -vv -w arp_detailed.pcap arp,含 MAC 和操作码,方便在 Wireshark 中按 “arp.opcode == 1” 过滤并统计源 IP 出现频次










