网关交换机总被ARP攻击打满CPU?华为这套ARP安全配置照抄就能用

网络一到下午就集体卡顿,ping 网关时通时断,登录交换机一看 CPU 占用居高不下——十有八九是遇上了 ARP 攻击。ARP 攻击常见的有三路:有人仿冒网关骗走流量;有人狂发目的地址不可达的报文,触发交换机产生大量 ARP Miss 消息,把 CPU 拖垮还白白消耗带宽;还有人直接 ARP 泛洪,量大管饱。华为 S 系列交换机当网关时,官方文档给了一套组合配置,一条条照抄就能把这三路攻击都堵上。

官方组网长什么样

这是华为官方「配置ARP安全综合功能示例」里的场景:Switch 作为网关,GE1/0/1 接 VLAN10 下的用户、GE1/0/2 接 VLAN20 下的用户、GE1/0/3 连服务器。官方配置思路一共四条:配 ARP 防网关冲突、根据源 IP 地址做 ARP Miss 消息限速、根据源 MAC 地址做 ARP 限速、根据源 IP 地址做 ARP 限速。

怎么配(命令照官方原文抄录)

第1步,创建 VLAN、放行接口并配网关地址(地址均为官方示例值):

<HUAWEI> system-view
[HUAWEI] sysname Switch
[Switch] vlan batch 10 20 30
[Switch] interface gigabitethernet 1/0/1
[Switch-GigabitEthernet1/0/1] port link-type trunk
[Switch-GigabitEthernet1/0/1] port trunk allow-pass vlan 10
[Switch-GigabitEthernet1/0/1] quit
[Switch] interface gigabitethernet 1/0/2
[Switch-GigabitEthernet1/0/2] port link-type trunk
[Switch-GigabitEthernet1/0/2] port trunk allow-pass vlan 20
[Switch-GigabitEthernet1/0/2] quit
[Switch] interface gigabitethernet 1/0/3
[Switch-GigabitEthernet1/0/3] port link-type trunk
[Switch-GigabitEthernet1/0/3] port trunk allow-pass vlan 30
[Switch-GigabitEthernet1/0/3] quit
[Switch] interface vlanif 10
[Switch-Vlanif10] ip address 10.8.8.4 24
[Switch-Vlanif10] quit
[Switch] interface vlanif 20
[Switch-Vlanif20] ip address 10.9.9.4 24
[Switch-Vlanif20] quit
[Switch] interface vlanif 30
[Switch-Vlanif30] ip address 10.10.10.3 24
[Switch-Vlanif30] quit

第2步,使能 ARP 防网关冲突,防住仿冒网关的攻击者:

[Switch] arp anti-attack gateway-duplicate enable  //配置ARP防网关冲突

第3步,根据源 IP 地址做 ARP Miss 消息限速。官方示例里对服务器(10.10.10.2)单独放宽到每秒 40 个,其他源 IP 地址统一限制为每秒 20 个:

[Switch] arp-miss speed-limit source-ip maximum 20  //配置根据源IP地址进行ARP Miss消息限速
[Switch] arp-miss speed-limit source-ip 10.10.10.2 maximum 40  //配置根据源IP地址进行ARP Miss消息限速

第4步,根据源 MAC 地址做 ARP 限速,对 MAC 为 0001-0001-0001 的用户限到每秒 10 个:

[Switch] arp speed-limit source-mac 0001-0001-0001 maximum 10  //配置根据源MAC地址进行ARP限速

第5步,根据源 IP 地址做 ARP 限速,对 10.9.9.2 这个用户限到每秒 10 个:

[Switch] arp speed-limit source-ip 10.9.9.2 maximum 10  //配置根据源IP地址进行ARP限速

配完怎么验证

官方给出两条检查命令(输出节选自官方示例原文)。先看防攻击配置是否都生效:

[Switch] display arp anti-attack configuration all
......
ARP speed-limit for source-MAC configuration:
MAC-address         suppress-rate(pps)(rate=0 means function disabled)
-------------------------------------------------------------------------------
0001-0001-0001      10
Others              0
-------------------------------------------------------------------------------
ARP speed-limit for source-IP configuration:
IP-address          suppress-rate(pps)(rate=0 means function disabled)
-------------------------------------------------------------------------------
10.9.9.2            10
Others              30
-------------------------------------------------------------------------------
ARP miss speed-limit for source-IP configuration:
IP-address          suppress-rate(pps)(rate=0 means function disabled)
-------------------------------------------------------------------------------
10.10.10.2/32       40
Others              20
-------------------------------------------------------------------------------

再看 ARP 报文处理统计,确认限速真的在丢攻击报文:

[Switch] display arp packet statistics
ARP Pkt Received:   sum  8678904
ARP-Miss Msg Received:   sum      183
ARP Learnt Count:   sum     37
ARP Pkt Discard For Limit:   sum      146
ARP Pkt Discard For SpeedLimit:   sum      40529
ARP Pkt Discard For Proxy Suppress:   sum      0
ARP Pkt Discard For Other:   sum  8367601
ARP-Miss Msg Discard For SpeedLimit:   sum      20
ARP-Miss Msg Discard For Other:   sum      104

官方判读标准原文:由显示信息可知,Switch 上产生了 ARP 报文和 ARP Miss 消息丢弃计数,表明 ARP 安全功能已经生效。

几个容易踩的坑

  • 命令里的 MAC 地址、IP 地址、每秒个数全是官方示例值,照抄思路、替换成你网络里的实际值;Others 那一行就是其他所有源的统一兜底限速值。
  • 服务器这类正常高并发的源要单独放宽(官方示例:服务器 40、普通用户 20),不放宽会被误伤。
  • 上线前先用 display arp packet statistics 看一段基线统计,再决定限速值,别拍脑袋。
  • 这是网关设备上的配置,安排在低峰期操作,改完立刻按上面两条命令验证。

中小企业网络老出这种查不出原因的怪问题,多半是安全配置欠账。贵州的企业做网络整改、机房巡检,可以找诚鑫致达科技聊聊,把这类防护一次配到位。各厂商设备的命令与默认行为存在差异,本文步骤与命令均出自华为官方文档,操作前请核对你的设备型号与软件版本。