第111篇:ARP 欺骗攻击与 DAI(Dynamic ARP Inspection)

关键词

ARP 欺骗、DAI、Dynamic ARP Inspection、中间人攻击、DHCP Snooping、ARP 检测


一、ARP 欺骗的原理

1.1 ARP 协议的缺陷

ARP(Address Resolution Protocol)是一个非常"信任"的协议——收到 ARP 应答时,不做任何验证就直接更新 ARP 缓存

PC-A (192.168.1.10) 的 ARP 缓存:
  192.168.1.1 (网关) → MAC: 00-11-22-33-44-55(合法网关 MAC)

攻击者(192.168.1.100)发送伪造的 ARP 应答:
  192.168.1.1 (网关) → MAC: AA-BB-CC-DD-EE-FF(攻击者 MAC)

PC-A 收到后无条件更新 ARP 缓存:
  192.168.1.1 (网关) → MAC: AA-BB-CC-DD-EE-FF(被篡改!)

1.2 攻击类型

攻击类型 手法 后果
中间人攻击(MITM) 假冒网关 IP,同时攻击网关和主机 攻击者可以截获所有流量
ARP Flooding 发送大量伪造 ARP 报文 交换机 CPU 高,MAC 表震荡
网关仿冒 假冒网关 IP 发送 ARP 所有主机的流量发往攻击者
IP 冲突 声明某 IP 的 MAC 为自己 受害主机无法通信

1.3 MITM 攻击图示

正常通信:
  PC-A ──────────── 网关 ──── Internet
  (192.168.1.10)    (192.168.1.1)

MITM 攻击:
  PC-A ────── 攻击者 ────── 网关 ──── Internet
  (被骗发送给攻击者)  (转发给网关)

攻击者可窃听/篡改所有流量!

二、DAI(Dynamic ARP Inspection)原理

2.1 DAI 的作用

DAI 在交换机上拦截所有 ARP 报文,与 DHCP Snooping 绑定表进行比对:

ARP 报文 ──► DAI 检查
               │
          ┌────┴────┐
          │ 比对      │
          │ 绑定表    │
          └────┬────┘
               │
     ┌─────────┴─────────┐
     │                   │
  IP+MAC+PVID 匹配    不匹配
     │                   │
  正常转发            丢弃 + 日志

2.2 检查规则

检查项目 说明 匹配来源
源 MAC ARP 报文中的 Sender MAC 与帧源 MAC 一致 DHCP Snooping 绑定表
源 IP ARP 中 Sender IP 与绑定表中的 IP 一致 DHCP Snooping 绑定表
端口 ARP 从绑定表记录的端口收到 DHCP Snooping 绑定表

2.3 DAI 的信任/非信任端口

与 DHCP Snooping 类似,DAI 也使用 Trust/Untrust 机制:

端口类型 DAI 行为
Trust 不检查 ARP 报文,直接转发(上联口、网关端口)
Untrust 检查 ARP 报文,不符合绑定表的丢弃

三、配置 DAI

3.1 前提:启用 DHCP Snooping

DAI 必须依赖 DHCP Snooping 的绑定表:

dhcp enable
dhcp snooping enable

vlan 10
 dhcp snooping enable

interface GigabitEthernet0/0/24
 dhcp snooping trusted

3.2 在 VLAN 中启用 DAI

# 在 VLAN 10 中启用 ARP 检测
vlan 10
 arp anti-attack check user-bind enable

# 或将以下配置接口级使用:
interface GigabitEthernet0/0/1
 arp trusted           # 配置为 Trust 端口(不检查 ARP)
 arp anti-attack check user-bind enable  # 启用 ARP 检测

3.3 完整配置示例

# ===== 1. 启用 DHCP Snooping =====
dhcp enable
dhcp snooping enable
vlan 10
 dhcp snooping enable

# ===== 2. 配置 Trust 端口(连接网关/DHCP 服务器)=====
interface Vlanif10
 ip address 192.168.1.1 255.255.255.0

interface GigabitEthernet0/0/24
 dhcp snooping trusted
 arp trusted

# ===== 3. 在 VLAN 10 启用 DAI =====
vlan 10
 arp anti-attack check user-bind enable

# ===== 4. 配置日志记录 =====
arp anti-attack log enable

3.4 验证 DAI 状态

# 查看 DAI 配置
display arp anti-attack configuration
-----------------------------------------------
VLAN    Check Item          Trust Ports
10      ip, mac             GE0/0/24

# 查看 DAI 丢弃统计
display arp anti-attack statistics
-----------------------------------------------
VLAN    Discard ARP packets
10      1567               ← 丢弃了大量非法 ARP

# 查看 DHCP Snooping 绑定表(DAI 的检查依据)
display dhcp snooping binding

四、实战案例

4.1 案例:校园网 ARP 中间人攻击

现象:某学生宿舍区频繁断网,用户反映上网速度慢,访问银行网站时地址栏显示异常。

排查: 1. 检查 ARP 表 → 发现大量 PC 的网关 MAC 地址异常(不是合法网关 MAC) 2. 在所有交换机关闭 STP 接口保护后检查哪个端口发 ARP 最多 3. display arp anti-attack statistics → 发现 Vlan 100 丢弃大量 ARP 报文 4. 查看丢弃日志 → 定位到某宿舍端口

根因:学生运行了 Cain & Abel 等 ARP 欺骗工具,进行中间人攻击试图窃取密码。

解决方案:在宿舍接入交换机启用 DAI + DHCP Snooping:

vlan 100
 arp anti-attack check user-bind enable

4.2 案例:ARP 泛洪导致核心交换机 CPU 100%

现象:核心交换机 CPU 使用率持续 100%,影响正常路由转发。

排查: 1. display cpu-usage → ARP 进程占用 80% 2. display arp packet statistics → 每秒收到上万 ARP 报文 3. 定位到某接入端口发出大量 ARP 报文

根因:某终端中毒,持续发送伪造 ARP 报文。

解决方案

# 限速:限制 ARP 报文速率
interface GigabitEthernet0/0/1
 arp rate-limit 100     # 限制每秒 100 个 ARP 报文

# 全局 ARP 限速
arp anti-attack packet-rate-limit 2000

五、DAI 与其他安全技术的配合

5.1 DAI + IPSG + DHCP Snooping 组合

DHCP Snooping → 生成 Binding Table
                  ↓
        ┌─────────┴─────────┐
        │                   │
     IP Source Guard    DAI
     (IP 报文过滤)    (ARP 报文过滤)
        │                   │
        └─────────┬─────────┘
                  │
          接入端口的安全防线

5.2 部署建议

安全特性 部署位置 防护目标
DHCP Snooping 接入交换机 防私设 DHCP 服务器
DAI 接入交换机(VLAN 级) 防 ARP 欺骗/中间人攻击
IPSG 接入交换机(端口级) 防 IP 欺骗
ARP 限速 接入端口 防 ARP 泛洪

六、DAI 的局限性

局限性 说明
依赖 DHCP 静态 IP 设备需要手动绑定
仅检查 ARP 不防 IP 报文欺骗(需要 IPSG)
性能开销 大量 ARP 报文时 CPU 负担重
仅防 Untrust 端口 Trust 端口的攻击防不住
无法防 ARP 扫描 攻击者缓慢扫描不触发限速

七、总结

知识点 核心要点
ARP 攻击 利用 ARP 无验证的缺陷,发送伪造 ARP 应答
MITM 攻击者假冒网关截获所有流量
DAI 原理 用 DHCP Snooping 绑定表校验 ARP 报文的 IP+MAC+端口
Trust/Untrust Trust 端口跳过检查(上联),Untrust 严格检查(下行)
组合部署 DAI + DHCP Snooping + IPSG 三层防护
辅助手段 ARP 限速、ARP 日志

八、思考

  1. ARP 协议为什么容易被欺骗?它缺少什么安全机制?
  2. DAI 如何判断一个 ARP 报文是合法的?
  3. 如果 DAI 和 DHCP Snooping 没有同时启用,会有什么后果?
  4. 为什么网关端口必须配置为 ARP Trust?
  5. 一台服务器使用静态 IP,如何让它通过 DAI 检查?(提示:静态绑定)

下篇预告:第112篇《端口安全——MAC 地址绑定与 Sticky MAC》——讲解如何通过端口安全技术限制接入设备的 MAC 地址,防止非法设备接入网络。