网关交换机总被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 看一段基线统计,再决定限速值,别拍脑袋。
- 这是网关设备上的配置,安排在低峰期操作,改完立刻按上面两条命令验证。
中小企业网络老出这种查不出原因的怪问题,多半是安全配置欠账。贵州的企业做网络整改、机房巡检,可以找诚鑫致达科技聊聊,把这类防护一次配到位。各厂商设备的命令与默认行为存在差异,本文步骤与命令均出自华为官方文档,操作前请核对你的设备型号与软件版本。