一种ARP报文的处理方法与流程

文档序号:17758480发布日期:2019-05-24 21:29阅读:1323来源:国知局
一种ARP报文的处理方法与流程

本发明涉及数据通讯技术领域,具体涉及一种arp报文的处理方法。



背景技术:

arp(addressresolutionprotocol),即地址解析协议,是根据ip地址获取物理地址的一个tcp/ip协议,主机设备通过发送一个包含目标ip地址的arp请求,广播到网络上的其他设备,并接收返回消息,以此确定目标设备的物理地址,有了这个物理地址,主机就可以与目标设备进行数据通信了。

在实际网络环境中,当某个设备接入较多的用户,比如pc、交换机等其他网络设备。那么必然会有较多arp报文经过该设备,对于arp协议报文,设备通常不判断该arp报文是否本设备需要的,就全部在cpu进行相关协议处理。这样就容易导致cpu运行较忙,甚至资源耗尽,从而影响设备的正常的工作。



技术实现要素:

本发明提出的一种arp报文的处理方法,可解决arp报文把cpu资源耗尽的技术问题。

为实现上述目的,本发明采用了以下技术方案:

一种arp报文的处理方法,包括:

s100、创建本地arp条目表;

s200、对arp报文的分类;

s300、根据配置对分类后arp报文丢弃或上送;

s400、上送至arp协议层前,对arp报文进行限速处理。

具体如下:

s101、当设备创建接口并设置ip地址时,建立一张本地arp的软件表,该arp表包括ip地址和接口信息。

s201、根据本发明需要,本发明对arp报文类型主要分为三种,本地arp报文,免费arp报文,其他arp报文。其中本地arp报文是严格匹配本地arp条目信息的arp报文。免费arp报文即arp报文的目的和源的ip地址是一样的。剩下的arp报文归为其他arp报文。

s301、设备收到报文,通过芯片区分出arp报文,将arp报文上送cpu同时往芯片其他的接口转发。

s302、cpu收到arp报文后,根据s201所述,cpu将对arp报文进行分类,如果是本地arp报文和免费arp报文,将继续后面流程处理。其他arp报文根据配置要求,丢弃或者继续后面流程的处理。

s401、在arp协议层处理arp前,arp报文需要进行速率限制,默认按速率500pps,可以根据用户对设备的性能进行设置相应的默认速率。也可以在设备运行过程中调整具体的限速值。

由上述技术方案可知,本发明的arp报文的处理方法在设备的cpu性能较弱的情况下,芯片负责转发arp报文,cpu只处理本设备需要的arp报文。本发明cpu通过arp过滤和arp限速的二级保护组合使用,cpu能精确识别有用的arp报文,并有效阻止了arp泛洪攻击导致arp处理效率低的问题,节省了系统的整体开销,提高处理效率和防护效果。

附图说明

图1本发明方法步骤流程图;

图2本发明设备主要装置示意图;

图3本发明arp报文在switch的处理示意图;

图4本发明转发面arp报文处理模块示意图;

图5本发明arp条目信息表示意图;

图6本发明arp报文格式示意图;

图7本发明arp报文分类示意图;

图8本发明arp在cpu的处理流程图;

图9是本发明具体实例图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。

如图1所示,本实施例所述的arp报文的处理方法,包括:

s100、创建本地arp条目表;

s200、对arp报文的分类;

s300、根据配置对分类后arp报文丢弃或上送;

s400、上送至arp协议层前,对arp报文进行限速处理。

下面结合附图对本发明做详细说明:

本方法对arp报文处理主要是交换芯片和cpu,如图2所示,交换芯片负责转发并上送arp报文到cpu,如图3所示。cpu负责对arp报文分类,并进行相关处理。这里cpu处理主要由三块构成,分别是控制面建立本地arp条目表、转发面arp报文接收模块处理和arp报文协议模块处理,如图4所示。本地arp表是根据设备接口配置的ip地址自动生成一张arp条目表,该arp条目表项信息由接口、ip组成,如图5所示,当接口的ip地址或者接口被删除,该arp本地条目也相应删除,arp条目表是提供给arp接收模块查表使用。arp接收模块特点对报文处理效率高,在这个阶段可以简单解析报文内容进行相关处理。arp协议模块的处理是标准协议处理流程,特点是报文处理全面但效率低。本实施例主要在arp接收模块阶段挑出设备需要的arp报文进行优先处理,非本设备需要的报文根据配置要求处理,从而提高处理arp报文的效率,最后通过arp报文限速,最终达到减少cpu的负担。因此本实施例处理arp报文首先需对arp种类进行分类,本发明将arp分为2类:本设备需要的和本设备不需要的。

arp报文格式如图6所示,本设备需要的包含2种arp报文:1、免费arp报文,即目标ip地址与发送者ip地址字段一致。2、目标ip字段与本设备配置的ip地址相同的arp报文,即arp接收模块收到的arp报文中目的ip字段与本地arp条目信息能够匹配的。除去这2种arp报文,其他的可以归类为本设备不需要的arp报文,arp报文分类如图7所示。

当cpu的arp接收模块收到arp报文,首先对收到arp报文的接口信息、目标ip字段与本地的arp条目的接口信息、ip字段进行匹配,接口信息匹配主要是接口编号及vlan属性的匹配,如果匹配则认为本设备需要的,否则继续判断是否为免费arp报文,如果是免费arp报文则认为本设备需要的,否则认为是本设备不不需要的报文,根据设备配置丢弃或者继续处理。在上送arp协议模块处理前,arp接收模块需要对arp报文进行一个限速处理过程发,防止同一类的arp报文过多,最后送至arp协议模块处理,其arp报文在cpu具体处理流程图如图8所示。这样就解决了网络中arp报文泛洪冲击cpu而导致cpu负担过重的问题。

具体案例如下:

图9为本实例构造的组网场景,具体实施如下:

1、将r1设备的接口gei-1/1、gei-1/2、gei-1/3加入到vlanid值为100的域内,同时配置一个vlan100的接口,其ip地址:10.1.1.1地址,这时生成一个本地arp条目表,该arp条目表项信息由接口vlan100和ip地址10.1.1.1组成。当接口的ip地址或者接口被删除,该arp本地条目也相应删除。同时对r2设备的gei-1/1、gei-1/2也加入到vlanid为100的域内,其接口vlan100的ip地址:11.1.1.1地址,该设备生成一个本地arp条目,接口为vlan100,ip:11.1.1.1。

2、测试仪设备构造3种不同的arp报文,免费arp报文、目标ip与r1设备配置的ip一致的arp请求报文、目标ip与r2设备配置的ip一致的arp请求报文,三种不同arp报文同时进入到设备r1。

3、r1设备交换芯片收到这三种arp报文,交换芯片识别出arp报文后,根据vlan转发原理,arp报文会备转发到其他vlan100的端口,但由于是arp报文,需上送cpu处理。此时免费arp报文、目标ip字段分别为10.1.1.1和11.1.1.1的请求arp报文会从gei-1/2、gei-1/3发送出去,但不管怎样要拷贝一份到cpu,因为芯片不确定这些arp报文是本设备需要处理的还是送到其他其他设备处理。

4、当r1设备的cpu收到这三种arp报文时,首先arp接收模块对报文进行解析。首先判断该arp报文目标ip字段及携带的接口信息是否与本地arp条目匹配,即判断接口的vlan信息和ip地址匹配。如果不匹配,则继续判断是否是免费arp报文。如果不是,则根据r1设备配置要求,进行丢弃或者继续处理,通常对于非本设备需要的arp报文建议是进行丢弃处理,以提高arp报文的处理效率并减轻cpu的负担,因为这些arp都是非本设备需要的。此时目标ip为10.1.1.1的arp报文和免费arp会继续处理。所以对于本设备来说,本设备需要的arp报文就是目标ip为10.1.1.1的arp报文和免费arp报文,本设备不需要的arp报文是目标ip为11.1.1.1。

5、在送往arp协议模块之前,需要进行一个限速处理,防止arp报文过多,影响cpu性能。

6、最后进入arp协议模块处理,该阶段处理不在本发明讨论的范畴。

7、r2此时会收到r1转发过来三种arp报文,r2芯片收到这两种arp报文,会进行vlan转发,并将三种arp报文送至cpu。其步骤同4,cpu的arp协议模块只处理本设备需要的arp报文,即免费arp报文及目标ip字段为11.1.1.1的arp请求报文。

以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1