网络设备CPU保护策略CPP白皮书.docx
- 文档编号:29235927
- 上传时间:2023-07-21
- 格式:DOCX
- 页数:16
- 大小:163.11KB
网络设备CPU保护策略CPP白皮书.docx
《网络设备CPU保护策略CPP白皮书.docx》由会员分享,可在线阅读,更多相关《网络设备CPU保护策略CPP白皮书.docx(16页珍藏版)》请在冰豆网上搜索。
网络设备CPU保护策略CPP白皮书
网络设备CPU保护策略CPP白皮书
前言
摘要
CPU保护策略(CPUProtectPolicy,CPP)用于避免网络设备的CPU收到网络上不必要和具有恶意攻击目的的数据流,提高网络设备自身安全性能,还可以通过设置QoS过滤机制来保护网络设备的控制平台(ControlPlane,简称CP)在遭受攻击和高负载的情况下仍能保持数据转发和协议状态的稳定。
本文阐述了目前控制平台策略的现状和发展趋势,以及目前锐捷网络产品采用的CPP技术,剖析了增加cpu保护策略的网络设备对于提高性能所起的作用。
关键词
CPP、DoS、CP
缩略语清单
缩略语
英文全名
中文解释
CPP
CPUProtectPolicy
CPU保护策略
CP
ControlPlane
控制平面
2概述:
CPP的提出
随着交换机应用的逐渐普及,以及网络攻击的不断增多,越来越需要为数据交换机提供一种保护机制,对发往交换机CPU的数据流,进行流分类和优先级分级处理,以及CPU的带宽限速,以确保在任何情况下CPU都不会出现负载过高的状况,从而能为用户提供一个稳定的网络环境,这种保护机制就是CPUProtectPolicy,简称CPP。
目前由于协议或者某些应用的需要,要求将报文trap到CPU进行处理,但是当同时有大量报文送到CPU(这种情况往往是恶意的),超过CPU负载时,引起CPU利用率高,这样就可能使一些正常需要执行的任务被长时间挂起,造成交换机瘫痪并导致网络中断。
目前CPU保护问题主要包括以下几点:
2.1网络交换机的设计特点
从交换机的体系结构来看,交换机有两部分组成:
ASIC芯片用于高速的转发数据包,而CPU主要是来处理一些更为复杂的事务,对网络管理方面任务和请求进行处理;处理各种协议报文,包括L2管理报文如BPDU、GVRP、ARP;L3管理报文如RIP、PIM、OSPF、VRRP、IGMP、ICMP;数据报文,包括未知单播IP数据包,未知组播的数据报文,RPF失败报文,各种错误报文。
常见的DoS攻击实际上就是让主机没有资源去应付这些正常的请求,把大量的资源都用在处理那些攻击性质的请求和事务上,从而导致系统的不可用。
当前网络中经常受到各种类型病毒的攻击,例如蠕虫病毒、尼姆达杀手、Slammer等蠕虫病毒。
而它们对交换机的冲击,经常是利用了流转发技术的三层交换机的工作原理,第一个数据包进来的时候,三层交换机要像路由器那样通过查找路由表,确定如何转发,并形成一个用ASIC完成转发查找的硬件流转发表。
感染Slammer等蠕虫病毒的计算机会在很大的一段地址空间中,逐个发送指向不同IP地址的数据包。
这种行为是恶意的。
这样的操作会导致交换机的硬件流转发表溢出,导致CPU资源的大量浪费,甚至使交换机的CPU资源完全耗尽。
类似的情况还有ARP请求,一个交换机收到了Slammer病毒产生的很多数据包,其目的网段就指向交换机连接的一个端口,交换机并不知道这些目的IP地址并不存在,会发很多ARP请求,期待对方给予回应。
这些ARP请求也会占用CPU资源。
类似的情况还有很多,比如发送大量的错误包,对交换机的Web管理界面、Telnet管理进行DoS攻击,对交换机的网管系统进行ICMP的DoS攻击和SNMP的DoS攻击。
2.2协议的工作特点或缺陷
最初的网络设计者在设计时更多地考虑如何保证网络的联通性,而很少考虑网络的安全性。
同样,很多专家开发了能够自动发现拓扑结构、自动维系网络设备关系的协议,如路由协议,这些协议能够减少网管员的工作量,提高网络的可用性,但是很多协议存在潜在漏洞,使网络面临被攻击的风险。
生成树攻击
假如在网络中用一台PC机模拟生成树协议,不断发布BPDU包,就会导致一定范围内的生成树拓扑结构定期地发生变化。
虽然没有流量,但是由于生成树不稳定,仍会导致整个网络不断发生动荡,使网络不可用,使网络设备的CPU压力剧增。
路由协议攻击
另一个类似的攻击就是使用路由协议发起的攻击,这一点更容易实现,虽然一些路由协议使用了加密和认证算法,来传递路由的更新信息,但是目前网络很少真正启用这些功能。
假如网络设计不合理,路由器配置不妥当,很容易让用户在一个原本应该是STUB的网段里,向整个网络发送路由信息,对整个网络的动态路由造成影响,导致路由震荡,有可能把一些通往重要方向的数据包指向错误的方向。
而且即使网络启用了路由加密和认证,大量的攻击包虽然不影响网络的路由震荡,但依然让CPU无法承受。
实际还有很多利用协议缺陷和交换机的设计点的攻击方式,这里只是做一个简单介绍。
通过以上分析,可以明确,CPP模块对于交换机和稳定工作是必不可少的。
3技术介绍
3.1原理
从第一章的分析可以了解到,目前的网络协议对于安全的考虑性不足,以及交换机本身设计的特点,对CPP功能的需求就显得越来越强。
CPP功能早期只是作为某些单一功能出现的,如ARPcheck,IPsysguard,这一种CPP主要是反攻击的。
随着市场应用的逐渐增多,对于CPU保护提出了更高的要求,第二种cpp应用需要对trap到CPU的管理报文进行分类处理,第一类是作为维护基础协议的BPDU、GVRP和VRRP,第二类是作为维护路由协议的PIM,OSPF,IGMP,RIP报文,第三类是作为需要CPU处理的IP数据报文,第四类是堆叠中的管理报文,通过对这些报文的分级处理,确定优先关系,确保在CPU高负载的情况下仍能保证基本的网络拓扑稳定。
CPP的第三种应用是对各种报文的带宽限制,这种方式主要根据具体的网络应用环境确定各类报文的带宽限制,以及CPU可以处理的最高总带宽限制。
CPP作为一个功能模块,无论是硬件实现或者软件实现,都基本上按照以下四个阶段进行:
Classifying、Queuing、Scheduling和Shaping。
根据ACL将输入流归类分流
Classifying:
对每个需要送到CPU的报文进行分类,分类是根据报文的L2、L3以及L4信息。
Queueing:
该动作负责将各种不同类型的报文,根据不同的优先级送到指定的映射队列,在不同队列的报文具有不同的传输优先级。
Scheduling:
当多个队列有报文需要传输时,Scheduling负责从中选择一个队列并传输这个队列的报文。
调度算法有SP,SP+WRR,WRR,DRR,SP+DRR,以下分别介绍以上各种调度算法的原理
●绝对优先级(SP):
高优先级队列具有最高的传输数据包的优先级。
低优先级的队列要等到优先级高的队列传完才开始传输。
在strictpriority调度中,加权设置总是为零
●weightedround-robin(加权轮转)调度(WRR):
WRR调度要求您定义一个数值用于规定当前队列与其他优先级队列的相对重要性(weight)。
WRR调度防止低优先级的队列在高优先级队列传输时被完全忽略。
WRR调度对各个队列实行轮流发送机制。
报文的权重与队列的重要性相对应。
举例说明,如果队列1的weight为1,队列2的weight为2,那么队列1在队列2每次发送完2个报文后发送1个报文。
通过调度功能,即使高优先级的队列为非空,低优先级的队列也能获得机会发送报文,这样带宽资源可以得到充分的利用。
●DeficitRoundRobin(DRR):
WRR存在的一个很大的缺点是它是以报文个数做为权重的,这样对于报文平均长度明确的网络更加合适,但是网络中往往报文的长度是不可预知的,必然使WRR的应用受到局限,基于此,提出了以字节数为权重的进行加权轮转调度的算法DeficitRoundRobin(DRR),当为某个队列分配的权重低于零时,这时该队列的权重值变为赤字,同时影响到下一次调度该队列的赋予的权重,即该队列的新的权重会减去前一次而产生的赤字,这样就可以避免由于报文长度不等长而产生的非预期的调度。
●SP+WRR,SP+DRR,是指在队列调度中选择SP与WRR或者SP和DRR算法共同参与运算的方法,既保证最高优先级的队列能得到优先调度,又避免了其他低优先级队列由于长时间未被调度而饿死的问题。
具体来说,就是高优先级的队列在所有报文被调度完成后,才根据选择的WRR或者DRR算法对其他队列进行调度。
Queueing与Scheduling过程
Shaping:
控制每个传输队列的最大和最小带宽,超过最大速率的报文将被丢弃。
3.2实现方案
从交换芯片的实现角度分析CPP的硬件实现,ASIC芯片将CMIC(CPU管理接口控制器)作为一个普通的物理转发口看待,即满足物理转发口的所有特性,具体到四个阶段分别描述如下:
●Classifying:
根据入口逻辑决定报文trap到CMIC的内部优先级,这里可能改变该优先级的因素包括报文携带的pri,端口的缺省优先级,改变报文优先级的若干表项等。
●Queueing:
可以设置CMIC口的入队方式,即报文内部优先级与CMIC队列的映射关系。
●Scheduling:
CMIC接口对于不同队列中报文采用调度算法,支持SP,SP+WRR,WRR,DRR,SP+DRR。
●Shaping:
ASIC芯片支持对于CMIC口的流量整形,可以设置整个CMIC流量的最小带宽和最大带宽,以及每一个COS队列的最小带宽和最大带宽,队列的缓存空间,以及带宽的颗粒等。
以上四个阶段可以作为CPP基于芯片的设计部分,只是由于不同的芯片类型决定了这几个阶段中哪些部分可以实现,哪些部分无法实现。
也可以用软件方式实现CPP,软件实现主要有两个方面,一个是减少报文在CPU的处理时间,这样可以尽量提高cpu的报文处理性能和降低CPU的工作负荷;另一个是确定不同类型报文在CPU的处理优先级,但是也要综合考虑软件处理这些逻辑的开销,具体也是按照以上四个阶段进行分析。
4锐捷S86系列CPP技术特点
4.1配置灵活方便
CPP的用户界面CLI命令设计简单方便,这样使用户无需对相关专业知识有很深认识的情况下,也能完成配置,此外用户也可以灵活配置各种协议报文的优先级和限制速率,前者可以保证需要的报文能优先得到处理,后者可以降低CPU的负载,有效地防止网络中对交换机的攻击,保护交换机的安全和网络的运行稳定。
设置每种类型报文的速率限制,pps可以在0-4096间随意设置。
cpu-protectype{arp|bpdu|dhcp|ipv6mc|igmp|rip|ospf|vrrp|pim|ttl1|unknown-ipmc|dvmrpppspps_vaule
设置每种类型报文映射的队列,pri可以在0-7之间设置,7所对应的优先级最高,0所对应的优先级最低。
cpu-protectype{arp|bpdu|dhcp|ipv6mc|igmp|rip|ospf|vrrp|pim|-ttl1|unknown-ipmc}pripri_vaule
4.2实时显示
实时显示当前CPU处理各类报文统计值,包括交换机收到的各类报文的累加值和速率,以及被丢弃的报文数,通过这些数据,可以使用户及时了解网络中当前的或者一段时间内的各类报文的流量情况,并可以以此为依据,实施CPP设置。
而且对于S86设备,除了支持基于报文类型的流量统计外,还支持基于管理板和所有线卡的流量的分别显示,使报文数据能细化到每一块线卡。
S8610(config)#showcpu-protectslot2
TypePpsTotalDrop
---------------------------------------
arp10001000015
bpdu20080
dhcp20000
gvrp20000
ipv6-mc20000
dvmrp20000
igmp20000
ospf20000
pim20000
rip20000
vrrp20000
unknow-ipmc20000
ttl12030
s8610(config)#showcpu-protecttypearp
SlotTypePpsTotalDrop
------------------------------------------------
MainBoardarp200150
Slot-2arp200150
cpp的显示界面
4.3配置实例
1.通过察看CPP的实时显示,可以明确当前交换机是否受到某种报文的攻击,如图4,显然,ARP报文的流量存在异常,这时可以通过配置CPP的流量限制达到保护交换机CPU的目的。
cpu-protectypearppps400
2.当某个端口上的输入流量达到限速或者进入了HOL状态时,或者该端口上存在多种需要由交换机CPU处理报文时,就需要界定这些报文的优先级关系,这些优先级关系可以根据的网络环境设置实施。
cpu-protectypevrrppri7
cpu-protectypebpdupri6
cpu-protectypeospfpri5
4.4分布式CPP
S86的管理板与线卡的架构使S86的CPP具有了分布式的特点,它的优点是在硬件实现的CPP的基础上,由各个线卡进行一级过滤,而管理板进行二级过滤,通过这种二级过滤的机制,使管理板大大降低了被攻击的可能性,使管理板的各种协议能平稳地运行,最大程度的保护了管理板的CPU资源,保证了网络的安全和稳定。
S86的分布式CPP方案在S86产品的所有类型线卡上都可以支持,而且该方案也保证了以后S86以后新增的线卡也能提供同样的支持,这一点是其他产品所不具备的。
分布式的二级过滤的设计符合S86的管理板和多块线卡的架构,这样每一块线卡上的CPP保证了每一块线卡能够对送CPU的报文实施分类限速,但是由于多块线卡的缘故,这样管理板收到的每一类报文仍有可能大于限速时,这时管理板的CPP又再一次保证了管理板的CP避免收到大量保文的攻击。
5CPP技术性能测试
以RG-S8600在集美大学的应用拓扑为例,分析CPP在稳定网络拓扑的作用。
集美大学的拓扑框架如下,核心设备为CISCO的S6509,同下联的汇聚设备S8606运行OSPF协议;
S8606通过万兆线路同S6509相连接;S8606和S6509相连接的端口为TRUNK口,该端口是所有的VLAN成员口(每个端口配置100个vlan);S8606下联二层设备,同二层设备的连接端口也是采用TRUNK口,并且没有进行VLAN配置。
这里主要测试CPP抗攻击的能力。
测试数据流用SMB产生,选取得观察点为图中最右边的RG-S8606,每台RG-S8606的配置为:
●M8606-CMI
●M8600-24SFP/12GT
●M8600-02XENPAK
攻击类型:
●ARP报文攻击
●BPDU报文攻击
●GVRP报文攻击
●TTL=1的IP报文攻击
●打开OSPF协议下的攻击测试
●打开RIP协议下的攻击测试
●报文PIM报文攻击
数据记录内容及分析结果
1.预防ARP攻击报文
●Arp部分攻击测试
源IP个数
发送速率
CPU利用率峰值
Ping延时
Ospf是否震荡
PIM是否震荡
CPP无限制(卡内)
1个
148packet/s
33-35%
<100ms
No
No
1488packet/s
43-45%
<113m
No
No
14881packet/s
65-66%
<131ms
20个包丢4个
No
Yes
148810packet/s
85%
<482ms
时通时不通
Yes
Yes
10个
148packet/s
48-53%
<100ms
No
No
1488packet/s
68-69%
<113m,丢四个
No
Yes
14881packet/s
78%
<131ms
20个包丢4个
Yes
Yes
148810packet/s
85%
<482ms
时通时不通
Yes
Yes
CPP限制Arp速率为500PPS(卡内)
1个
148packet/s
10-13%
<89ms
No
No
1488packet/s
22-25%
<100ms
No
No
14881packet/s
22-25%
<121ms
No
No
148810packet/s
22-25%
<133ms
No
No
10个
148packet/s
10-14%
<89ms
No
No
1488packet/s
23-25%
<100ms
No
No
14881packet/s
22-25%
<121ms
No
No
148810packet/s
22-25%
<133ms
No
No
K结论:
从以上数据来看,当采用CPP保护机制后,可以有效防。
2.预防L2协议报文攻击
●BPDU攻击测试
协议打开/关闭
发送速率
CPU利用率峰值
Ping延时
STP是否震荡
Ospf是否震荡
PIM是否震荡
CPP无限制(卡内)
MSTP打开
148packet/s
32-36%
<100ms
丢3%
No
Yes
No
1488packet/s
43-48%
<216m
丢15%
No
Yes
Yes
14881packet/s
65-69%
<380ms
丢30%
Yes
Yes
Yes
148810packet/s
85-88%
<580ms
丢50%
Yes
Yes
Yes
MSTP关闭
148packet/s
48-53%
<82ms
未开启
No
No
1488packet/s
68-69%
<134m
未开启
No
No
14881packet/s
78%
<213ms
丢20%
未开启
Yes
Yes
148810packet/s
88-90%
<245ms
丢30%
未开启
Yes
Yes
CPP限制BPDU速率为100PPS(卡内)
MSTP打开
148packet/s
10-13%
<80ms
未开启
No
No
1488packet/s
10-13%
<93ms
未开启
No
No
14881packet/s
10-13%
<111ms
未开启
No
No
148810packet/s
10-13%
<123ms
未开启
No
No
MSTP关闭
148packet/s
10-14%
<89ms
未开启
No
No
1488packet/s
10-14%
<100ms
未开启
No
No
14881packet/s
10-14%
<111ms
未开启
No
No
148810packet/s
10-14%
<123ms
未开启
No
No
●Gvrp攻击测试
协议打开/关闭
发送速率
CPU利用率峰值
Ping延时
Ospf是否震荡
PIM是否震荡
CPP无限制
GVRP打开
(视实际情况而定)
148packet/s
30-32%
<100ms
No
No
1488packet/s
39-41%
<113m
No
No
14881packet/s
55-59%
<189ms
No
No
148810packet/s
78-82%
<324ms
丢30%
Yes
Yes
GVRP关闭
148packet/s
30-35%
<100ms
No
No
1488packet/s
38-41%
<113m
No
No
14881packet/s
49-51%
<231ms
No
No
148810packet/s
78-82%
<369ms
丢35%
Yes
Yes
CPP限制Gvrp协议报文速率为500PPS
GVRP打开
148packet/s
10-13%
<81ms
No
No
1488packet/s
23-25%
<93ms
No
No
14881packet/s
23-25%
<111ms
No
No
148810packet/s
23-25%
<123ms
No
No
GVRP关闭
148packet/s
10-14%
<86ms
No
No
1488packet/s
23-25%
<100ms
No
No
14881packet/s
23-25%
<108ms
No
No
148810packet/s
23-25%
<110ms
No
No
K结论:
从以上数据来看,当采用CPP保护机制后,可以有效防止交换机资源被抢占,基本协议状态不会产生振荡和跃变。
3.预防L3协议报文的攻击
●PIM-DM部分攻击测试
协议打开/关闭
发送速率
CPU利用率峰值
Ping延时
Ospf是否震荡
PIM是否震荡
CPP无限制
PIM协议打开
(视实际情况而定)
148packet/s
38-42%
<200ms,丢30%
Yes
No
1488packet/s
46-51%
<280m,丢45%
Yes
Yes
14881packet/s
78-89%
<380ms,丢50%
Yes
Yes
148810packet/s
90%
<580ms,丢70%
Yes
Yes
PIM协议关闭
148packet/s
38-42%
<200ms,丢30%
Yes
未开启
1488packet/s
46-51%
<289m,丢45%
Yes
未开启
14881packet/s
78-89%
<385ms,丢48%
Yes
未开启
148810packet/s
90%
<590ms,丢70%
Yes
未开启
CPP限制PIM协议报文速率为100PPS
PIM协议打开
148packet/s
10-14%
<71ms
No
No
1488packet/s
10-14%
<83ms
No
No
14881packet/s
10-14%
<101ms
No
No
148810packet/s
10-14%
<113ms
No
No
PIM协议关闭
148packet/s
10-14%
<76ms
No
No
1488packet/s
10-14%
<90ms
No
No
14881packet/s
10-14%
<108ms
No
No
148810packet/s
10-14%
<110ms
No
No
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 网络设备 CPU 保护 策略 CPP 白皮书