本文为转载学习并记录为工具书所用,如有侵权请联系,我将及时删除
转载:http://support.huawei.com/huaweiconnect/enterprise/forum.php?mod=viewthread&tid=410105
目 录
1 S系列交换机攻击处理
1.1 如何确定攻击类型
1.2 根据攻击类型部署防攻击手段
1.2.1 ARP攻击
1.2.1.1 ARP泛洪攻击
1.2.1.2 ARP欺骗攻击
1.2.2 ARP-Miss攻击
1.2.2.1 网段扫描攻击
1.2.3 DHCP攻击
1.2.3.1 DHCP Server仿冒攻击
1.2.3.2 DHCP泛洪攻击
1.2.3.3 DHCP Server服务拒绝攻击
1.2.3.4 DHCP报文误上送
1.2.3.5 DHCP欺骗
1.2.4 ICMP攻击
1.2.5 TTL攻击
1.2.6 TCP攻击
1.2.7 OSPF攻击
1.2.8 TC攻击
1.2.9 SSH/Telnet攻击
1.2.10 VRRP攻击
1.2.11 IGMP攻击
1.2.12 PIM攻击
2 本机防攻击推荐配置
2.1 框式交换机推荐配置
2.2 盒式交换机推荐配置
3 附录
3.1 应用防攻击策略
1 S系列交换机攻击处理
1.1 如何确定攻击类型
当设备遭受攻击时,通常伴随着如下现象:
- 用户无法获取ARP;
- 设备CPU高;
- 用户上线成功率较低;
- 用户无法访问网络;
- 严重时可能导致设备上所有用户都无法正常访问网络。
当大量用户或固定某个端口下的所有用户出现上述现象时,可以先通过如下定位手段分析是否为攻击问题。
步骤 1 执行命令display cpu-usage查看设备CPU占用率的统计信息,CPU Usage表示的是CPU占用率,TaskName表示的是设备当前正在运行的任务名称。
如果CPU利用率持续较高,并且bcmRX、FTS、SOCK或者VPR任务过高(通常协议报文攻击会导致这些任务过高),则较大可能是收到的报文过多,接下来需要执行步骤2继续判断设备收到的报文类型。
一般情况下,交换机长时间运行时CPU占用率不超过80%,短时间内CPU占用率不超过95%,可认为交换机状态是正常的。
步骤 2 执行命令display cpu-defend statistics all查看相关协议是否有CPCAR丢包、丢包是否多,并确认现网设备是否放大相关协议的CPCAR值。如果CPCAR存在大量丢包,就基本可以确认现网存在攻击,根据丢包的协议,采用相关防攻击措施。具体有哪些常见的丢包协议,请参见表1-1。
表1-1 丢包协议以及相应的防攻击部署手段
Packet Type |
可以参考的攻击类型 |
arp-reply、arp-request |
1.2.1 ARP攻击、1.2.8 TC攻击 |
arp-miss |
1.2.2 ARP-Miss攻击 |
dhcp-client、dhcp-server、dhcpv6-reply、dhcpv6-request |
1.2.3 DHCP攻击 |
icmp |
1.2.4 ICMP攻击 |
ttl-expired |
1.2.5 TTL攻击 |
tcp |
1.2.6 TCP攻击 |
ospf |
1.2.7 OSPF攻击 |
ssh、telnet |
1.2.9 SSH/Telnet攻击 |
vrrp |
1.2.10 VRRP攻击 |
igmp |
1.2.11 IGMP攻击 |
pim |
1.2.12 PIM攻击 |
V200R003版本以及之后版本支持端口防攻击功能,对于V200R003版本以及之后版本,有可能存在这样的情况:即使Drop计数不再增长,也是有可能存在攻击的。所以对于V200R003版本以及之后版本,还需要继续执行步骤3进一步确认丢包协议。
步骤 3 可以通过如下两种方式确认。
方法一:在诊断视图中执行命令display auto-port-defend statistics [ slot slot-id ]查看是否有对应协议的丢包。具体有哪些常见的丢包协议,请参见表1-2。
表1-2 丢包协议以及相应的防攻击部署手段
Protocol |
可以参考的攻击类型 |
arp-reply、arp-request |
1.2.1 ARP攻击、1.3.8 TC攻击 |
arp-miss |
1.2.2 ARP-Miss攻击 |
dhcp-client、dhcp-server、dhcpv6-reply、dhcpv6-request |
1.2.3 DHCP攻击 |
icmp |
1.2.4 ICMP攻击 |
ttl-expired |
1.2.5 TTL攻击 |
tcp |
1.2.6 TCP攻击 |
ospf |
1.2.7 OSPF攻击 |
ssh、telnet |
1.2.9 SSH/Telnet攻击 |
vrrp |
1.2.10 VRRP攻击 |
igmp |
1.2.11 IGMP攻击 |
pim |
1.2.12 PIM攻击 |
方法二:对于历史上曾经触发过端口防攻击也可以通过日志来确定。日志格式如下,其中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])
----结束
1.2 根据攻击类型部署防攻击手段
1.2.1 ARP攻击
1.2.1.1 ARP泛洪攻击
攻击简介
如下图所示,局域网中用户通过SwitchA和SwitchB接入连接到Gateway访问Internet。当网络中出现过多的ARP报文时,会导致网关设备CPU负载加重,影响设备正常处理用户的其它业务。另一方面,网络中过多的ARP报文会占用大量的网络带宽,引起网络堵塞,从而影响整个网络通信的正常运行。
现象描述
- 网络设备CPU占有率较高,正常用户不能学习ARP甚至无法上网。
- Ping不通。
- 网络设备不能管理。
定位思路
定位手段 |
命令行 |
适用版本形态 |
查看ARP临时表项 |
display arp |
V100R006C05版本以及之后版本 |
查看arp-request的CPCAR计数 |
display cpu-defend statistics packet-type arp-request all |
V100R006C05版本以及之后版本 |
查看攻击溯源结果 |
display auto-defend attack-source [slot slot-id ] |
V200R003版本以及之后版本 |
步骤 1 执行命令display arp查看受影响用户的ARP是否学习不到。
如果MAC ADDRESS字段显示为Incomplete,表示有ARP学习不到,有可能设备遭受ARP攻击。
步骤 2 由于有未学习到的ARP表项,执行命令display cpu-defend statistics packet-type arp-request all查看上送CPU的ARP-Request报文统计信息,判断设备是否遭受攻击,下述回显发现4号单板上存在大量ARP-Request报文丢包。
该命令可以查看多次,比如1秒执行一次,查看多次执行的结果。如上显示,如果Drop(Packets)计数增加很快,比如1秒钟Drop上百个,这说明设备正在遭受ARP攻击,上送的ARP报文已经超过了设备配置的CPCAR范围,攻击ARP报文可能已经挤掉了正常ARP报文,则部分ARP可能学习不到。
步骤 3 确认攻击源,通过攻击溯源功能识别攻击源。
首先在系统视图下配置防攻击策略:
[HUAWEI] cpu-defend policy policy1 [HUAWEI-cpu-defend-policy-policy1] auto-defend enable [HUAWEI-cpu-defend-policy-policy1] auto-defend attack-packet sample 5 [HUAWEI-cpu-defend-policy-policy1] auto-defend threshold 30 [HUAWEI-cpu-defend-policy-policy1] undo auto-defend trace-type source-portvlan //auto-defend enable后,缺省情况下溯源类型为source-mac、source-ip和source-portvlan,source-portvlan粒度太大,所以去使能source-portvlan [HUAWEI-cpu-defend-policy-policy1] undo auto-defend protocol dhcp icmp igmp tcp telnet ttl-expired udp // auto-defend enable后,缺省情况下攻击溯源的协议类比较多,这里只保留arp报文攻击溯源,如果有其它协议也需要攻击溯源,则不要undo掉
接下来应用防攻击策略policy1,关于防攻击策略的应用,请参见3.1 应用防攻击策略。
最后通过命令display auto-defend attack-source slot 4查看攻击源的MAC地址。
说明:
识别的MAC中可能包含网关的MAC地址或互连网络设备的MAC,需要注意剔除。
步骤 3 确认攻击源,通过攻击溯源功能识别攻击源。
----结束
问题根因
- 由于终端中毒频繁发送大量ARP报文。
- 下挂网络成环产生大量的ARP报文。
处理步骤
步骤 1 在接口下配置ARP表项限制。
设备支持接口下的ARP表项限制,如果接口已经学习到的ARP表项数目超过限制值,系统不再学习新的ARP表项,但不会清除已经学习到的ARP表项,会提示用户删除超出的ARP表项。
配置命令如下:
<HUAWEI> system-view [HUAWEI] interface gigabitethernet 1/0/1 [HUAWEI-GigabitEthernet1/0/1] arp-limit vlan 10 maximum 20
步骤 2 配置针对源IP地址的ARP报文速率抑制的功能。
在一段时间内,如果设备收到某一源IP地址的ARP报文数目超过设定阈值,则不处理超出阈值部分的ARP请求报文。
<HUAWEI> system-view [HUAWEI] arp speed-limit source-ip 10.0.0.1 maximum 50
说明:
缺省情况下,对ARP报文进行时间戳抑制的抑制速率为5pps,即每秒处理5个ARP报文。
步骤 3 根据排查出的攻击源MAC配置黑名单过滤掉攻击源发出的ARP报文。
[HUAWEI] acl 4444 [HUAWEI-acl-L2-4444] rule permit l2-protocol arp source-mac 0-0-1 vlan-id 3 [HUAWEI-acl-L2-4444] quit [HUAWEI] cpu-defend policy policy1 [HUAWEI-cpu-defend-policy-policy1] blacklist 1 acl 4444 [HUAWEI-cpu-defend-policy-policy1] quit
接下来应用防攻击策略policy1,关于防攻击策略的应用,请参见3.1 应用防攻击策略。
步骤 4 如果上述配置无法解决,比如源MAC变化或源IP变化的ARP攻击源来自某台接入设备下挂用户,在接入侧交换机上配置流策略限速,不让该接入侧设备下的用户影响整个网络。
[HUAWEI] acl 4445 [HUAWEI-acl-L2-4445] rule permit l2-protocol arp [HUAWEI-acl-L2-4445] quit [HUAWEI] traffic classifier policy1 [HUAWEI-classifier-policy1] if-match acl 4445 [HUAWEI-classifier-policy1] quit [HUAWEI] traffic behavior policy1 [HUAWEI-behavior-policy1] car cir 32 [HUAWEI] traffic policy policy1 [HUAWEI-trafficpolicy-policy1] classifier policy1 behavior policy1 [HUAWEI] interface GigabitEthernet 1/0/1 [HUAWEI-GigabitEthernet1/0/1] traffic-policy policy1 inbound
----结束
1.2.1.2 ARP欺骗攻击
攻击简介
如图1-2所示,局域网中UserA、UserB、UserC等用户通过Switch接入连接到Gateway访问Internet。
图1-1 ARP欺骗攻击组网
正常情况下,UserA、UserB、UserC上线之后,通过相互之间交互ARP报文,UserA、UserB、UserC和Gateway上都会创建相应的ARP表项。此时,如果有攻击者Attacker通过在广播域内发送伪造的ARP报文,篡改Gateway或者UserA、UserB、UserC上的ARP表项,Attacker可以轻而易举地窃取UserA、UserB、UserC的信息或者阻碍UserA、UserB、UserC正常访问网络。
现象描述
局域网内用户时通时断,无法正常上网。网络设备会经常脱管,网关设备会打印大量地址冲突的告警。
定位思路
定位手段 |
命令行 |
适用版本形态 |
查看日志信息 |
display logbuffer |
V100R006C05版本以及之后版本 |
- 交换机做网关,如果攻击源发送假冒网关的ARP报文经过网关交换机时,报文会上送交换机的CPU处理,交换机在检测到网关冲突的同时记录日志。
执行命令display logbuffer查看日志信息。日志信息如下所示,其中MacAddress代表攻击者的MAC地址。
ARP/4/ARP_DUPLICATE_IPADDR:Received an ARP packet with a duplicate IP address from the interface. (IpAddress=[IPADDR], InterfaceName=[STRING], MacAddress=[STRING])
根据日志信息记录的攻击者的MAC地址查找MAC地址表,从而获取到攻击源所在的端口,通过网络进一步排查,进一步定位出攻击源,查看是否中毒所致。
- 交换机做网关,如果攻击源发送假冒网关的ARP报文不经过网关交换机,直接在交换机的下游转发到用户,则需要在下层网络排查。例如,可以在终端上使用报文解析工具(比如wireshark)解析网关回应的ARP报文,如果解析出来的MAC地址不是网关的MAC地址,则代表终端遭遇攻击,其中解析出来的MAC地址即为攻击者MAC地址。如果解析出来的mac是网关的MAC地址,但是IP不是网关IP,则是模拟网关的MAC攻击,接入交换机上应该会有MAC漂移,根据漂移端口排查攻击源。
问题根因
- 终端中毒。
- 攻击者将主机地址设为网关地址。
处理步骤
方法 |
优点 |
缺点 |
配置黑名单 |
基于黑名单丢弃上送CPU的报文 |
需先查到攻击源 |
配置黑洞MAC |
丢弃该攻击源发的所有报文,包括转发的报文 |
需先查到攻击源 |
配置防网关冲突攻击功能 |
收到具有相同源MAC地址的报文直接丢弃 |
需本设备做网关 |
- 方法一:可以在用户允许的情况下,直接在交换机上配置黑名单过滤攻击源的源MAC地址。
[HUAWEI] acl 4444 [HUAWEI-acl-L2-4444] rule permit l2-protocol arp source-mac 1-1-1 [HUAWEI-acl-L2-4444] quit [HUAWEI] cpu-defend policy policy1 [HUAWEI-cpu-defend-policy-policy1] blacklist 1 acl 4444
接下来应用防攻击策略policy1,关于防攻击策略的应用,请参见3.1 应用防攻击策略。
- 方法二:更严厉的惩罚措施可以将攻击者的MAC配置成黑洞MAC,彻底不让该攻击者上网。
[HUAWEI] mac-address blackhole 1-1-1 vlan 3
- 方法三:可以在交换机上配置防网关冲突功能(该功能要求交换机必须做网关),ARP网关冲突防攻击功能使能后,系统生成ARP防攻击表项,在后续一段时间内对收到具有相同源MAC地址的报文直接丢弃,这样可以防止与网关地址冲突的ARP报文在VLAN内广播。
[HUAWEI] arp anti-attack gateway-duplicate enable
1.2.2 ARP-Miss攻击
1.2.2.1 网段扫描攻击
攻击简介
当交换机需要转发三层报文时,如果目的地址是和其直连的,且在设备上没有目的地址的ARP表项,就会触发一个ARP Miss消息,由设备发送ARP请求到目的地址,以便学习ARP,当学习到ARP后,报文便可以直接转发到目的地址。
大量的网段扫描报文会产生大量的ARP Miss消息,导致交换机的资源浪费在处理ARP Miss消息上,影响交换机对其他业务的处理,形成扫描攻击。
现象描述
当设备遭受ARP Miss消息攻击时,出现设备CPU占有率较高,有大量的临时ARP表项,CPCAR存在ARP Miss丢包,Ping有时延或Ping不通的现象,业务方面会发生用户掉线、用户上网慢、设备脱管、甚至业务中断等现象。
定位思路
定位手段 |
命令行 |
适用版本形态 |
查看CPU-Defend丢包计数 |
display cpu-defend statistics packet-type arp-miss { slot slot-id } |
V100R006C05版本以及之后版本 |
查看ARP临时表项 |
display arp |
V100R006C05版本以及之后版本 |
- 清除上送CPU的ARP Miss报文统计计数。
<HUAWEI> reset cpu-defend statistics packet-type arp-miss all
- 等待1分钟后,查看这段时间内上送CPU的ARP Miss数量。
- 查看设备上是否有大量的ARP临时表项,如果存在大量(大概15个或者15个以上)的MAC ADDRESS字段为Incomplete的临时表项,也可以认为是ARP Miss攻击。
问题根因
设备收到大量的ARP Miss消息常见的原因有两种:
- 存在网段扫描攻击,可以通过获取报文或者通过display arp anti-attack arpmiss-record-info命令来查看攻击源。
- 设备收到TC消息,导致ARP表项老化,设备出现大量的ARP Miss消息。对于TC消息导致的ARP Miss攻击,防范手段参考1.3.8 TC攻击。
处理步骤
方法 |
优点 |
缺点 |
降低ARP Miss消息的CPCAR值 |
可以快速降低报文上送 |
可能正常的ARP Miss消息被误丢弃。 |
设置ARP假表老化时间 |
针对具体目的地址进行抑制,在老化时间内不触发ARP Miss消息 |
要选择合适的老化时间。 |
配置ARP Miss源抑制 |
针对具体源地址进行抑制,在block时间内不上送ARP Miss消息 |
需要配置白名单,防止网络侧的设备被惩罚。 |
配置黑名单丢弃指定攻击源 |
可以基于全局、单板应用,丢弃攻击报文 |
攻击消除后也无法访问设备。 |
- 可以通过调整ARP Miss的CPCAR值来缓解CPU过高问题。
<HUAWEI> system-view [HUAWEI] cpu-defend policy policy1 [HUAWEI-cpu-defend-policy-policy1] car packet-type arp-miss cir 64 [HUAWEI-cpu-defend-policy-policy1] quit [HUAWEI] cpu-defend-policy policy1 global
此方法只能缓解CPU过高问题,但无法解决用户上线慢等问题。
- 可以通过延长ARP假表老化时间来缓解CPU过高问题。当IP报文触发ARP Miss后,交换机会发送ARP请求进行探测,同时生成临时的ARP表项,将后续发送到此IP的数据报文直接丢弃,以免造成对CPU的冲击。当交换机收到ARP回应后,会将此临时的ARP表项修正,如果在规定的时间内未收到ARP回应,则将该临时表项删除,后续的IP报文即可继续触发上述ARP Miss流程。
<HUAWEI> system-view [HUAWEI] interface Vlanif 500 [HUAWEI-Vlanif500] arp-fake expire-time 30 //默认时间为30s
设置过大的假表老化时间,可能会导致ARP学习不实时,进而导致数据流量丢失。
- 配置基于源IP的ARP Miss限速,系统会自动识别超过速率的源IP且会自动下发ACL进行惩罚,默认情况下,所有IP地址的ARP Miss源抑制速率为30pps,默认惩罚时间为5秒。建议对网络侧的地址进行放通,防止被惩罚。
<HUAWEI> system-view [HUAWEI] arp-miss speed-limit source-ip maximum 10 //一个源IP最多产生arp-miss速率为10pps,缺省为30pps [HUAWEI] arp-miss speed-limit source-ip 1.1.1.1 maximum 200 //对上行的网络侧地址放行,防止误惩罚
可以通过命令display arp anti-attack arpmiss-record-info查看攻击源。
此命令会自动下发基于源IP的ARP Miss惩罚ACL,若不再需要其上送控制平面,则可以通过cpu-defend policy中配置黑名单功能彻底终结该源的攻击。
1.2.3 DHCP攻击
1.2.3.1 DHCP Server仿冒攻击
攻击简介
由于DHCP Server和DHCP Client之间没有认证机制,所以如果在网络上随意添加一台DHCP服务器,它就可以为客户端分配IP地址以及其他网络参数。如果该DHCP服务器为用户分配错误的IP地址和其他网络参数,将会对网络造成非常大的危害。
如图1-1所示,DHCP Discover报文是以广播形式发送,无论是合法的DHCP Server,还是非法的DHCP Server都可以接收到DHCP Client发送的DHCP Discover报文。
图1-1 DHCP Client发送DHCP Discover报文示意图
如果此时DHCP Server仿冒者回应给DHCP Client仿冒信息,如错误的网关地址、错误的DNS(Domain Name System)服务器、错误的IP等信息,如图1-2所示。DHCP Client将无法获取正确的IP地址和相关信息,导致合法客户无法正常访问网络或信息安全受到严重威胁。
图1-2 DHCP Server仿冒者攻击示意图
现象描述
DHCP Client无法获取到正确的IP地址,用户无法正常访问网络。
定位思路
一般在业务部署的时候,防DHCP Server仿冒攻击就应该考虑。很少等到问题发生了才部署防DHCP Server仿冒攻击。如果出现该类问题,一般可以查看客户端DHCP相关信息,来确定问题原因。
问题根因
DHCP申请IP地址的交互流程中,客户端发送的是广播报文。如图1-2所示,仿冒的DHCP服务器可以截获DHCP Client发送的请求报文,为DHCP Client分配地址。
处理步骤
方法 |
优点 |
缺点 |
配置DHCP Snooping |
常用方法,配置简单 |
报文上送CPU,可能导致CPU利用率变高 |
配置流策略 |
报文不用上送CPU处理 |
配置复杂,需要ACL资源支持 |
方法一:通过DHCP Snooping来控制DHCP请求跟应答报文的交互,防止仿冒的DHCP服务器为DHCP Client分配IP地址以及其他配置信息。
- 全局使能DHCP Snooping业务
<HUAWEI> system-view
[HUAWEI] dhcp enable
[HUAWEI] dhcp snooping enable
- 用户侧端口配置DHCP Snooping功能,DHCP Snooping也可以在VLAN内配置,可以根据需要进行选择
[HUAWEI] interface GigabitEthernet 8/0/1 [HUAWEI-GigabitEthernet8/0/1] dhcp snooping enable
- 连接DHCP服务器的端口配置成信任端口
[HUAWEI] interface GigabitEthernet 8/0/10 [HUAWEI-GigabitEthernet8/0/10] dhcp snooping trusted
方法二:DHCP Snooping是通过控制DHCP报文的转发来防止DHCP Server仿冒攻击。我们可以通过流策略达到同样的效果。只允许DHCP请求报文向信任口转发,只允许DHCP回应报文从信任口收到并转发。
- 配置ACL匹配DHCP回应报文
[HUAWEI] acl 3001 [HUAWEI-acl-adv-3001] rule permit udp destination-port eq bootpc
配置两个流策略,一个丢弃DHCP回应报文,一个允许DHCP回应报文转发,将丢弃的流策略应用到VLAN,将允许转发的流策略应用到连接DHCP Server方向的端口,利用流策略在端口应用的优先级高于在VLAN中应用,来实现只接收并转发从DHCP Server方向过来的DHCP回应报文的目的。
[HUAWEI] traffic classifier bootpc_dest [HUAWEI-classifier-bootpc_dest] if-match acl 3001 [HUAWEI-classifier-bootpc_dest] quit [HUAWEI] traffic behavior deny [HUAWEI-behavior-deny] deny [HUAWEI-behavior-deny] quit [HUAWEI] traffic behavior permit [HUAWEI-behavior-permit] permit [HUAWEI-behavior-permit] quit [HUAWEI] traffic policy bootpc_dest_permit [HUAWEI-trafficpolicy-bootpc_dest_permit] classifier bootpc_dest behavior permit //配置允许DHCP回应报文转发的流策略 [HUAWEI-trafficpolicy-bootpc_dest_permit] quit [HUAWEI] traffic policy bootpc_dest_deny [HUAWEI-trafficpolicy-bootpc_dest_deny] classifier bootpc_dest behavior deny //配置DHCP回应报文丢弃的流策略 [HUAWEI-trafficpolicy-bootpc_dest_deny] quit [HUAWEI] interface GigabitEthernet 8/0/10 [HUAWEI-GigabitEthernet8/0/10] traffic-policy bootpc_dest_permit inbound //将允许DHCP回应报文的流策略应用在信任端口上 [HUAWEI-GigabitEthernet8/0/10] quit [HUAWEI] vlan 172 [HUAWEI-vlan172] traffic-policy bootpc_dest_deny inbound //将丢弃DHCP回应报文的流策略应用在VLAN中 [HUAWEI-vlan172] quit
- 下述配置是可选的配置。
配置ACL匹配DHCP请求报文
[HUAWEI] acl 3000 [HUAWEI-acl-adv-3000] rule permit udp source-port eq bootpc
配置两个流策略,一个丢弃DHCP请求报文,一个允许DHCP请求报文转发,将丢弃的流策略应用到VLAN,将允许转发的流策略应用到连接DHCP Server方向的端口,利用流策略在端口应用的优先级高于在VLAN中应用,来实现将DHCP请求报文只往DHCP Server转发的目的。
[HUAWEI] traffic classifier bootpc_src [HUAWEI-classifier-bootpc_src] if-match acl 3000 [HUAWEI-classifier-bootpc_src] quit [HUAWEI] traffic behavior deny [HUAWEI-behavior-deny] deny [HUAWEI-behavior-deny] quit [HUAWEI] traffic behavior permit [HUAWEI-behavior-permit] permit [HUAWEI-behavior-permit] quit [HUAWEI] traffic policy bootpc_src_permit [HUAWEI-trafficpolicy-bootpc_src_permit] classifier bootpc_src behavior permit //配置允许DHCP请求报文转发的流策略 [HUAWEI-trafficpolicy-bootpc_src_permit] quit [HUAWEI] traffic policy bootpc_src_deny [HUAWEI-trafficpolicy-bootpc_src_deny] classifier bootpc_src behavior deny //配置DHCP请求报文丢弃的流策略 [HUAWEI-trafficpolicy-bootpc_src_deny] quit [HUAWEI] interface GigabitEthernet 8/0/10 [HUAWEI-GigabitEthernet8/0/10] traffic-policy bootpc_src_permit outbound //将允许DHCP请求报文转发的流策略应用在信任端口的出方向 [HUAWEI-GigabitEthernet8/0/10] quit [HUAWEI] vlan 172 [HUAWEI-vlan172] traffic-policy bootpc_src_deny outbound //将丢弃DHCP请求报文的流策略应用在VLAN的出方向 [HUAWEI-vlan172] quit
1.2.3.2 DHCP泛洪攻击
攻击简介
泛洪攻击又叫DoS攻击,即拒绝服务攻击(DoS,Denial of Service),是指向设备发送大量的连接请求,占用设备本身的资源,严重的情况会造成设备瘫机,一般情况下也会使设备的功能无法正常运行。因为主要是针对服务器的,目的是使服务器拒绝合法用户的请求,所以叫拒绝服务攻击。
现象描述
交换机部署DHCP Snooping、DHCP Relay或者DHCP Server业务时,设备出现CPU高,用户上线慢等现象。
定位思路
定位手段 |
命令行 |
适用版本形态 |
查看CPU利用率 |
display cpu-usage [ slave | slot slot-id ] |
V100R006C05版本以及之后版本 |
查看CPU-Defend统计计数 |
display cpu-defend statistics [ packet-typepacket-type ] { all | slot slot-id | mcu } |
V100R006C05版本以及之后版本 |
查看端口防攻击统计计数 |
display auto-port-defend statistics [ slotslot-id ] |
V200R003版本以及之后版本 |
配置攻击溯源 |
auto-defend enable |
V100R006C05版本以及之后版本 |
查看攻击溯源信息 |
display auto-defend attack-source detail |
V100R006C05版本以及之后版本 |
查看DHCP报文统计信息 |
display dhcp statistics |
V100R006C05版本以及之后版本 |
查看DHCP中继的相关报文统计信息 |
display dhcp relay statistics |
V100R006C05版本以及之后版本 |
查看DHCP Server统计计数 |
display dhcp server statistics |
V100R006C05版本以及之后版本 |
查看DHCP报文处理速率 |
display dhcp packet process statistics |
V100R006C05版本以及之后版本 |
- 执行命令display cpu-usage查看任务运行情况,找出占用CPU较高的任务,通常DoS攻击会导致bcmRX、FTS或者SOCK任务过高。
- 执行命令display cpu-defend statistics查看CPU收包统计,判断是否存在过多由于来不及处理而丢弃的协议报文,对于DHCP协议攻击可以查看dhcp-server、dhcp-client、dhcpv6-request、dhcpv6-
- 查看端口防攻击的收包统计,从V200R003以及之后版本支持端口防攻击功能,对于DHCP协议报文,还需要查看端口防攻击的统计信息,查看是否存在DHCP协议报文的丢包。
根据任务或CPU收包统计确定是否出现过多的某种协议报文。
如果判断出某种协议报文过多,根据用户的组网判断是否可能出现这么多的协议报文,如果用户组网不可能出现这么多协议报文,则可基本判断为协议报文的攻击。
- 对于DoS攻击,大多数的攻击者的源IP或者源MAC是固定的。可以通过部署攻击溯源来查看是否存在攻击(攻击溯源在V200R009已经默认开启)。
[HUAWEI] cpu-defend policy policy1 [HUAWEI-cpu-defend-policy-policy1] auto-defend enable [HUAWEI-cpu-defend-policy-policy1] auto-defend attack-packet sample 5 [HUAWEI-cpu-defend-policy-policy1] auto-defend threshold 30 [HUAWEI-cpu-defend-policy-policy1] auto-defend trace-type source-mac source-ip [HUAWEI-cpu-defend-policy-policy1] auto-defend protocol dhcp [HUAWEI-cpu-defend-policy-policy1] quit
接下来应用防攻击策略policy1,关于防攻击策略的应用,请参见3.1 应用防攻击策略。
等待一分钟后,查看是否存在攻击源。
- 根据设备上使能的DHCP相关功能,执行命令display dhcp packet process statistics查看对应的计数是否快速增加。
问题根因
对于DHCP报文的DoS攻击,主要的原因有:
- 用户终端中毒。
- 网络环路。
处理步骤
方法 |
优点 |
缺点 |
攻击溯源 |
针对特定的用户进行惩罚 |
需要消耗ACL资源 |
软件限速 |
可以基于全局、VLAN和接口进行限制 |
可能无法有效降低CPU利用率 |
- 方法一:通过攻击溯源对攻击用户进行惩罚。
[HUAWEI] cpu-defend policy policy1 [HUAWEI-cpu-defend-policy-policy1] auto-defend enable [HUAWEI-cpu-defend-policy-policy1] auto-defend attack-packet sample 5 [HUAWEI-cpu-defend-policy-policy1] auto-defend threshold 30 [HUAWEI-cpu-defend-policy-policy1] undo auto-defend trace-type source-portvlan [HUAWEI-cpu-defend-policy-policy1] undo auto-defend protocol tcp ttl-expired //此处可以对指定的协议进行溯源,不需要溯源的协议可以去使能 [HUAWEI-cpu-defend-policy-policy1] auto-defend whitelist 1 interface GigabitEthernet 8/0/10 //此处将上行口放在白名单中,防止误惩罚 [HUAWEI-cpu-defend-policy-policy1] auto-defend action deny [HUAWEI-cpu-defend-policy-policy1] quit
接下来应用防攻击策略policy1,关于防攻击策略的应用,请参见3.1 应用防攻击策略。
- 方法二:通过对DHCP报文的处理速率进行限制,可以根据需要在系统视图,VLAN视图或者接口视图配置对DHCP报文上送DHCP报文处理单元的速率进行检测功能。下面以VLAN视图下为例:
[HUAWEI] vlan 10 [HUAWEI-vlan10] dhcp snooping check dhcp-rate enable [HUAWEI-vlan10] dhcp snooping check dhcp-rate 80 [HUAWEI-vlan10] quit
1.2.3.3 DHCP Server服务拒绝攻击
攻击简介
如图1-4所示,若设备接口if1下存在大量攻击者恶意申请IP地址,会导致DHCP Server中IP地址快速耗尽而不能为其他合法用户提供IP地址分配服务。
另一方面,DHCP Server通常仅根据DHCP Request报文中的CHADDR(Client Hardware Address)字段来确认客户端的MAC地址。如果某一攻击者通过不断改变CHADDR字段向DHCP Server申请IP地址,同样将会导致DHCP Server上的地址池被耗尽,从而无法为其他正常用户提供IP地址。
图1-4 DHCP Server服务拒绝攻击示意图
现象描述
DHCP Server地址池已经分配完,用户无法申请地址。
定位思路
定位手段 |
命令行 |
适用版本形态 |
查看地址池占用情况 |
display ip pool |
V100R006C05版本以及之后版本 |
查看绑定表信息 |
display dhcp snooping user-bind all |
V100R006C05版本以及之后版本 |
- 执行命令display ip pool查看DHCP Server的地址池使用情况,跟实际用户规模进行对比,地址池中是否存在MAC地址递变等情况,确认是否存在DHCP Server服务拒绝攻击,一般来说正常用户的MAC不大。
- 如果接入设备部署DHCP Snooping业务,是否存在某个VLAN或者某个端口上的用户特别多,是否存在源MAC递变等情况。
问题根因
- 用户终端中毒。
处理步骤
为了防止某些端口的DHCP用户恶意申请IP地址,可配置接口允许学习的DHCP Snooping绑定表项的最大个数来控制上线用户的个数,当用户数达到该值时,则任何用户将无法通过此接口成功申请到IP地址。为了防止攻击者不断改变DHCP Request报文中的CHADDR字段进行攻击,可使能检测DHCP Request报文帧头MAC地址与DHCP数据区中CHADDR字段是否相同的功能,相同则转发报文,否则丢弃。
方法 |
优点 |
缺点 |
限制用户数目 |
可以基于全局、VLAN和接口进行限制 |
报文需要上送CPU处理 |
对报文进行合法性检查 |
可以基于全局、VLAN和接口进行配置 |
报文需要上送CPU处理。该方法依赖于首次绑定表建立的正确性 |
- 设置DHCP允许学习的DHCP Snooping绑定表项的最大个数,可以根据实际情况在接口、VLAN或者系统视图下配置。
[HUAWEI] dhcp enable [HUAWEI] dhcp snooping enable //全局使能DHCP Snooping功能 [HUAWEI] interface GigabitEthernet 8/0/1 [HUAWEI-GigabitEthernet8/0/1] dhcp snooping enable [HUAWEI-GigabitEthernet8/0/1] dhcp snooping max-user-number 10 //对端口上的DHCP用户进行限制
- 使能对报文的CHADDR字段进行检查以及告警功能,可根据实际情况在系统视图、VLAN视图或接口视图下进行配置。
[HUAWEI] dhcp enable [HUAWEI] dhcp snooping enable //全局使能DHCP Snooping功能 [HUAWEI] interface GigabitEthernet 8/0/1 [HUAWEI-GigabitEthernet8/0/1] dhcp snooping check dhcp-chaddr enable [HUAWEI-GigabitEthernet8/0/1] dhcp snooping alarm dhcp-chaddr enable [HUAWEI-GigabitEthernet8/0/1] dhcp snooping check dhcp-request enable [HUAWEI-GigabitEthernet8/0/1] dhcp snooping alarm dhcp-request enable
1.2.3.4 DHCP报文误上送
攻击简介
设备使能DHCP功能后,某些DHCP报文是基于端口或者基于全局上送的,导致一些不必要的DHCP报文上送CPU,由此可能造成CPU利用率升高或者DHCP业务受损。
现象描述
当出现DHCP报文误上送时,会出现如下现象:
- 报文误上送,导致CPU高。
- 报文误上送,占用正常DHCP报文的带宽或者处理资源,影响用户无法正常上线和下线。
定位思路
- 配置ACL匹配DHCP报文特征。
[HUAWEI] acl 3000 [HUAWEI-acl-adv-3000] rule permit udp destination-port eq bootpc
- 通过capture-packet cpu命令捕获上送到CPU的报文,如果抓到上送的DHCP报文,但是对应的VLAN未使能DHCP相关业务,则说明存在DHCP报文误上送的情况。
[HUAWEI] capture-packet cpu acl 3000 destination terminal packet-num 10
问题根因
DHCP的报文上送规则是基于端口或者基于全局的,所以会导致某些VLAN内的报文出现误上送的情况。
处理步骤
方法 |
优点 |
缺点 |
配置VLAN内协议报文透传功能 |
可以基于VLAN二层透传不需要上送CPU的协议报文 |
1. 只有框式和盒式HI系列支持该功能。 2. 首先需要知道有哪些VLAN内存在DHCP报文。 3. 如果VLAN很多,则配置繁琐。 |
配置流策略替代DHCP Snooping功能 |
避免报文上送导致CPU高 |
配置繁琐 |
- 方法一:可以在不需要处理协议报文的VLAN中,部署VLAN内协议报文透传功能,此时这些VLAN的协议报文不会再上送CPU处理,而是直接透传转发到其他设备进行处理,可以提高转发速度和效率。支持透传的协议报文类型有:CFM/ARP/BFD/DHCP/DHCPV6/HTTP/IGMP/MLD/ND/PIM/PIMv6/PPPoE/TACACS。
[HUAWEI] vlan 10 [HUAWEI-vlan10] protocol-transparent
- 方法二:对于使能DHCP Snooping功能导致的DHCP报文误上送的情况,可以考虑通过流策略的方式来达到DHCP Snooping的功能,可以避免DHCP报文误上送CPU,而导致CPU高的情况,具体的配置方式可以参考1.3.3.1 DHCP Server仿冒攻击章节。
1.2.3.5 DHCP欺骗
攻击简介
在DHCP网络环境中,若攻击者仿冒合法用户的DHCP Request报文发往DHCP Server来续租IP地址,将会导致用户的IP地址租约到期之后不能够及时释放,以致合法用户无法使用该IP地址。
现象描述
用户异常下线。
定位思路
如果存在DHCP欺骗攻击,可以使能对DHCP报文进行绑定表匹配检查的功能以及DHCP Snooping告警功能。
问题根因
用户终端中毒或者网络攻击。
处理步骤
在系统视图、VLAN视图或接口视图下使能对DHCP报文进行绑定表匹配检查以及DHCP Snooping告警功能。下面以在接口视图下配置为例:
[HUAWEI] dhcp enable [HUAWEI] dhcp snooping enable //全局使能DHCP Snooping功能 [HUAWEI] interface GigabitEthernet 8/0/1 [HUAWEI-GigabitEthernet8/0/1] dhcp snooping enable [HUAWEI-GigabitEthernet8/0/1] dhcp snooping check dhcp-request enable //对端口上的DHCP报文进行检查 [HUAWEI-GigabitEthernet8/0/1] dhcp snooping alarm dhcp-request enable
1.2.4 ICMP攻击
攻击简介
由于现网的一些交换机处于核心层的位置,所以一般会做网关,对于网关来讲,需要对正常用户的Ping报文进行回应,但是交换机的CPU的处理能力是有限的,在一定时间内可以处理的Ping报文的数量也是有限的,一旦某些非法用户利用这个漏洞去攻击网关,使用一些软件或控制大量主机同时去Ping网关交换机,这样对交换机来说也许短时间内影响不会很大,但是如果持续比较长的时间的话,必然会导致网关的CPU偏高,对于处理不过来的Ping报文进行丢弃,但是由于网关无法区分哪些Ping包应该丢弃,哪些Ping包需要立即进行处理。所以这个时候正常的用户与网关就会失去联系,会导致一些合法用户掉线。
现象描述
- 网络中存在通过工具进行网段扫描或者其他方式向设备发送大量Ping测试,交换机收到大量的ICMP报文上送CPU处理,使CPU占用率大大提高,导致其他业务功能异常。
- 用户侧通过指定ICMP报文长度进行超长包Ping测试,有可能超过设备CPCAR,导致出现Ping测试结果丢包。
定位思路
定位手段 |
命令行 |
适用版本形态 |
查看CPU-Defend丢包计数 |
display cpu-defend statistics packet-type icmp all |
V100R006C05版本以及之后版本 |
查看ICMP报文限速 |
display current-configuration | include icmp |
V100R006C05版本以及之后版本 |
查看ICMP泛洪攻击 |
display anti-attack statistics |
V100R006C05版本以及之后版本 |
- 执行命令display cpu-defend statistics packet-type icmp all查看CPU-Defend计数里面是否存在ICMP协议报文CPCAR丢包,并且是否存在继续增长的趋势。
- 查看设备上是否配置ICMP报文限速,如果有icmp rate-limit enable配置,可能会引起Ping丢包。
- 查看设备上ICMP泛洪攻击是否有丢弃。
问题根因
- ICMP攻击导致过多ICMP报文上送引起设备CPU升高。
- 设备ICMP防攻击或者CPCAR配置导致引起Ping丢包。
处理步骤
- 设备CPU高的情况下,配置黑名单过滤ICMP报文
- 识别攻击源
V100R006C05版本需要使用镜像获取报文,然后通过报文解析工具,比如wireshark解析获取到的报文。V100R006C05之后版本可以使用capture-packet cpu命令获取上送CPU的Ping报文。
以使用capture-packet cpu命令获取上送CPU的Ping报文为例,识别出攻击源报文的源IP为172.22.189.62、目的IP为172.22.189.61。
下述回显中的ac 16 bd 3e代表的是源IP,转换为10进制的IP地址即为172.22.189.62。ac 16 bd 3d代表的是目的IP,转换为10进制的IP地址即为172.22.189.61。
-
- 识别出攻击源后,通过黑名单方式过滤掉过多的ICMP报文,防止CPU过高或者影响正常Ping报文处理。
[HUAWEI] acl number 3334 [HUAWEI-acl-basic-3334] rule 5 permit icmp source 172.22.189.62 0 destination 172.22.189.61 0 [HUAWEI-acl-basic-3334] quit [HUAWEI] cpu-defend policy policy1 [HUAWEI-cpu-defend-policy-policy1] blacklist 1 acl 3334 [HUAWEI-cpu-defend-policy-policy1] quit
-
- Ping快回功能有利于减轻主控板CPU负载,如果主控板CPU过高,可以使能Ping快回降低主控板CPU占用率,盒式交换机在V1R6C05版本及之后默认使能Ping快回,框式交换机在V2R10及之后版本默认使能Ping快回。
<HUAWEI> system-view
[HUAWEI] icmp-reply fast
接下来应用防攻击策略policy1,关于防攻击策略的应用,请参见3.1 应用防攻击策略。
- 在CPU占用率不高的情况下,当Ping丢包时,可以通过调整ICMP协议CPCAR解决,通常情况下,CPCAR配置为256,如果在设备CPU使用率不高的情况下,仍然有丢包,可以适当调大该值。
[HUAWEI] cpu-defend policy policy1 [HUAWEI-cpu-defend-policy-policy1] car packet-type icmp cir 256 [HUAWEI-cpu-defend-policy-policy1] quit
接下来应用防攻击策略policy1,关于防攻击策略的应用,请参见3.1 应用防攻击策略。
1.2.5 TTL攻击
攻击简介
IP报文每经过一次转发TTL会自动减1,当设备短时间内收到大量TTL小于等于1的IP报文时,网络中可能存在路由环路,导致IP报文无法正常转发。
现象描述
部分三层业务流量不通、设备CPU升高。
定位思路
定位手段 |
命令行 |
适用版本形态 |
查看CPU-Defend丢包计数 |
display cpu-defend statistics packet-type ttl-expired all |
V100R006C05版本以及之后版本 |
通过display cpu-defend statistics packet-type ttl-expired all查看CPU-Defend计数里面是否存在ttl-expired协议报文CPCAR丢包,并且是否存在继续增长的趋势。
问题根因
一般情况下网络中出现路由环路时,会导致设备收到大量TTL耗尽的报文。
处理步骤
- 在设备CPU占用率升高的情况下,通过调小ttl-expired报文CPCAR,减小上送CPU的报文,TTL耗尽的报文本身不能正常转发,该配置不会影响正常业务的运行。通常情况下,将上送CPU的ttl-expired报文CPCAR减小为32kbps。如果在设备CPU使用率不高的情况下,仍然有丢包,可以适当调小该值。
[HUAWEI] cpu-defend policy policy1 [HUAWEI-cpu-defend-policy-policy1] car packet-type ttl-expired cir 32 [HUAWEI-cpu-defend-policy-policy1] quit
接下来应用防攻击策略policy1,关于防攻击策略的应用,请参见3.1 应用防攻击策略。
- 路由不通
- 首先识别攻击源。V100R006C05版本需要使用镜像获取报文,然后通过报文解析工具,比如wireshark解析获取到的报文。V100R006C05之后版本可以使用capture-packet cpu命令获取上送CPU的ttl-expired报文。
以使用capture-packet cpu命令获取上送CPU的ttl-expired报文为例,识别出攻击源报文的目的IP为222.228.240.4。
下述回显中的de e4 f0 04代表的是目的IP,转换为10进制的IP地址即为222.228.240.4。
- 识别出攻击源后,执行命令display ip routing-table 222.228.240.4查看路由表,根据路由表依次查找下一跳设备,通过流量统计或者抓包确认流量在哪台设备上被丢弃,然后调整问题设备的路由。
1.2.6 TCP攻击
攻击简介
TCP SYN攻击利用了TCP三次握手的漏洞。在TCP的3次握手期间,当接收端收到来自发送端的初始SYN报文时,向发送端返回一个SYN+ACK报文。接收端在等待发送端的最终ACK报文时,该连接一直处于半连接状态。如果接收端最终没有收到ACK报文包,则重新发送一个SYN+ACK到发送端。如果经过多次重试,发送端始终没有返回ACK报文,则接收端关闭会话并从内存中刷新会话,从传输第一个SYN+ACK到会话关闭大约需要30秒。
在这段时间内,攻击者可能将数十万个SYN报文发送到开放的端口,并且不回应接收端的SYN+ACK报文。接收端内存很快就会超过负荷,且无法再接受任何新的连接,并将现有的连接断开。
设备对TCP SYN攻击处理的方法是在使能了TCP SYN泛洪攻击防范后对TCP SYN报文进行速率限制,保证受到攻击时设备资源不被耗尽。
此外,黑客可能利用TCP/UDP端口使用蠕虫病毒攻击用户网络,使大范围的用户受到病毒爆发的威胁。
现象描述
- 设备受到大量TCP攻击时,可能会引起设备CPU、内存等资源使用率过高,同时使用TCP的FTP\SSH\Telnet等业务可能受到影响,可能导致设备脱管等问题。
- 设备默认会转发任意TCP/UDP端口的IP报文,如果黑客通过利用TCP/UDP端口漏洞进行病毒攻击,会造成大范围的用户数据资料的损失。如下为一些知名病毒经常使用的高危端口。
定位思路
定位手段 |
命令行 |
适用版本形态 |
查看CPU-Defend丢包计数 |
display cpu-defend statistics packet-type tcp all |
V100R006C05版本以及之后版本 |
查看TCP连接状态 |
display tcp status |
V100R006C05版本以及之后版本 |
端口漏洞病毒防范 |
使用流策略过滤高危端口的报文 |
V100R006C05版本以及之后版本 |
- 通过display cpu-defend statistics packet-type tcp all命令查看CPU-Defend计数里面是否存在TCP协议报文CPCAR丢包,并且是否存在继续增长的趋势。
- 通过display tcp status查看是否有较多TCP状态处于Syn_Rcvd状态。
问题根因
TCP建链需要三次握手才能建立,设备上存在大量半连接状态的TCP,会占用设备较多的系统资源,同时会影响正常使用TCP建链的协议,影响正常业务的运行。
处理步骤
- 设备CPU、内存等资源使用率过高,同时使用TCP的FTP\SSH\Telnet等业务可能受到影响,可能导致设备脱管等问题。处理步骤如下。
- 设备默认会接收来自HTTP的连接请求,存在安全风险,建议去使能HTTP服务功能,需要注意去使能HTTP服务功能后会导致Web网管无法使用。
<HUAWEI> system-view
[HUAWEI] undo http server enable
[HUAWEI] undo http secure-server enable
- 配置TCP SYN泛洪攻击,针对TCP SYN泛洪攻击报文进行防攻击检测。
<HUAWEI> system-view [HUAWEI] anti-attack tcp-syn enable [HUAWEI] anti-attack tcp-syn car cir 8000
- 如果设备资源占用率较高,通过调整设备的TCP报文CPCAR降低设备资源占用率,通常情况下,CPCAR配置为256。如果在设备CPU使用率不高的情况下,仍然有丢包,可以适当调大该值。
[HUAWEI] cpu-defend policy policy1 [HUAWEI-cpu-defend-policy-policy1] car packet-type tcp cir 256 [HUAWEI-cpu-defend-policy-policy1] quit
接下来应用防攻击策略policy1,关于防攻击策略的应用,请参见3.1 应用防攻击策略。
- 识别攻击源。V100R006C05版本需要使用镜像获取报文,然后通过报文解析工具,比如wireshark解析获取到的报文。V100R006C05之后版本可以使用capture-packet cpu命令获取上送CPU的TCP报文。
以使用capture-packet cpu命令获取上送CPU的TCP报文为例,识别出攻击源报文的源IP为172.22.189.62、目的IP为172.22.189.61。
下述回显中的ac 16 bd 3e代表的是源IP,转换为10进制的IP地址即为172.22.189.62。ac 16 bd 3d代表的是目的IP,转换为10进制的IP地址即为172.22.189.61。
- 识别出攻击源后,可以通过增加配置黑名单方式过滤无用的TCP报文。
[HUAWEI] acl number 3334 [HUAWEI-acl-adv-3334] rule 5 permit tcp source 172.22.189.62 0 [HUAWEI-acl-adv-3334] quit [HUAWEI] cpu-defend policy policy1 [HUAWEI-cpu-defend-policy-policy1] blacklist 1 acl 3334 [HUAWEI-cpu-defend-policy-policy1] quit
接下来应用防攻击策略policy1,关于防攻击策略的应用,请参见3.1 应用防攻击策略。
- l 如果黑客通过利用TCP/UDP端口漏洞进行病毒攻击,会造成大范围的用户数据资料的损失。处理步骤如下。
- 建立针对高危端口的ACL规则。
[HUAWEI] acl number 3000 //3000到4000之间没有使用的ACL皆可 [HUAWEI-acl-adv-3000] rule 5 peimit tcp destination-port eq 445 [HUAWEI-acl-adv-3000] rule 10 peimit tcp destination-port eq 135 [HUAWEI-acl-adv-3000] rule 15 peimit tcp destination-port eq 137 [HUAWEI-acl-adv-3000] rule 20 peimit tcp destination-port eq 139 [HUAWEI-acl-adv-3000] rule 25 peimit udp destination-port eq 445 [HUAWEI-acl-adv-3000] rule 30 peimit udp destination-port eq 135 [HUAWEI-acl-adv-3000] rule 35 peimit udp destination-port eq 137 [HUAWEI-acl-adv-3000] rule 40 peimit udp destination-port eq 139 [HUAWEI-acl-adv-3000] quit
- 配置流策略。
[HUAWEI] traffic classifier deny-bingdu [HUAWEI-classifier-deny-bingdu] if-match acl 3000 [HUAWEI-classifier-deny-bingdu] quit [HUAWEI] traffic behavior deny-bingdu [HUAWEI-behavior-deny-bingdu] deny [HUAWEI-behavior-deny-bingdu] quit [HUAWEI] traffic policy deny-bingdu [HUAWEI-trafficpolicy-deny-bingdu] classifier deny-bingdu behavior deny-bingdu [HUAWEI-trafficpolicy-deny-bingdu] quit
- 应用流策略,可以在接口下、全局或者端口组下应用流策略。
在接口下应用流策略。
[HUAWEI] interface GigabitEthernet0/0/1 [HUAWEI-GigabitEthernet0/0/1] traffic-policy deny-bingdu inbound [HUAWEI-GigabitEthernet0/0/1] traffic-policy deny-bingdu outbound
在全局应用流策略。
[HUAWEI] traffic-policy deny-bingdu global inbound
[HUAWEI] traffic-policy deny-bingdu global outbound
端口组下应用流策略,可以避免多个端口下重复配置。
[HUAWEI] port-group deny-bingdu [HUAWEI-port-group-deny-bingdu] group-member GigabitEthernet0/0/1 to GigabitEthernet0/0/10 [HUAWEI-port-group-deny-bingdu] traffic-policy deny-bingdu inbound [HUAWEI-port-group-deny-bingdu] traffic-policy deny-bingdu outbound
说明: 1. 配置前请确认是否有正常使用配置的高危端口服务,避免影响正常业务。 2. 建议在核心和汇聚交换机配置该脚本,如果内网已有电脑中毒,则需要在其接入交换机配置脚本。 3. 最好在所有端口下配置,次选在全局和上行端口配置。 4. traffic-policy在全局、同一端口下只能应用一次,如之前已有流策略应用,则会配置失败,可在其流策略里增加classifier deny-bingdu behavior deny-bingdu。
1.2.7 OSPF攻击
攻击简介
OSPF邻居之间通过定时发送Hello报文维持邻居关系。设备对于上送CPU的OSPF协议报文存在限速,当设备收到过多OSPF协议报文时,会导致正常的OSPF Hello报文无法上送CPU,引起OSPF邻居震荡。
现象描述
OSPF路由不通,导致三层业务流量转发不通。
定位思路
定位手段 |
命令行 |
适用版本形态 |
查看日志中是否存在OSPF震荡 |
display logbuffer |
V100R006C05版本以及之后版本 |
查看CPU-Defend丢包计数 |
display cpu-defend statistics packet-type tcp all |
V100R006C05版本以及之后版本 |
- 通过display logbuffer查看设备上是否存在OSPF震荡记录。
Feb 15 2017 21:40:20+08:00 HUAWEI %%01OSPF/3/NBR_CHG_DOWN(l)[131]:Neighbor event:neighbor state changed to Down. (ProcessId=1, NeighborAddress=10.136.1.25, NeighborEvent=InactivityTimer, NeighborPreviousState=Full, NeighborCurrentState=Down) Feb 15 2017 21:40:20+08:00 HUAWEI %%01OSPF/3/NBR_DOWN_REASON(l)[132]:Neighbor state leaves full or changed to Down. (ProcessId=1, NeighborRouterId=10.136.0.253, NeighborAreaId=0, NeighborInterface=Vlanif903,NeighborDownImmediate reason=Neighbor Down Due to Inactivity, NeighborDownPrimeReason=Hello Not Seen, NeighborChangeTime=2017-02-15 21:40:20+08:00)
- 通过display cpu-defend statistics packet-type ospf all命令查看CPU-Defend计数里面是否存在OSPF协议报文CPCAR丢包,并且是否存在继续增长的趋势。
问题根因
网络中出现环路或者邻居过多导致设备受到大量OSPF报文攻击。
处理步骤
- 步骤 1 通过定位思路中的display cpu-defend statistics packet-type ospf all命令查看到存在OSPF协议报文CPCAR丢包,并且继续增长。如果设备短时间内收到大量的OSPF协议报文,需要排查二层环路。
- 步骤 2 设备OSPF邻居过多导致默认CPCAR无法满足的情况下,通过调整OSPF协议CPCAR解决,通常情况下,CPCAR配置为384,如果在设备CPU使用率不高的情况下,仍然有丢包,可以适当调大该值。
[HUAWEI] cpu-defend policy policy1 [HUAWEI-cpu-defend-policy-policy1] car packet-type ospf cir 384 [HUAWEI-cpu-defend-policy-policy1] quit
接下来应用防攻击策略policy1,关于防攻击策略的应用,请参见3.1 应用防攻击策略。
- 步骤 3 配置OSPF的sham-hello功能,使能该功能后,设备不仅仅通过Hello报文维持邻居,可以通过所有OSPF协议报文维持邻居。在OSPF Hello报文丢弃的情况下,避免OSPF邻居频繁震荡。
<HUAWEI> system-view [HUAWEI] ospf 100 [HUAWEI-ospf-100] sham-hello enable
- 步骤 4 使用silent-interface命令禁止不需要的接口接收和发送OSPF报文后,使该接口无法建立邻居关系,可以减少OSPF报文的交互。
<HUAWEI> system-view [HUAWEI] ospf 100 [HUAWEI-ospf-100] silent-interface vlanif 200
- 步骤 5 识别攻击源。V100R006C05版本需要使用镜像获取报文,然后通过报文解析工具,比如wireshark解析获取到的报文。V100R006C05之后版本可以使用capture-packet cpu命令获取上送CPU的OSPF报文。
以使用capture-packet cpu命令获取上送CPU的OSPF报文为例,识别出攻击源报文的源IP为172.22.189.62。
下述回显中的ac 16 bd 3e代表的是源IP,转换为10进制的IP地址即为172.22.189.62。
- 步骤 6 识别出攻击源后,可以通过增加配置黑名单方式过滤无用的OSPF报文。
[HUAWEI] acl number 2001 [HUAWEI-acl-basic-2001] rule 5 permit source 172.22.189.62 0 [HUAWEI-acl-basic-2001] quit [HUAWEI] cpu-defend policy policy1 [HUAWEI-cpu-defend-policy-policy1] blacklist 1 acl 2001 [HUAWEI-cpu-defend-policy-policy1] quit
接下来应用防攻击策略policy1,关于防攻击策略的应用,请参见3.1 应用防攻击策略。
----结束
1.2.8 TC攻击
攻击简介
设备收到TC报文时会通知ARP模块对ARP表项进行老化或者删除,此时设备需要重新进行ARP学习,以获得最新的ARP表项信息。但是如果网络的拓扑变化频繁,或者网络中设备的ARP表项很多,ARP的重新学习会导致网络中的ARP报文过多。
现象描述
丢包或者流量不通。
定位思路
定位手段 |
命令行 |
适用版本形态 |
查看设备是否产生较多TC报文 |
display stp tc-bpdu statistics |
V100R006C05版本以及之后版本 |
查看设备是否存在较多ARP |
display arp |
V100R006C05版本以及之后版本 |
查看CPU-Defend丢包计数 |
display cpu-defend statistics slot slot-id |
V100R006C05版本以及之后版本 |
- 通过display stp tc-bpdu statistics查看设备上端口TC报文收发计数,多次执行该命令,查看TC(Send/Receive)计数是否增加。
- 执行命令display arp查看设备ARP数目较多(ARP数目达到几百个),同时执行命令display cpu-defend statistics查看上送CPU的ARP报文存在较多丢包。
问题根因
TC报文攻击导致ARP表项频繁更新,引起流量不通或者丢包。
处理步骤
- 设备在接收到拓扑变化报文后,会执行MAC地址表项和ARP表项的删除操作,如果频繁操作则会对CPU的冲击很大,可能造成CPU占用率过高。可以通过调大拓扑变化报文处理周期减小CPU负载,如下举例将拓扑变化报文处理周期调整为120秒。
<HUAWEI> system-view [HUAWEI] stp tc-protection interval 120
- 去使能设备响应TC报文并配置MAC刷新ARP功能,使设备收到TC报文的时候,ARP表项不再进行老化或者删除。
<HUAWEI> system-view [HUAWEI] mac-address update arp [HUAWEI] arp topology-change disable
1.2.9 SSH/Telnet攻击
攻击简介
设备对于上送CPU的SSH/Telnet协议报文存在限速,未经授权用户攻击或者过多用户同时通过SSH/Telnet方式登录设备,可能会导致设备脱管。建议通过使用白名单控制可登陆管理设备的用户,防止设备被仿冒攻击和非法访问的安全风险。
现象描述
正常用户无法登录设备。
定位思路
定位手段 |
命令行 |
适用版本形态 |
查看CPU-Defend丢包计数 |
display cpu-defend statistics packet-type ssh all display cpu-defend statistics packet-type telnet all |
V100R006C05版本以及之后版本 |
- 执行display cpu-defend statistics packet-type ssh all命令查看CPU-Defend计数里面是否存在SSH协议报文CPCAR丢包,并且是否存在继续增长的趋势。
- 执行display cpu-defend statistics packet-type telnet all命令查看CPU-Defend计数里面是否存在Telnet协议报文CPCAR丢包,并且是否存在继续增长的趋势。
问题根因
未授权用户攻击,导致SSH/Telnet方式无法登录设备。
处理步骤
- 识别攻击源。
V100R006C05版本需要使用镜像获取报文,然后通过报文解析工具,比如wireshark解析获取到的报文。V100R006C05之后版本可以使用capture-packet cpu命令获取上送CPU的SSH/Telnet报文。
以使用capture-packet cpu命令获取上送CPU的SSH/Telnet报文为例,识别出攻击源报文的源IP为172.22.189.62,目的IP为172.22.189.61,查看是否固定的源IP存在很多报文上送。
下述回显中的ac 16 bd 3e代表的是源IP,转换为10进制的IP地址即为172.22.189.62。ac 16 bd 3d代表的是目的IP,转换为10进制的IP地址即为172.22.189.61。
- 识别出攻击源后,通过部署安全策略限制用户登录,配置举例如下:
[HUAWEI] acl number 3334 [HUAWEI-acl-adv-3334] rule 5 permit ip source 172.22.189.62 0 [HUAWEI-acl-adv-3334] quit [HUAWEI] aaa [HUAWEI-aaa] local-user admin1234 password irreversible-cipher Helloworld@6789 [HUAWEI-aaa] local-user admin1234 privilege level 3 [HUAWEI-aaa] local-user admin1234 service-type telnet [HUAWEI-aaa] quit [HUAWEI] user-interface maximum-vty 15 [HUAWEI] user-interface vty 0 14 [HUAWEI-ui-vty0-14] acl 2001 inbound [HUAWEI-ui-vty0-14] authentication-mode aaa [HUAWEI-ui-vty0-14] idle-timeout 20 0 [HUAWEI-ui-vty0-14] screen-length 0 [HUAWEI-ui-vty0-14] protocol inbound telnet
3.如果设备不需要通过Telnet方式登录,可以去使能Telnet服务器。
<HUAWEI> system-view
[HUAWEI] undo telnet server enable
1.2.10 VRRP攻击
攻击简介
VRRP的Master交换机定时向组内的其他交换机发送VRRP通告报文,通知自己工作正常。当Backup设备收到过多VRRP协议报文,会导致Backup交换机CPU无法处理正常的VRRP通告报文。设备对于上送CPU的VRRP协议报文存在限速,当设备收到过多VRRP报文时,可能会引起VRRP协议震荡。
现象描述
三层业务流量转发丢包。
定位思路
定位手段 |
命令行 |
适用版本形态 |
查看是否存在VRRP震荡告警 |
display trapbuffer |
V100R006C05版本以及之后版本 |
查看CPU-Defend丢包计数 |
display cpu-defend statistics packet-type vrrp all |
V100R006C05版本以及之后版本 |
- 通过display trapbuffer查看设备上是否存在VRRP震荡记录。
#Jan 26 2017 22:00:12+09:00 HUAWEI VRRP/2/VRRPCHANGETOMASTER:OID 1.3.6.1.2.1.68.0.1 The status of VRRP changed to master. (VrrpIfIndex=118, VrId=254, IfIndex=118, IPAddress=10.62.3.251, NodeName=ISJPTSIO01HU106, IfName=Vlanif500, ChangeReason=protocol timer expired) #Jan 26 2017 22:00:12+09:00 HUAWEI VRRP/2/VRRPCHANGETOMASTER:OID 1.3.6.1.2.1.68.0.1 The status of VRRP changed to master. (VrrpIfIndex=124, VrId=254, IfIndex=124, IPAddress=10.173.7.251, NodeName=ISJPTSIO01HU106, IfName=Vlanif3300, ChangeReason=protocol timer expired)
- 通过display cpu-defend statistics packet-type vrrp all命令查看CPU-Defend计数里面是否存在VRRP协议报文CPCAR丢包,并且是否存在继续增长的趋势。
网络中出现环路或者对接设备VRRP发送频率过快导致设备受到大量VRRP报文攻击。
处理步骤
- 步骤 1 通过定位思路中的display cpu-defend statistics packet-type vrrp all命令查看到存在VRRP协议报文CPCAR丢包,并且存在继续增长的趋势。如果设备短时间内收到大量的VRRP协议报文,需要排查二层环路。
- 步骤 2 设备VRRP配置过多导致默认CPCAR无法满足的情况下,可以通过配置管理VRRP备份组减少VRRP报文交互。
<HUAWEI> system-view [HUAWEI] interface vlanif 10 [HUAWEI-Vlanif10] ip address 10.1.1.1 24 [HUAWEI-Vlanif10] vrrp vrid 1 virtual-ip 10.1.1.111 [HUAWEI-Vlanif10] admin-vrrp vrid 1
另外如果在设备CPU使用率不高的情况下,可以通过调大VRRP协议报文的CPCAR解决。
[HUAWEI] cpu-defend policy policy1 [HUAWEI-cpu-defend-policy-policy1] car packet-type vrrp cir 256 [HUAWEI-cpu-defend-policy-policy1] quit
接下来应用防攻击策略policy1,关于防攻击策略的应用,请参见3.1 应用防攻击策略。
- 步骤 3 识别攻击源
V100R006C05版本需要使用镜像获取报文,然后通过报文解析工具,比如wireshark解析获取到的报文。V100R006C05之后版本可以使用capture-packet cpu命令获取上送CPU的VRRP报文。
以使用capture-packet cpu命令获取上送CPU的VRRP报文为例,识别出攻击源报文的源IP为10.249.63.52。
下述回显中的0a f9 3f 34代表的是源10.249.63.52,转换为10进制的IP地址即为10.249.63.52。
- 步骤 4 识别出攻击源后,可以通过增加配置黑名单方式过滤无用的VRRP报文。
[HUAWEI] acl number 2001 [HUAWEI-acl-basic-2001] rule 5 permit source 10.249.63.52 0 [HUAWEI-acl-basic-2001] quit [HUAWEI] cpu-defend policy policy1 [HUAWEI-cpu-defend-policy-policy1] blacklist 1 acl 2001 [HUAWEI-cpu-defend-policy-policy1] quit
接下来应用防攻击策略policy1,关于防攻击策略的应用,请参见3.1 应用防攻击策略。
----结束
1.2.11 IGMP攻击
攻击简介
设备对于上送CPU的IGMP协议报文存在限速,当设备收到过多IGMP协议报文时,可能会引起IGMP组播协议表项震荡,导致二层或者三层组播业务流量转发不通。
现象描述
当出现组播IGMP协议报文攻击后,用户组播业务会间歇性卡屏或者黑屏,同时设备可能会出现如下现象:
- 设备CPU-Defend计数出现对应IGMP协议报文DROP丢包。
- 设备上二层IGMP-Snooping或者三层IGMP组播表项UP TIME时间均较短,容易出现误老化的情况。
- 设备CPU利用率较高,主要占用任务为BCMRX、FTS、SNPG、MFIB。
定位思路
定位手段 |
命令行 |
适用版本形态 |
查看CPU-DEFEND丢包计数 |
display cpu-defend statistics packet-type igmp all |
V100R006C05版本以及之后版本 |
查看攻击源信息 |
display auto-port-defend attack-source |
V200R003版本以及之后版本 |
查看组播表项UP Time时间 |
display igmp group |
V100R006C05版本以及之后版本 |
display igmp-snooping port-info verbose |
V100R006C05版本以及之后版本 |
|
查看组播协议报文统计计数 |
display igmp control-message counters |
V100R006C05版本以及之后版本 |
display igmp-snooping statistics vlan |
V100R006C05版本以及之后版本 |
- 查看CPU-Defend丢包计数
首先查看CPU-Defend计数里面是否存在IGMP协议报文CPCAR丢包,并且是否存在继续增长的趋势。
- 查看攻击源信息
基于端口的防攻击功能在已使能的情况下,设备会对端口收到的可防范协议报文的速率进行计算。如果该值超过了端口防攻击检查阈值(接口板为60pps),就认为该端口存在攻击,设备将对该端口的攻击报文进行溯源和限速处理,并通过日志的方式通知网络管理员。
Sep 11 2015 15:38:13+01:00 DST Switch %%01SECE/4/PORT_ATTACK_OCCUR(l)[2]:Auto port-defend started.(SourceAttackInterface=GigabitEthernet1/0/38, AttackProtocol=IGMP)
设备的限速处理方式为:对于未超出限速值(该值等同于防攻击策略里协议报文的CPCAR值),设备会将其移入低优先级队列后再上送CPU处理;对于超出限速值的报文,设备直接丢弃。
- 查看组播表项UP Time时间
查看二层组播表项UP Time时间。
查看三层组播表项UP Time时间
- 查看组播协议报文统计计数
二层组播协议报文统计计数
三层组播协议报文统计计数
问题根因
交换机设备在网络中启用了二层或者三层组播功能,由于在V200R010之前版本,交换机是全局上送IGMP报文,会误抓其他未使能组播功能VLAN内的协议报文。
另外由于设备配置、组网环境、对接设备等因素,设备上单个或者多个端口上收到了大量的IGMP协议报文,然后需要进行软件复制多份报文软转发出去,也导致设备CPU占用率高。
处理步骤
- 配置VLAN内协议报文透传功能
适用场景:某个未使能组播业务的VLAN内存在大量IGMP报文,被误抓上送CPU。
适用形态:框式交换机和盒式HI系列交换机
命令作用:可以在不需要处理协议报文的VLAN中,部署VLAN内协议报文透传功能,此时这些VLAN的协议报文不会再上送CPU处理,而是直接透传转发到其他设备进行处理,可以提高转发速度和效率。支持透传的协议报文类型有:CFM/ARP/BFD/DHCP/DHCPV6/HTTP/IGMP/MLD/ND/PIM/PIMv6/PPPoE/TACACS。
注意事项:
- 执行protocol-transparent命令前,需确保该VLAN的IGMP/MLD Snooping功能已去使能,否则配置失败。
- 使用protocol-transparent命令使能某VLAN内协议报文透传功能后,交换机将不参与该VLAN内的协议计算。
配置方法:
[HUAWE] vlan 3999 [HUAWEI-vlan3999] protocol-transparent
- 配置流策略重定向到不存在的VLAN丢弃报文
适用场景:只有一个VLAN内需要上送组播协议报文,其他VLAN内的组播协议报文均不需要。
适用形态:框式交换机
命令作用:丢弃除某个VLAN内以外所有VLAN内的IGMP协议报文。
注意事项:需要配置多个流分类和流行为,配置较为复杂,只有框式交换机支持。
配置方法如下:
举例如下:除了VLAN3990以外的VLAN均丢弃IGMP报文
[HUAWEI] acl number 3100 //此ACL号不要与设备上现有ACL冲突 [HUAWEI-acl-adv-3100] rule 5 permit igmp //匹配IGMP协议 [HUAWEI-acl-adv-3100] quit [HUAWEI] traffic classifier igmp-permit-cvlan [HUAWEI-classifier-igmp-permit-cvlan] if-match acl 3100 [HUAWEI-classifier-igmp-permit-cvlan] if-match cvlan-id 3990 //匹配内层VLAN3990中的IGMP,允许通过 [HUAWEI-classifier-igmp-permit-cvlan] quit [HUAWEI] traffic classifier igmp-permit-vlan [HUAWEI-classifier-igmp-permit-vlan] if-match acl 3100 [HUAWEI-classifier-igmp-permit-vlan] if-match vlan-id 3990 //匹配VLAN3990中的IGMP,允许通过 [HUAWEI-classifier-igmp-permit-vlan] quit [HUAWEI] traffic classifier igmp-deny [HUAWEI-classifier-igmp-deny] if-match acl 3100 //其它所有的IGMP,全部remark到不存在的VLAN中丢弃 [HUAWEI-classifier-igmp-deny] quit [HUAWEI] traffic behavior igmp-deny [HUAWEI-behavior-igmp-deny] permit [HUAWEI-behavior-igmp-deny] remark vlan-id 4090 //需要使用设备上未创建的VLAN,根据实际情况选用 [HUAWEI-behavior-igmp-deny] quit [HUAWEI] traffic behavior igmp-permit [HUAWEI-behavior-igmp-permit] permit [HUAWEI-behavior-igmp-permit] remark vlan-id 3990 [HUAWEI-behavior-igmp-permit] quit [HUAWEI] traffic policy igmp [HUAWEI-trafficpolicy-igmp] classifier igmp-permit-cvlan behavior igmp-permit [HUAWEI-trafficpolicy-igmp] classifier igmp-permit-vlan behavior igmp-permit [HUAWEI-trafficpolicy-igmp] classifier igmp-deny behavior igmp-deny [HUAWEI-trafficpolicy-igmp] quit [HUAWEI] traffic-policy igmp global inbound //在全局应用该流策略
- 配置攻击溯源丢弃攻击报文
适用场景:某个端口存在大量上送的IGMP攻击报文
适用形态:所有形态
命令作用:使能自动攻击溯源功能后,设备可以对上送CPU的指定报文类型进行溯源追踪。
注意事项:对于不希望被丢弃VLAN的IGMP报文,需要配置攻击溯源的白名单避免被溯源丢弃。
配置方法如下:
[HUAWEI] cpu-defend policy test [HUAWEI-cpu-defend-policy-test] auto-port-defend enable //使能攻击溯源 [HUAWEI-cpu-defend-policy-test] undo auto-defend protocol arp dhcp icmp tcp telnet ttl-expired //匹配igmp报文 [HUAWEI-cpu-defend-policy-test] auto-defend threshold 70 //报文速率超过70pps则识别为攻击报文 [HUAWEI-cpu-defend-policy-test] auto-defend action deny timer 3600 //惩罚动作为deny丢弃,惩罚时间为1小时(缺省值为300秒) [HUAWEI-cpu-defend-policy-test] auto-defend trace-type source-portvlan
接下来应用防攻击策略,关于防攻击策略的应用,请参见3.1 应用防攻击策略。
- 配置黑名单丢弃Leave报文
适用场景:某个端口存在大量上送的IGMP Leave攻击报文。
适用形态:框式交换机、盒式S5720HI系列、V200R008版本开始的盒式EI和盒式HI系列。
命令作用:使能黑名单后,设备丢弃上送CPU的指定Leave报文特征类型。
注意事项:建议仅对IGMPv2的Leave报文部署黑名单。
配置方法:
[HUAWEI] acl number 3000 [HUAWEI-acl-adv-3000] rule 5 permit igmp destination 224.0.0.2 0 //匹配igmp Leave报文 [HUAWEI-acl-adv-3000] quit [HUAWEI] cpu-defend policy test [HUAWEI-cpu-defend-policy-test] blacklist 1 acl 3000 //设置黑名单 [HUAWEI-cpu-defend-policy-test] quit
接下来应用防攻击策略,关于防攻击策略的应用,请参见3.1 应用防攻击策略。
1.2.12 PIM攻击
攻击简介
设备对于上送CPU的PIM协议报文存在限速,当设备收到过多PIM协议报文时,可能会引起PIM路由表项或者PIM邻居震荡,导致三层组播业务流量转发异常。
现象描述
当出现组播PIM协议报文攻击后,用户组播业务会间歇性卡屏或者黑屏,设备可能会出现如下现象:
- 设备CPU-DEFEND计数出现对应PIM协议报文DROP丢包。
- 设备上三层组播表项UP Time时间均较短,容易出现误老化的情况,伴随着三层组播转发异常的故障。
- 同时设备的CPU利用率较高,主要占用任务为BCMRX、FTS、MFIB、MCSW。
定位思路
定位手段 |
命令行 |
适用版本形态 |
查看CPU-Defend丢包计数 |
display cpu-defend statistics packet-type pim all |
V100R006C05版本以及之后版本,支持三层组播特性的形态 |
查看组播表项UP Time时间 |
display pim routing-table fsm |
V100R006C05版本以及之后版本,支持三层组播特性的形态 |
查看PIM协议报文统计计数 |
display pim control-message counters |
V100R006C05版本以及之后版本,支持三层组播特性的形态 |
- 查看CPU-Defend丢包计数
首先执行命令display cpu-defend statistics packet-type pim all查看CPU-Defend计数里面是否存在PIM协议报文CPCAR丢包,并且是否存在继续增长的趋势。
- 查看组播表项UP Time时间
执行命令display pim routing-table fsm查看表项中各出接口的Up Time时间。
- 查看PIM协议报文统计计数
执行命令display pim control-message counters查看PIM协议报文统计计数。
问题根因
交换机设备在网络中启用了三层组播功能,与该设备互联的三层PIM邻居较多,同时网络中存在数目较多的组播组表项,或者该网络中存在大量PIM协议报文攻击时:
- 配置PIM-SM协议时,此时交换机会同时从多个端口收到大量PIM join协议报文,超过交换机设备PIM协议的默认CPCAR值。
- 配置PIM-DM协议时,此时交换机会同时从多个端口收到大量PIM state-refresh协议报文超过交换机设备PIM协议的默认CPCAR值。
- 配置PIM-SM/DM协议时,此时交换机从某个或者多个端口收到大量PIM协议攻击报文,超过交换机设备PIM协议的默认CPCAR值。
处理步骤
- 步骤 1 可以适当放大交换机的PIM协议CPCAR值,CIR的最大值不要超过512kbps,从而提高交换机处理PIM报文能力。修改CPCAR的命令如下:
配置cpu-defend policy,执行命令car packet-type pim cir cir-value指定新的CAR值。
<HUAWEI> system-view [HUAWEI] cpu-defend policy pim [HUAWEI-cpu-defend-policy-pim] car packet-type pim cir 512 [HUAWEI-cpu-defend-policy-pim] quit
接下来应用防攻击策略,关于防攻击策略的应用,请参见3.1 应用防攻击策略。
- 步骤 2 如果是PIM-DM网络,发现交换机PIM协议报文统计计数存在大量State-Refresh种类的报文计数,则可以调整state refresh状态刷新报文的时间控制参数,或者将整个网络改造为PIM-SM协议。
配置方法如下:
- 调整state refresh状态刷新报文的时间控制参数。
在与组播源直接相连的第一跳设备上配置状态刷新报文的发送周期。
[HUAWEI] pim
[HUAWEI-pim] state-refresh-interval interval
在所有设备上配置相同状态刷新报文抑制时间。
[HUAWEI] pim
[HUAWEI-pim] state-refresh-rate-limit interval
- 调整PIM-DM协议,改用PIM-SM协议。在调整时,有如下注意事项:
VPN实例或者公网实例上不能同时使能PIM-DM和PIM-SM。
建议将处于PIM-SM域内的所有接口都使能PIM-SM,以确保与相连PIM设备都能建立邻居关系。
如果接口上需要同时使能PIM-SM和IGMP,必须要先使能PIM-SM,再使能IGMP。
----结束
2 本机防攻击推荐配置
2.1 框式交换机推荐配置
场景介绍
在现网中有各种攻击,而且攻击类型是不断变化的,无法用一种固定的防护方式防御所有攻击,所以需要根据实际的场景变化调整防护方式,下面提供一种使用范围比较广的防护脚本和攻击检测方式,可以防范TTL=1攻击、TCP攻击,并及时发现ARP、DHCP、IGMP的攻击用户。在检测到具体攻击后再结合1.2 根据攻击类型部署防攻击手段章节介绍的防攻击部署方式调整配置进一步加固。
脚本部署
# 现网业务如未使用VLAN1,但接入设备和网关设备上使用的接口未退出VLAN1,存在被攻击或产生风暴的风险。接口退出VLAN1配置如下:
接口类型为hybrid interface GigabitEthernet x/x/x undo port hybrid vlan 1 接口类型为trunk interface GigabitEthernet x/x/x port link-type trunk undo port trunk allow-pass vlan 1 接口类型为access interface GigabitEthernet x/x/x port link-type access undo port default vlan 1
# 主控板防攻击脚本部署
cpu-defend policy main-board #创建防攻击策略main-board car packet-type ttl-expired cir 16 #配置ttl-expired报文的CIR为16kbit/s car packet-type tcp cir 32 #配置tcp报文的CIR为32kbit/s auto-defend enable #使能攻击溯源功能 auto-defend attack-packet sample 5 #配置攻击溯源的采样比为5 auto-defend threshold 30 #配置攻击溯源检查阈值为30pps undo auto-defend trace-type source-portvlan #配置攻击溯源的方式为基于源MAC地址和源IP地址 undo auto-defend protocol tcp telnet ttl-expired #在攻击溯源防范的报文类型列表中删除tcp、telnet和ttl-expired报文 auto-defend whitelist 1 interface GigabitEthernet x/x/x #互联口和上行口加入白名单 auto-defend whitelist 2 interface GigabitEthernet x/x/x #互联口和上行口加入白名单 auto-port-defend whitelist 1 interface GigabitEthernet x/x/x #端口防攻击V2R3版本开始默认使能,互联口和上行口加入白名单 auto-port-defend whitelist 2 interface GigabitEthernet x/x/x #端口防攻击V2R3版本开始默认使能,互联口和上行口加入白名单 cpu-defend-policy main-board #应用防攻击策略
# 接口板防攻击脚本部署
cpu-defend policy io-board #创建防攻击策略io-board car packet-type ttl-expired cir 8 #配置ttl-expired报文的CIR为8kbit/s car packet-type tcp cir 16 #配置tcp报文的CIR为16kbit/s auto-defend enable #使能攻击溯源功能 auto-defend attack-packet sample 5 #配置攻击溯源的采样比为5 auto-defend threshold 30 #配置攻击溯源检查阈值为30pps undo auto-defend trace-type source-portvlan #配置攻击溯源的方式为基于源MAC地址和源IP地址 undo auto-defend protocol tcp telnet ttl-expired #在攻击溯源防范的报文类型列表中删除tcp、telnet和ttl-expired报文 auto-defend whitelist 1 interface GigabitEthernet x/x/x #互联口和上行口加入白名单 auto-defend whitelist 2 interface GigabitEthernet x/x/x #互联口和上行口加入白名单 auto-port-defend whitelist 1 interface GigabitEthernet x/x/x #端口防攻击V2R3版本开始默认使能,互联口和上行口加入白名单 auto-port-defend whitelist 2 interface GigabitEthernet x/x/x #端口防攻击V2R3版本开始默认使能,互联口和上行口加入白名单 cpu-defend-policy io-board global #应用防攻击策略
特别注意事项
- 上述脚本适用于V200R008版本和V200R008之前版本,V200R009版本以及之后版本攻击溯源功能默认已经使能,不需要特意部署。
- TCP速率是指针对本机VLANIF/Loopback地址的上送CPU速率,不影响具体路由协议的速率,例如BGP等有单独的速率,不受TCP CPCAR缩小的影响。
- ttl-expired基本只用于traceRT功能,含TTL字段的路由协议的报文速率不受ttl-expired参数的影响,只取决于各路由协议的CPCAR。
- 如果客户已经对cpu-defend policy做过配置调整,在配置时不要和客户配置冲突。
2.2 盒式交换机推荐配置
场景介绍
在现网中有各种攻击,而且攻击类型是不断变化的,无法用一种固定的防护方式防御所有攻击,所以需要根据实际的场景变化调整防护方式,下面提供一种使用范围比较广的防护脚本和攻击检测方式,可以防范TTL=1攻击、TCP攻击,并及时发现ARP、DHCP的攻击用户。在检测到具体攻击后再结合1.2 根据攻击类型部署防攻击手段章节介绍的防攻击部署方式调整配置进一步加固。
脚本部署
# 现网业务如未使用VLAN1,但接入设备和网关设备上使用的接口未退出VLAN1,存在被攻击或产生风暴的风险。接口退出VLAN1配置如下:
接口类型为hybrid interface GigabitEthernet x/x/x undo port hybrid vlan 1 接口类型为trunk interface GigabitEthernet x/x/x port link-type trunk undo port trunk allow-pass vlan 1 接口类型为access interface GigabitEthernet x/x/x port link-type access undo port default vlan 1
#设备防攻击脚本部署
cpu-defend policy io-board #创建防攻击策略io-board car packet-type ttl-expired cir 8 #配置ttl-expired报文的CIR为8kbit/s car packet-type tcp cir 16 #配置tcp报文的CIR为16kbit/s auto-defend enable #使能攻击溯源功能 auto-defend attack-packet sample 5 #配置攻击溯源的采样比为5 auto-defend threshold 30 #配置攻击溯源检查阈值为30pps undo auto-defend trace-type source-portvlan #配置攻击溯源的方式为基于源MAC地址和源IP地址 undo auto-defend protocol tcp igmp telnet ttl-expired #在攻击溯源防范的报文类型列表中删除tcp、igmp、telnet和ttl-expired报文 auto-defend whitelist 1 interface GigabitEthernet x/x/x #互联口和上行口加入白名单 auto-defend whitelist 2 interface GigabitEthernet x/x/x #互联口和上行口加入白名单 auto-port-defend whitelist 1 interface GigabitEthernet x/x/x #端口防攻击V2R3版本开始默认使能,互联口和上行口加入白名单 auto-port-defend whitelist 2 interface GigabitEthernet x/x/x #端口防攻击V2R3版本开始默认使能,互联口和上行口加入白名单 cpu-defend-policy io-board global #应用防攻击策略
特别注意事项
- 上述脚本适用于V200R008版本和V200R008之前版本,V200R009版本以及之后版本攻击溯源功能默认已经使能,不需要特意部署。
- TCP速率是指针对本机VLANIF/Loopback地址的上送CPU速率,不影响具体路由协议的速率,例如BGP等有单独的速率,不受TCP CPCAR缩小的影响。
- ttl-expired基本只用于traceRT功能,含TTL字段的路由协议的报文速率不受ttl-expired参数的影响,只取决于各路由协议的CPCAR。
- 如果客户已经对cpu-defend policy做过配置调整,在配置时不要和客户配置冲突。
3 附录
3.1 应用防攻击策略
- 框式交换机
对框式交换机来说,主控板和接口板上均有CPU,本机防攻击策略的配置和应用也需要按主控板和接口板来做区分。
先检查主控板和接口板的受报文攻击情况,再创建防攻击策略并应用。如果主控板和接口板上受报文攻击的情况相同,可以在主控板和接口板上应用相同的防攻击策略,否则需要应用不同的防攻击策略。
在主控板上应用防攻击策略。
<HUAWEI> system-view [HUAWEI] cpu-defend-policy policy1 [HUAWEI] quit
- 在接口板上应用防攻击策略。
如果在所有接口板上应用防攻击策略,则不能在指定接口板上应用该防攻击策略。反之亦然。
- 如果设备的接口板承载业务类似,在所有接口板上应用防攻击策略。
<HUAWEI> system-view
[HUAWEI] cpu-defend-policy policy2 global
- 如果设备的接口板承载业务各有差异,在指定接口板上应用防攻击策略。
<HUAWEI> system-view [HUAWEI] slot 1 [HUAWEI-slot-1] cpu-defend-policy policy2
- 盒式交换机
- 非堆叠情况下,在设备上应用防攻击策略。
<HUAWEI> system-view
[HUAWEI] cpu-defend-policy policy1 global
- 堆叠情况下:
在主设备上应用防攻击策略
<HUAWEI> system-view
[HUAWEI] cpu-defend-policy policy1
在所有堆叠设备上应用防攻击策略
<HUAWEI> system-view
[HUAWEI] cpu-defend-policy policy1 global