地址解析协议报文的处理方法及装置与流程

文档序号:13688334阅读:280来源:国知局
地址解析协议报文的处理方法及装置与流程

本发明涉及通信领域,具体而言,涉及一种地址解析协议报文的处理方法及装置。



背景技术:

相关技术中的地址解析协议(addressresolutionprotocol,简称为arp)是根据ip地址获取物理地址的一个tcp/ip协议。主机发送信息时将包含目标ip地址的arp请求广播到网络上的所有主机,并接收返回消息,以此确定目标的物理地址;收到返回消息后将该ip地址和物理地址存入本机arp缓存中并保留一定时间,下次请求时直接查询arp缓存以节约资源。地址解析协议是建立在网络中各个主机互相信任的基础上的,网络上的主机可以自主发送arp应答消息,其他主机收到应答报文时不会检测该报文的真实性就会将其记入本机arp缓存。图1是根据本发明相关技术的arp报文格式示意图,arp报文格式如附图1所示。

任何路由器设备中的arp条目都是有个数限制的,不可能无限制的学习,条目数量达到上限以后就不再学习。按照arp协议的设计,一个主机即使收到的arp应答并非自身请求得到的,也会将其ip地址和mac地址的对应关系添加到自身的arp映射表中。这样可以减少网络上过多的arp数据通信,但也为“arp欺骗”创造了条件。网络中有一种泛洪攻击,就是有恶意用户发出大量的arp报文,造成路由器设备的arp表项溢出,导致正常通信因为条目满学习不到arp,影响正常用户流量的转发,图2是根据本发明相关技术的arp泛洪攻击示意图,如附图2所示。另外现在路由器设备一般都有控制面安全限速丢包措施,如果有泛洪攻击,可能也会导致控制面正常的arp报文被无差别的丢弃,从而影响控制面的协议交互。

为了处理上述情况,相关技术中有以下几种方法:

1开启动态主机配置协议(dynamichostconfigureprotocol,简称为dhcp)snooping(探听)

利用dhcpsnooping建立的用户表信息,对收到的arp报文做合法性校验,不合法的arp报文被直接丢弃,不上送cpu,以达到保护cpu上arp资源的目的

2配置基于arp的各种限速

1)配置根据源ip地址进行arpmiss消息限速,避免设备的资源浪费在处理arp丢弃消息上,保证用户的其他业务能够正常运行。防止用户侧存在攻击者发出大量目的ip地址不可达的ip报文而形成arp泛洪攻击。保证设备可以正常处理服务器发出的大量arp丢弃消息,避免因丢弃此类报文而造成网络无法正常通信。

2)配置基于接口的arp表项限制,防止该接口下所接入的某一用户发起arp攻击时导致设备的arp表资源都被耗尽。

3)分别根据源mac地址、源ip地址配置arp限速功能,防止用户发送的大量源mac地址固定、源ip地址固定的arp报文形成的arp泛洪攻击,避免cpu进程繁忙而影响到cpu处理正常业务。

方法1需要部署dhcpsnooping,报文处理过程比较麻烦,严重影响路由器的报文处理效率,并且一般路由器不是接入设备,也不会部署dhcpsnooping;方法2在有攻击的情况下,可能导致误丢一些正常的arp学习,影响一些正常业务。

针对相关技术中存在的上述问题,目前尚未发现有效的解决方案。



技术实现要素:

本发明实施例提供了一种地址解析协议报文的处理方法及装置,以至少解决相关技术中防范arp泛洪攻击效率低的问题。

根据本发明的一个实施例,提供了一种地址解析协议报文的处理方法,包括:接收地址解析协议arp报文;根据预设白名单获得arp报文的优先级信息;按照优先级信息将arp报文上送至中央处理器cpu进行arp学习,其中,不同优先级信息对应的arp报文的上送带宽不同。

可选地,预设白名单包括合法ip地址,合法ip地址包括以下至少之一:通过主动学习得到的因特网协议ip地址;通过被动学习且经过反向探测确认存在的ip地址;cpu在转发路由时历史使用过的ip地址;通过静态配置得到的预设ip地址。

可选地,预设白名单包括各类arp报文所属协议的协议优先级,根据预设白名单获得arp报文的优先级信息包括:对于有源ip和目的ip的白名单,根据使用所述arp报文的ip协议对应的协议优先级确定白名单条目的优先级信息;其中,对于同时有目的ip和源ip的白名单为第一优先级,对于仅有目的ip的白名单为第二优先级,对于没有目的ip和源ip的白名单为第三优先级,所述第一优先级,所述第二优先级,所述第三优先级依次递减。

可选地,根据预设白名单获得arp报文的优先级信息包括:提取所述arp报文中源ip地址和目的ip地址去匹配白名单条目;根据arp报文中源ip地址和目的ip地址匹配白名单表项,其中,命中的arp白名单表项不包括源ip地址和目的ip地址时,确定arp报文的优先级最低;命中的arp白名单表项包括源ip地址和目的ip地址,且目的ip地址和本地ip地址匹配时,确定arp报文的优先级最高,命中的arp白名单表项只有目的地址,并且目的ip地址和本地ip地址匹配时,报文优先级居中。

可选地,按照优先级信息将arp报文上送至中央处理器cpu进行arp学习包括:按照优先级信息将arp报文通过相应带宽的通道,将arp报文上送至中央处理器cpu进行arp学习。

根据本发明的另一个实施例,提供了一种地址解析协议报文的处理装置,包括:接收模块,用于接收地址解析协议arp报文;获得模块,用于根据预设白名单获得arp报文的优先级信息;上送模块,用于按照优先级信息将arp报文上送至中央处理器cpu进行arp学习,其中,不同优先级信息对应的arp报文的上送带宽不同。

可选地,预设白名单包括合法ip地址,合法ip地址包括以下至少之一:通过主动学习得到的因特网协议ip地址;通过被动学习且经过反向探测确认存在的ip地址;cpu在转发路由时历史使用过的ip地址;通过静态配置得到的预设ip地址。

可选地,预设白名单包括各类arp报文所属协议的协议优先级,获得模块包括:确定单元,对于有源ip和目的ip的白名单,根据使用该arp条目的ip协议对应的协议优先级确定白名单条目的优先级信息,比如,边界网关协议bgp的协议优先级大于因特网包探索器ping的协议优先级。可以根据协议的重要程度划分如果等级。

可选地,上送模块包括:上送单元,用于按照优先级信息将arp报文通过相应带宽的通道,将arp报文上送至中央处理器cpu进行arp学习。

根据本发明的又一个实施例,还提供了一种存储介质。该存储介质设置为存储用于执行以下步骤的程序代码:

接收地址解析协议arp报文;

根据预设白名单获得arp报文的优先级信息;

按照优先级信息将arp报文上送至中央处理器cpu进行arp学习,其中,不同优先级信息对应的arp报文的上送带宽不同。

通过本发明,接收地址解析协议arp报文;根据预设白名单获得arp报文的优先级信息;按照优先级信息将arp报文上送至中央处理器cpu进行arp学习,其中,不同优先级信息对应的arp报文的上送带宽不同。由于根据arp报文的优先级信息来选择上送至cpu的带宽,在过滤无效报文的同时,还保证了合法报文的顺利通过,可以解决相关技术中防范arp泛洪攻击效率低的问题,达到了精确识别arp报文的效果,节省了系统的整体开销,提高了处理效率和防护效果。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1是根据本发明相关技术的arp报文格式示意图;

图2是根据本发明相关技术的arp泛洪攻击示意图;

图3是根据本发明实施例的地址解析协议报文的处理方法的流程图;

图4是根据本发明实施例的地址解析协议报文的处理装置的结构框图;

图5是根据本发明实施例的arp泛洪攻击防御装置模块构成图;

图6是根据本发明的arp报文白名单过滤表格式示意图;

图7是根据本方实施例的合法用户确认以及a类白名单产生流程图。

具体实施方式

下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。

需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。

实施例1

在本实施例中提供了一种地址解析协议报文的处理方法,图3是根据本发明实施例的地址解析协议报文的处理方法的流程图,如图3所示,该流程包括如下步骤:

步骤s302,接收地址解析协议arp报文;

步骤s304,根据预设白名单获得arp报文的优先级信息;

步骤s306,按照优先级信息将arp报文上送至中央处理器cpu进行arp学习,其中,不同优先级信息对应的arp报文的上送带宽不同。

通过上述步骤,接收地址解析协议arp报文;根据预设白名单获得arp报文的优先级信息;按照优先级信息将arp报文上送至中央处理器cpu进行arp学习,其中,不同优先级信息对应的arp报文的上送带宽不同。由于根据arp报文的优先级信息来选择上送至cpu的带宽,在过滤无效报文的同时,还保证了合法报文的顺利通过,可以解决相关技术中防范arp泛洪攻击效率低的问题,达到了精确识别arp报文的效果,节省了系统的整体开销,提高了处理效率和防护效果。

可选地,上述步骤的执行主体可以为路由器、交换机、路由表项的管理设备等,但不限于此。

可选的,预设白名单包括合法ip地址,合法ip地址可以但不限于为:通过主动学习得到的因特网协议ip地址;通过被动学习且经过反向探测确认存在的ip地址;cpu在转发路由时历史使用过的ip地址;通过静态配置得到的预设ip地址等。

可选的,预设白名单包括各类arp报文所属协议的协议优先级,根据预设白名单获得arp报文的优先级信息包括:对于有源ip和目的ip的白名单,根据使用该arp条目的ip协议对应的协议优先级确定白名单条目的优先级信息,比如,边界网关协议(bordergatewayprotocol,简称为bgp)的协议优先级大于因特网包探索器(packetinternetgroper,简称为ping)的协议优先级。可以根据协议的重要程度划分如果等级。还有如数据报文发包用到的arp条目,它的优先级可以介于两者之间。

可选的,根据预设白名单获得arp报文的优先级信息包括:

s11,提取所述arp报文中的源ip地址和目的ip地址去匹配白名单条目;

s12,判断arp报文中是否包括源ip地址和目的ip地址;

s13,在命中的arp白名单表项不包括源ip地址和目的ip地址时,确定arp报文的优先级最低,在命中的arp白名单表项包括源ip地址和目的ip地址,且目的ip地址和本地ip地址匹配时,确定arp报文的优先级最高,在命中的arp白名单表项只包括源ip地址和目的ip地址其中之一时,优先级介于两者之间。

进一步的,在arp报文中包括目的ip地址时,方法还包括:

s13,提取arp报文中的目的ip地址,检查预设白名单所包括的合法ip地址集合中是否包括源ip地址;

s14,根据检查结果确定arp报文的优先级信息,其中,在检查到合法ip地址集合中包括源ip地址时arp报文的优先级,大于在检查到合法ip地址集合中不包括源ip地址时arp报文的优先级。

可选的,按照优先级信息将arp报文上送至中央处理器cpu进行arp学习包括:按照优先级信息将arp报文通过相应带宽的通道,将arp报文上送至中央处理器cpu进行arp学习,不同带宽的通道的限速值不同。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例的方法。

实施例2

在本实施例中还提供了一种地址解析协议报文的处理装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。

图4是根据本发明实施例的地址解析协议报文的处理装置的结构框图,如图4所示,该装置包括:

接收模块40,用于接收地址解析协议arp报文;

获得模块42,用于根据预设白名单获得arp报文的优先级信息;

上送模块44,用于按照优先级信息将arp报文上送至中央处理器cpu进行arp学习,其中,不同优先级信息对应的arp报文的上送带宽不同。

可选的,预设白名单包括合法ip地址,合法ip地址可以但不限于为:通过主动学习得到的因特网协议ip地址;通过被动学习且经过反向探测确认存在的ip地址;cpu在转发路由时历史使用过的ip地址;通过静态配置得到的预设ip地址等。

可选的,预设白名单包括各类arp报文所属协议的协议优先级,根据预设白名单获得arp报文的优先级信息包括:对于有源ip和目的ip的白名单,根据使用该arp条目的ip协议对应的协议优先级确定白名单条目的优先级信息,比如,边界网关协议bgp的协议优先级大于因特网包探索器ping的协议优先级。可以根据协议的重要程度划分如果等级。还有如数据报文发包用到的arp条目,它的优先级可以介于两者之间。

可选的,上送模块还包括上送单元(图中未示出),用于按照优先级信息将arp报文通过相应带宽的通道,将arp报文上送至中央处理器cpu进行arp学习。

需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。

实施例3

本实施例提供一种防范arp泛洪攻击的方法和装置。本实施例的防范arp泛洪攻击的装置包括以下模块:

图5是根据本发明实施例的arp泛洪攻击防御装置模块构成图,包括:arp表项管理模块50、控制面安全模块52、转发表管理模块54以及微码处理模块56,各个模块关系如附图5所示。arp表项管理模块负责产生正确的arp报文白名单过滤表,并下发给转发表管理模块;控制面安全模块负责控制报文上送cpu的各级限速,这些限速主要根据优先级进行,不同优先级上送带宽不一样;转发表管理模块负责把收到arp报文白名单过滤表写入硬件表;微码处理模块在收到arp报文的时候,查询arp白名单过滤硬件表,判定arp报文的合法性,如果报文合法则高优先级上送,不合法则低优先级上送。高优先级上送,报文从微码到协议cpu,丢包较少,低优先级上送则丢包较多。

本实施例的防范arp泛洪的方法包括以下步骤:

第一步,arp表项管理模块通过某种方法识别出合法的用户ip地址,产生arp报文白名单过滤表。

第二步,arp表项管理模块把产生的arp报文白名单过滤表下发给转发表管理模块。

第三步,转发表管理模块把收到的表项写入硬件表。

第四步,微码处理模块收到arp报文,查询arp白名单过滤硬件表,获取报文上送优先级,上送过程中各级通道根据优先级从控制面安全的表项里面查出各级限速值,根据这些限速值上送arp到cpu。

本次发明的关键是如何识别合法的用户ip。本次发明提出几种方法,但是也不局限于本次提出的方案。

1)arp表项管理模块在学习arp表项的时候,如果这个表项是自己主动学习到的,可以认为ip是合法的;

2)如果arp表项是被动学习的,经过反向探测确认ip是存在的,可以认为是合法的;

3)cpu上ip协议发包,如果用到这个arp条目,也可以认为这个ip合法的;

4)用户也可以手工配置静态合法用户ip。

甚至可以根据上层发送的ip协议重要程度,划分ip的优先级。比如路由协议bgp(bordergatewayprotocol,边界网关协议)等发包用到的arp条目,它的ip优先级可以认为最高;ping(packetinternetgroper,因特网包探索器)等检查协议发包用到的arp条目,它的ip优先级可以比路由协议低;比如数据报文发包用到的arp条目,它的ip优先级可以相对较低。对于方案1,可以根据触发arp学习的ip报文确定ip的优先级;对于方案2,因为是被动学习,可以默认是比较低的优先级,等后续有报文发送再更新优先级;对于方案3,直接根据发送的ip确定优先级。优先级可以以使用arp的ip的最高优先级为准,比如先是ping使用,有一个优先级,然后bgp再用,优先级比ping高,就按照bgp的优先级设置ip优先级;如果先bgp使用有一个优先级,然后ping用,因为ping比bgp优先级低,所以这里ip优先级就不调整,以bgp的优先级为准。对于方案4,静态配置的用户ip优先级是最高的。

arp表项管理模块识别出ip的合法性以及优先级以后,可以产生arp报文白名单过滤表,表项内容主要有目的ip(用户ip)、本地ip、优先级、arp报文标记等,不同优先级对应不同的cpu上送限速值,优先级越高,上送带宽越大;反之,优先级越低,上送带宽越小。图6是根据本发明的arp报文白名单过滤表格式示意图,如附图6所示,arp报文白名单过滤表可以按照如下方式分类:

1)c类arp报文过滤白名单:arp报文标记和优先级,其他字段不填,这类白名单条目优先级最低。在arp报文目的ip不是本地ip的时候,按照这个表项上送,这种情况正常报文就是arp代理报文,非正常情况就是攻击报文。

2)b类arp报文过滤白名单:本地ip、arp报文标记和优先级,这类条目一般用在没有确认的用户学习本地iparp报文上送的情况。b类白名单条目优先级比c类高。

3)a类arp报文过滤白名单:目的ip、本地ip、arp报文标记和优先级,这类白名单优先级比前面两个都高,并且这类里面,还可以按照使用arp的ip报文优先级,再进一步细化优先级处理。静态配置的也包括在这个里面,只不过静态配置的优先级最高。

这三类表项按照优先级从高到底分别存储,匹配的时候先匹配高优先级的,高优先级匹配不上再匹配低优先级的。微码处理模块收到arp报文,取出报文源和目的ip,分别与arp报文白名单过滤表里面的用户ip和本地ip匹配,找到表项,取出优先级信息,按照优先级进行限速上送,高优先级报文,在上送各个通道,都优先处理。这样就保证了合法的arp报文优先上送。

采用本实施例方法和装置(系统),与现有技术相比,取得了明显的进步,达到了精确识别arp报文的效果,节省了系统的整体开销,提高了处理效率和防护效果等。

本发明主要是使用某种方式,精确识别出各类arp报文,针对各类不同的arp报文,按照不同优先级上送,从而保护本控制面业务使用的arp条目的报文收发,保证业务不因为arp报文丢失而中断;诊断无效源ip的arp泛洪,采用针对该ip发送arp探测来确认arp条目的有效性,探测失败,arp条目直接删除,从而避免设备arp条目溢出。

流程部分的处理步骤如下:

1arp报文过滤白名单产生

1.1系统开启防御arp泛洪功能以后,arp表项管理模块先产生附图6中的c类arp报文过滤白名单,下发给转发表管理模块,供微码上送报文使用。

1.2如果接口上有arp报文上送,则根据接口ip,产生附图6中b类arp报文过滤白名单。

1.3在接口上有报文收发的情况下,图7是根据本方实施例的合法用户确认以及a类白名单产生流程图,按照附图7的流程产生a类arp报文过滤白名单。

2arp报文过滤白名单下发

arp报文过滤白名单下发给转发表管理模块,转发表管理模块按照一定顺序写硬件表,在硬件表里面,a类在b类前面,b类在c类前面,保证了微码从前到后顺序查找的时候,优先匹配a类arp报文过滤白名单。

3arp泛洪攻击防御

arp报文上送,微码根据报文查找arp报文过滤白名单表,获取对应上送优先级。然后上送,在上送过程中,各级通道根据优先级分别从控制面安全模块获取自己对应的上送限速值,然后进行限速。这样就保证了没有经过确认的arp报文上送cpu不会太快,不会导致cpu冲高以及短时间arp表项溢出。对于经过确认的报文,优先级比较高,在通道各个地方保证了高优先级上送,丢包概率比较低,保证使用这类arp发包的业务不会因为arp删除出现问题。被动学习的arp,在防御开启以后,会在学到的时候,触发一个反向探测,探测ip地址是否存在,如果不存在则删除条目。这样保证了无效的ip的攻击能够很快被识别,它们产生的arp条目能够很快被删除,也保证了arp表项不会溢出。

实施例4

本发明的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的程序代码:

s1,接收地址解析协议arp报文;

s2,根据预设白名单获得arp报文的优先级信息;

s3,按照优先级信息将arp报文上送至中央处理器cpu进行arp学习,其中,不同优先级信息对应的arp报文的上送带宽不同。

可选地,在本实施例中,上述存储介质可以包括但不限于:u盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

可选地,在本实施例中,处理器根据存储介质中已存储的程序代码执行接收地址解析协议arp报文;

可选地,在本实施例中,处理器根据存储介质中已存储的程序代码执行根据预设白名单获得arp报文的优先级信息;

可选地,在本实施例中,处理器根据存储介质中已存储的程序代码执行按照优先级信息将arp报文上送至中央处理器cpu进行arp学习,其中,不同优先级信息对应的arp报文的上送带宽不同。

可选地,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。

显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。

以上仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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