一种基于DPAA的网络风暴防御方法与流程

文档序号:34606596发布日期:2023-06-29 03:25阅读:103来源:国知局
一种基于DPAA的网络风暴防御方法与流程

本发明涉及一种网络风暴防御方法,尤其涉及一种基于dpaa的网络风暴防御方法。


背景技术:

1、网络风暴就是大量数据报文在链路形成,导致网络雍塞甚至瘫痪。产生的原因有很多,最简单就是由于网络拓扑的设计和连接问题。整个传输流程中,只有广播报文在网段内产生大量复制,交叉传递。一个数据帧或包被传输到本地网段(由广播域定义)上的每个节点就是广播;由于网络拓扑的设计和连接问题,或其他原因导致广播在网段内大量复制,传播数据帧,导致网络性能下降,甚至网络瘫痪,这就是广播风暴。广播风暴指数据帧形成环路,而帧头中无ttl的结构,所以帧始终有效,由于广播没有特定目标00地址,所以hub/swtich会永远转发下去。

2、针对网络中的用户设备(不包括交换机、路由器等网络设备)在网络风暴发生时会产生一连串的连锁反应。首先设备的网络处于瘫痪状态,但更严重的是由于网络风暴中大量的网络帧一起涌向用户设备的网卡,与此同时网卡会产生大量中断。大量中断导致cpu频繁响应并处理无用的网络包,从而导致cpu过负荷。从现场经验来看,发生网络风暴以后通过top指令查看cpu占有率均在95%以上。这样cpu上原有的正常业务便不能响应甚至崩溃。一旦出现这种情况,即使网络风暴消失以后,用户设备也无法回到正常状态,从而造成严重故障。

3、广播风暴的产生有多种原因,如蠕虫病毒、交换机端口故障、网卡故障、链路冗余没有启用生成树协议、网线线序错误或受到干扰等。从目前来看,蠕虫病毒和arp攻击是造成网络广播风暴最主要的原因。目前大多数厂商都支持风暴抑制的相关配置,可以在一定程度上减少网络风暴的产生。例如划分vlan、通过端口控制网络广播风暴等。但是随着网络拓扑越来越复杂,硬件故障甚至是人为原因,不可避免的还是会有网络风暴的产生。

4、从用户设备的主动防御来看,有些方案是通过netfilter进行网络包的过滤,阻止过多无用的数据包进入系统。netfilter 是 linux 内核中进行数据包过滤,连接跟踪(connect track),网络地址转换(nat)等功能的主要实现框架;该框架在网络协议栈处理数据包的关键流程中定义了一系列钩子点(hook 点),并在这些钩子点中注册一系列函数对数据包进行处理。这些注册在钩子点的函数即为设置在网络协议栈内的数据包通行策略,也就意味着,这些函数可以决定内核是接受还是丢弃某个数据包。利用这个原理可以防止大量无用的数据包进入到系统,从而抑制网络风暴对设备本身的冲击。但是该技术存在一个问题。如图1所示,osi模型中将网络划分为七层,但在目前实际广泛使用的 tcp/ip协议框架体系内,我们一般将网络划分为五层,从下到上依次为物理层,链路层,网络层,传输层以及应用层。在tcp/ip协议框架体系的五层网络模型中,每一层负责处理的数据包协议或类型均存在差异,物理层主要负责在物理载体上的数据包传输,如wifi,以太网,光纤,电话线等;数据链路层主要负责链路层协议解析(主要为以太网帧,其他类型此处暂不考虑),网络层主要负责ip协议(包括ipv4和ipv6)解析,传输层负责传输层协议解析(主要为tcp,udp 等),而传输层以上我们均归类为应用层,主要包括各类应用层协议,如我们常用的http,ftp,smtp,dns,dhcp等。在linux内核中,netfiler通过在网络层设置多个hook点,来完成数据包的过滤和抓取。由此可见,如果要使用netfiler的过滤工具,那么数据包就需要经过物理层、数据链路层和网络层的多层处理,最后在网络层丢掉数据包。这些处理本身已经对cpu的性能造成了损耗。所以该方案可以达到对网络风暴的抑制作用,但是也是以损失部分cpu的性能为代价,实际效果不是太理想。也有一些类似的检测和过滤方案,它们的原理相差不大,区别是在不同的层进行处理。


技术实现思路

1、针对上述问题,本发明提供一种基于dpaa的网络风暴防御方法,通过在数据链路层做数据包的分析和过滤来阻止数据包向上穿过协议栈,在进入cpu之前拦截数据包,使设备抵御网络风暴的冲击,在网络风暴消失以后,操作系统及各项应用稳定运行。

2、为实现上述目的,本发明公开了一种基于dpaa的网络风暴防御方法,包括以下步骤:

3、步骤s1:确定协议类型,基于协议类型编写硬件编码解析器fman,fman中的协议包括专有协议、已知协议和其他协议;

4、步骤s2:基于fman的以太网接口制定linux_fman_policy策略,linux_fman_policy策略通过fman中的协议解析对网络帧进行分类;

5、步骤s3:将分类后的网络帧发送给linux协议栈,在发送过程中,采用两速三色标记算法对进入linux协议栈的网络帧进行上色标记,丢弃红色标记的数据帧。

6、进一步的,所述已知协议包括:ethernet、ieee802.3、vlan、pppoe、mpls、ipv4、ipv6、gre、ipsec、tcp、udp、sctp、dccp。

7、进一步的,所述两速三色标记算法将网络帧分为三个颜色,

8、绿色的数据帧为符合承诺信息速率的流量,在没有任何限制的情况下通过网络;

9、黄色的数据帧为超过承诺信息速率但在峰值信息速率范围内的流量,相较于绿色的数据帧具有更低的优先级;

10、红色的数据帧为超过峰值信息速率的流量,不允许红色的数据帧通过网络,并将红色的数据帧丢弃。

11、进一步的,所述步骤s2中,针对每一个所需的业务,基于fman的以太网接口制定linux_fman_policy策略,linux_fman_policy策略通过fman中的协议解析对网络帧进行分类的方法包括:在linux_fman_policy策略中定义所需业务网络帧对应的类型,各网络帧类型对应一个协议类型,网络帧经过相应的协议解析和验证后被归类为linux_fman_policy策略中与该协议类型对应的网络帧类型。

12、本发明的一种基于dpaa的网络风暴防御方法的有益效果为:基于dpaa平台实现了网络数据包的协议解析分类和流量监控限速的方法,在数据链路层丢弃无用数据包的方法来实现网络风暴的防御。



技术特征:

1.一种基于dpaa的网络风暴防御方法,其特征在于,包括以下步骤:

2.基于权利要求1所述的一种基于dpaa的网络风暴防御方法,其特征在于,所述已知协议包括:ethernet、ieee802.3、vlan、pppoe、mpls、ipv4、ipv6、gre、ipsec、tcp、udp、sctp、dccp。

3.基于权利要求1所述的一种基于dpaa的网络风暴防御方法,其特征在于,所述两速三色标记算法将网络帧分为三个颜色,

4.基于权利要求1所述的一种基于dpaa的网络风暴防御方法,其特征在于,所述步骤s2中,针对每一个所需的业务,基于fman的以太网接口制定linux_fman_policy策略,linux_fman_policy策略通过fman中的协议解析对网络帧进行分类的方法包括:在linux_fman_policy策略中定义所需业务网络帧对应的类型,各网络帧类型对应一个协议类型,网络帧经过相应的协议解析和验证后被归类为linux_fman_policy策略中与该协议类型对应的网络帧类型。


技术总结
本发明提供一种基于DPAA的网络风暴防御方法,包括以下步骤:步骤S1:确定协议类型,基于协议类型编写硬件编码解析器FMAN,FMAN中的协议包括专有协议、已知协议和其他协议;步骤S2:基于FMAN的以太网接口制定linux_fman_policy策略,linux_fman_policy策略通过FMAN中的协议解析对网络帧进行分类;步骤S3:将分类后的网络帧发送给Linux协议栈,在发送过程中,采用两速三色标记算法对进入Linux协议栈的网络帧进行上色标记,丢弃红色标记的数据帧。基于DPAA平台实现了网络数据包的协议解析分类和流量监控限速的方法,在数据链路层丢弃无用数据包的方法来实现网络风暴的防御。

技术研发人员:张云飞,陈阳平,崔彦昭
受保护的技术使用者:麒麟软件有限公司
技术研发日:
技术公布日:2024/1/13
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1