记一次 ARP 欺骗攻击导致的楼层网络间歇断网

问题背景

公司办公楼 3 楼为市场部和法务部办公区,该楼层通过一台 H3C S5130 接入交换机上联至核心交换机。接入交换机下联约 60 个工位端口和一个会议室的墙插。网络规划为 VLAN 30(192.168.30.0/24),网关为 192.168.30.1,由核心交换机提供 VLAN 间路由。

故障现象

下午 2:30 开始,3 楼多名同事反馈网络间歇性断网。现象非常规律:

  • 每 15-20 分钟触发一次
  • 断网期间 ping 网关 192.168.30.1 丢包率 80-90%
  • 断网持续 2-3 分钟后自动恢复
  • 恢复后一切正常,直到 15 分钟后再次断网
  • 断网期间可以在本网段内互 ping(同 VLAN 通信正常,跨 VLAN 不通)

典型现象是浏览器页面打不开、企业微信掉线、内网 OA 超时。

排查过程

第一步:基础网络诊断

断网时登录到故障终端检查:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
PS> ipconfig /all
IPv4 Address: 192.168.30.85
Subnet Mask: 255.255.255.0
Default Gateway: 192.168.30.1
DHCP Server: 192.168.30.1

PS> arp -a
Interface: 192.168.30.85 --- 0x16
  Internet Address     Physical Address         Type
  192.168.30.1         00-0c-29-3a-7b-1e       dynamic
  192.168.30.1         8c-53-c3-12-45-8f       dynamic    # 两个不同MAC!

网关 IP 对应了两个不同的 MAC 地址——这是 ARP 欺骗的经典特征!

  • 00-0c-29-3a-7b-1e 是 VMware 虚拟网卡(核心交换机的 MAC)
  • 8c-53-c3-12-45-8f 是小米设备的 OUI(小米公司)

第二步:抓包确认

在接入交换机上做端口镜像,用 Wireshark 在断网期间抓包:

1
2
3
4
filter: arp
Time          Src MAC            Src IP           Dst IP
16:12:15.523  00-0c-29-3a-7b-1e  192.168.30.1    192.168.30.0/24  (正常ARP)
16:12:15.789  8c-53-c3-12-45-8f  192.168.30.1    192.168.30.0/24  (伪造ARP!)

一台小米设备在以 192.168.30.1 的身份广播免费 ARP(Gratuitous ARP),持续宣告"我才是网关"。

第三步:追踪恶意设备

MAC 地址表追踪:

1
2
3
[H3C] display mac-address 8c53-c312-458f
MAC Address      VLAN  Port             State
8c53-c312-458f   30    GigabitEthernet1/0/12   Learned

对应端口为 G1/0/12——会议室墙插。

会议室里发现了一台员工自带的小米路由器。该路由器 WAN 口接入了墙插,LAN 口被用来给手机充电(只插了电源线无网线),但路由器的 DHCP 服务已自动开启。

第四步:分析断网-恢复的循环机制

小米路由器通过 WAN 口从公司 DHCP 获取了 192.168.30.200,但它自身开启了 DHCP 服务且地址池默认为 192.168.30.100-192.168.30.250,发送的 DHCP OFFER 中也包含自己作为网关。

同时,路由器启动了 ARP 代理功能,收到 ARP 请求时会以自己的 MAC 地址应答——于是出现了"双网关 MAC"现象。

为什么是 15 分钟周期?因为 Windows 的 ARP 缓存超时时间默认为 ArpCacheLife = 15 分钟。终端缓存了正版网关的 ARP 后在周期内正常,过期后重新发起 ARP 请求,有概率收到小米的伪造应答,于是切换到"假网关",流量被黑洞。

解决方案

  1. 物理拔除:立即拔掉小米路由器的 WAN 口网线,问题当场恢复。

  2. 交换机端口安全加固

1
2
3
4
[H3C] interface GigabitEthernet1/0/12
[H3C-GigabitEthernet1/0/12] port-security enable
[H3C-GigabitEthernet1/0/12] port-security max-mac-count 1
[H3C-GigabitEthernet1/0/12] port-security port-mode autolearn
  1. 全局开启 DHCP Snooping + DAI(Dynamic ARP Inspection):
1
2
3
4
[H3C] dhcp snooping enable
[H3C] interface GigabitEthernet1/0/1 to GigabitEthernet1/0/48
[H3C-range] dhcp snooping trust          # 上联口设trust
[H3C-range] arp detection enable         # 开启ARP检测

根因分析

直接原因:员工自带的小米路由器接入公司网络后,其内置 DHCP 服务和 ARP 代理功能干扰了正常网络通信,终端随机获取到假网关的 MAC 地址。

深层原因:

  • 接入交换机未启用端口安全,任何设备插上就能通信
  • 未部署 DHCP Snooping,无法阻止非法 DHCP 服务器
  • 未部署 ARP 防护(DAI),无法过滤伪造的 ARP 报文
  • 缺少"禁止私接网络设备"的行政管理制度

预防措施

  1. 技术层面
    • 全交换机启用 DHCP Snooping + DAI + IP Source Guard
    • 接入端口绑定端口安全(max-mac-count=1)
    • 802.1X 准入控制,陌生设备无法获取网络访问权限
  2. 管理层面
    • 发布《办公网络安全管理规定》,明确禁止私接路由器、随身WiFi等设备
    • 新员工入职时签署网络安全承诺书
  3. 监控告警
    • 监控交换机日志中的 MAC flapping 和 duplicate IP 事件
    • ARP 表异常变动触发告警

总结

一个价值 99 元的小米路由器,差点瘫痪了整个楼层的网络。“自带设备"是办公网络中最大的不可控因素。ARP 欺骗不是只有黑客才会做,很多时候一个同事的无心之举就能造成同等级别的破坏。从源头上看,只要开启 DHCP Snooping + DAI + 端口安全这"三件套”,99% 的类似事件都可以在接入层被扼杀在摇篮里。

使用 Hugo 构建
主题 StackJimmy 设计