当设备遭受攻击时,通常伴随着如下现象:
- 用户无法获取ARP;
- 设备CPU占用率高;
- 用户上线成功率较低;
- 用户无法访问网络;
- 严重时可能导致设备上所有用户都无法正常访问网络。
当大量用户或固定某个端口下的所有用户出现上述现象时,可以先通过如下定位手段分析是否为攻击问题。
步骤1
在任意视图下执行命令display cpu-usage查看设备CPU占用率的统计信息,CPU Usage表示的是CPU占用率,TaskName表示的是设备当前正在运行的任务名称。
<HUAWEI> display cpu-usage
CPU Usage Stat. Cycle: 60 (Second)
CPU Usage : 78% Max: 94%
CPU Usage Stat. Time : 2017-06-19 15:18:54
CPU utilization for five seconds: 11%: one minute: 11%: five minutes: 11%
Max CPU Usage Stat. Time : 2017-06-06 14:57:05.
TaskName CPU Runtime(CPU Tick High/Tick Low) Task Explanation
VIDL 22% e/eb7733fe DOPRA IDLE
OS 8% 1/57529fff Operation System
bcmRX 20% 0/ 17a14c bcmRX
FTS 20% 0/ ff707 FTS
SOCK 20% 0/ 26ac89 SOCKPacket sched
ule and process
VPR 0% 0/ 16e3600 VPR VP Receive
……
如果CPU占用率持续较高,并且bcmRX、FTS、SOCK或者VPR任务的CPU占用率高于其他任务(bcmRX、FTS、SOCK、VPR指的是报文接收和发送类任务,通常协议报文攻击会导致这些任务的CPU占用率过高),则较大可能是收到的报文过多,接下来需要执行步骤2继续判断设备收到的报文类型。
一般情况下,交换机长时间运行时CPU占用率不超过80%,短时间内CPU占用率不超过95%,可认为交换机状态是正常的。
步骤2
首先在用户视图下执行命令reset cpu-defend statistics all清除上送CPU的报文统计计数,然后在任意视图下执行命令display cpu-defend statistics all查看Drop(Packet/Byte)字段,判断是否存在过多CPU来不及处理而丢弃的协议报文。
该命令可以查看多次,比如1秒执行一次,查看多次执行的结果。如果Drop(Packet/Byte)字段的计数增加很快(比如间隔1秒钟丢弃上百个),接下来需要查看现网设备是否放大了相关协议的CPCAR值。
执行命令display cpu-defend policy policy-name查看防攻击策略列表信息(此处以arp-miss协议报文为例),下述回显中的Car packet-type arp-miss : CIR(256) CBS(48128)说明arp-miss协议的CPCAR值放大到了256。
<HUAWEI> display cpu-defend policy test
Related slot : <0,mcu>
Configuration :
Car packet-type arp-miss : CIR(256) CBS(48128)
如果回显如下所示,说明没有放大协议报文的CPCAR值。
<HUAWEI> display cpu-defend policy test
Related slot : <0>
Configuration :
如果现网设备放大了CPCAR值,请评估现网业务是否需要放大CPCAR值,如果确实需要放大,请考虑进行扩容或者更换设备。如果不需要放大CPCAR值,请根据业务需求调小CPCAR值。调整CPCAR不当将会影响网络业务,如果需要调整CPCAR,建议联系技术支持人员处理。
如果没有调整CPCAR值,就基本可以确定现网存在攻击。根据丢包的协议,采用相关防攻击措施。
<HUAWEI> display cpu-defend statistics all
Statistics on mainboard:
--------------------------------------------------------------------------------
Packet Type Pass(Packet/Byte) Drop(Packet/Byte) Last-dropping-time
--------------------------------------------------------------------------------
arp-mff 0 0 -
0 0
arp-miss 0 0 -
0 0
arp-reply 0 0 -
0 0
arp-request 8423 1284 2017-05-10 14:23:10
V200R003版本以及之后版本支持端口防攻击功能,缺省情况下,端口防攻击功能是默认使能的,端口防攻击支持防范的报文类型为ARP Request、ARP Reply、DHCP、ICMP、IGMP和IP分片报文。
支持端口防攻击功能后,如果端口上发生了攻击,通过display cpu-defend statistics all命令中是查看不到arp-reply、arp-request、dhcp、icmp、igmp有Drop计数的,所以对于V200R003版本以及之后版本,还需要继续执行步骤3进一步确认丢包协议。
步骤3
首先在诊断视图下执行命令reset auto-port-defend statistics清除端口防攻击报文统计信息,然后在诊断视图中执行命令display auto-port-defend statistics [ slot slot-id ] 查看Drop(Packet/Byte)字段的增长情况。
该命令可以查看多次,比如1秒执行一次,查看多次执行的结果。如果Drop(Packet/Byte)字段的计数增加很快(比如间隔1秒钟丢弃上百个),基本可以确定现网受到攻击。
[HUAWEI-diagnose] display auto-port-defend statistics
Statistics on MPU:
--------------------------------------------------------------------------------
Protocol Vlan Queue Cir(Kbps) Pass(Packet/Byte) Drop(Packet/Byte)
--------------------------------------------------------------------------------
arp-request NA 2 256 0 0
NA NA
arp-reply NA 2 256 0 0
NA NA
dhcp NA 2 1024 0 0
NA NA
igmp NA 2 768 0 0
NA NA
icmp NA 2 256 23095 3
NA NA
--------------------------------------------------------------------------------
对于历史上曾经触发过端口防攻击也可以通过日志来确定。日志格式如下,其中AttackProtocol表示的是攻击报文的协议类型。
SECE/4/PORT_ATTACK_OCCUR:Auto port-defend started.(SourceAttackInterface=[STRING], AttackProtocol=[STRING])
SECE/6/PORT_ATTACK_END:Auto port-defend stop.(SourceAttackInterface=[STRING], AttackProtocol=[STRING])