一种基于openflow通道的报文处理方法和装置与流程

文档序号:13739203阅读:161来源:国知局
一种基于openflow通道的报文处理方法和装置与流程

本发明涉及通信技术领域,特别涉及一种基于openflow通道的报文处理方法和装置。



背景技术:

sdn(softwaredefinednetwork,软件定义网络)是一种新型网络架构和技术体系,将传统紧耦合的网络架构拆分成应用、控制、转发三层分离的架构。其中,上层应用和底层转发设施被抽象成多个逻辑实体,具有开放可编程的特点。

openflow技术是一种sdn网络的技术,如图1所示,sdn网络包括:控制器、交换机、openflow通道及终端(如主机)。其中,控制器用于集中控制整个网络,交换机用于根据控制器所确定的控制方案来处理被引入到交换机中的数据包,openflow通道负责控制器与交换机之间的通信,终端用于将该数据包传输至交换机,并通过交换机接收该数据包。

由于sdn网络中,接入终端仍然遵循tcp/ip协议规则进行通信,需要arp(addressresolutionprotocol,地址解析协议)来进行地址解析。

在sdn网络中,当主机状态发生变化时,例如主机上线或者迁移时,通常通过向处理该主机的sdn控制器发送arp报文以上报主机的当前状态。

攻击者正是利用了该特点,通过发送大量的arp报文以进行arp报文攻击,然而,当sdn控制器接收的arp报文数量较大时,该sdn控制器的处理压力也会大幅度增加,进而导致一些合法的arp报文不能被sdn控制器处理,致使发送合法arp报文的主机无法进行网络通信。

可见,在现有sdn网络中,针对arp报文攻击的处理效率较低。



技术实现要素:

本发明实施例提供一种基于openflow通道的报文处理方法和装置,用于解决现有sdn网络中针对arp报文攻击的处理效率较低的技术问题,提高了针对arp报文的处理效率,增强了sdn网络的安全性。

一方面,本发明实施例提供了一种基于开放流openflow通道的报文处理方法,应用于一交换机,其中,所述交换机包括第一接口在内的至少一个接口,包括:

通过所述第一接口获得第一合法地址解析协议arp表,其中,所述第一合法arp表中每个表项记录发送arp报文的合法终端的地址信息;

确定所述第一接口接收到来自第一终端的第一arp报文时,获取所述第一arp报文中的第一终端地址信息;

若所述第一合法arp表中不存在与所述第一终端地址信息对应的表项时,判断所述第一arp报文是否为动态主机配置协议dhcp报文;

若所述第一arp报文为所述dhcp报文,转发所述第一arp报文,否则,丢弃所述第一arp报文。

可选地,在通过所述第一接口获得第一合法地址解析协议arp表时,所述方法还包括:

通过所述第一接口获得第一不合法arp表,其中,在所述第一不合法arp表的表项数量为第一预设阈值,且向所述第一合法arp表中添加合法arp表项时可抢占所述第一不合法arp的表项容量,删除所述第一不合法arp表中保留时长超过第一设定阈值的表项,以使所述合法arp表项能够占用保留时长超过第一设定阈值的表项对应的容量。

可选地,在所述通过所述第一接口获得第一合法地址解析协议arp表之前,所述方法还包括:

获取通过所述第一接口转发的dhcp确认字符ack报文的第二终端地址信息,其中,所述dhcpack报文具体为dhcp服务器向所述第二终端回复的报文;

判断所述第一接口当前的合法arp表是否存在与所述第二终端地址信息对应的表项;

若存在,根据所述dhcpack报文中的租约时间更新所述第一接口当前的合法arp表中所述第二终端地址信息对应表项的老化时间,获得更新后的所述第一合法arp表。

可选地,所述方法还包括:

若所述第一接口当前的合法arp表不存在与所述第二终端地址信息对应的表项,判断所述第一接口当前的合法arp表的表项数量是否为所述第一接口的学习arp阈值;

若所述第一接口当前的合法arp表的表项数量小于所述学习arp阈值,判断所述第一接口当前的不合法arp表的表项数量是否为第二预设阈值;

若所述第一接口当前的不合法arp表的表项数量小于所述第二预设阈值,将所述第二终端地址信息添加至所述第一接口当前的合法arp表的表项中,获得更新后的所述第一合法arp表。

可选地,所述方法还包括:

若所述第一接口当前的不合法arp表的表项数量为所述第二预设阈值,删除所述第一接口当前的不合法arp表中保留时长超过第二设定阈值的表项,且将所述第二终端地址信息添加至所述第一接口当前的合法arp表的表项中,获得更新后的所述第一合法arp表。

可选地,在所述通过所述第一接口获得第一不合法arp表之前,所述方法还包括:

通过所述第一接口接收来自第三终端的第二arp报文;

获取所述第二arp报文中的第三终端地址信息;

若所述第一接口当前的合法arp表的表项中不存在与所述第三终端地址信息对应的表项时,判断所述第二arp报文是否是dhcp报文;

若是,转发所述第二arp报文,更新所述第一接口当前的不合法arp表,将所述第三终端地址信息添加至所述第一接口当前的不合法arp表的表项中,获得更新后的所述第一不合法arp表。

可选地,在所述判断所述第二arp报文是否是dhcp报文之后,所述方法还包括:

若所述第二arp报文不为所述dhcp报文,丢弃所述第二arp报文,更新所述第一接口当前的不合法arp表,将所述第三终端地址信息添加至所述第一接口当前的不合法arp表的表项中,获得更新后的所述第一不合法arp表。

另一方面,本发明实施例还提供了一种基于开放流openflow通道的报文处理装置,应用一交换机,其中,所述交换机包括第一接口在内的至少一个接口,包括:

第一获得模块,用于通过所述一接口获得第一合法地址解析协议arp表,其中,所述第一合法arp表中每个表项记录发送arp报文的合法终端的地址信息;

第一获取模块,用于确定所述第一接口接收到来自第一终端的第一arp报文时,获取所述第一arp报文中的第一终端地址信息;

第一判断模块,若所述第一合法arp表中不存在与所述第一终端地址信息对应的表项时,判断所述第一arp报文是否为dhcp报文;

第一处理模块,若所述第一arp报文为所述dhcp报文,转发所述第一arp报文,否则,丢弃所述第一arp报文。

可选地,在通过所述第一接口获得第一合法地址解析协议arp表时,所述装置还包括:

第二获得模块,用于通过所述第一接口获得第一不合法arp表,其中,在所述第一不合法arp表的表项数量为第一预设阈值,且向所述第一合法arp表中添加合法arp表项时可抢占所述第一不合法arp的表项容量,删除所述第一不合法arp表中保留时长超过第一设定阈值的表项,以使所述合法arp表项能够占用保留时长超过第一设定阈值的表项对应的容量。

可选地,在所述通过所述第一接口获得第一合法地址解析协议arp表之前,所述装置还包括:

第二获取模块,用于获取通过所述第一接口转发的dhcp确认字符ack报文的第二地终端址信息,其中,所述dhcpack报文具体为dhcp服务器向所述第二终端回复的报文;

第二判断模块,用于判断所述第一接口当前的合法arp表是否存在与所述第二终端地址信息对应的表项;

第二处理模块,若存在,根据所述dhcpack报文中的租约时间更新所述第一接口当前的合法arp表中所述第二终端地址信息对应表项的老化时间,获得更新后的所述第一合法arp表。

可选地,所述装置还包括:

第三判断模块,若所述第一接口当前的合法arp表不存在与所述第二终端地址信息对应的表项,判断所述第一接口当前的合法arp表的表项数量是否为所述第一接口的学习arp阈值;

第四判断模块,若所述第一接口当前的合法arp表的表项数量小于所述学习arp阈值,判断所述第一接口当前的不合法arp表的表项数量是否为第二预设阈值;

第三处理模块,若所述第一接口当前的不合法arp表的表项数量小于所述第二预设阈值,将所述第二终端地址信息添加至所述第一接口当前的合法arp表的表项中,获得更新后的所述第一合法arp表。

可选地,所述装置还包括:

第四处理模块,若所述第一接口当前的不合法arp表的表项数量为所述第二预设阈值,删除所述第一接口当前的不合法arp表中保留时长超过第二设定阈值的表项,且将所述第二终端地址信息添加至所述第一接口当前的合法arp表的表项中,获得更新后的所述第一合法arp表。

可选地,在所述通过所述第一接口获得第一不合法arp表之前,所述装置还包括:

接收模块,通过所述第一接口接收来自第三终端的第二arp报文;

第三获取模块,用于获取所述第二arp报文中的第三终端地址信息;

第五判断模块,若所述第一接口当前的合法arp表的表项中不存在与所述第三终端地址信息对应的表项时,判断所述第二arp报文是否是dhcp报文;

第五处理模块,若是,转发所述第二arp报文,更新所述第一接口当前的不合法arp表,将所述第三终端地址信息添加至所述第一接口当前的不合法arp表的表项中,获得更新后的所述第一不合法arp表。

可选地,在所述判断所述第二arp报文是否是dhcp报文之后,所述装置还包括:

第六处理模块,若所述第二arp报文不为所述dhcp报文,丢弃所述第二arp报文,更新所述第一接口当前的不合法arp表,将所述第三终端地址信息添加至所述第一接口当前的不合法arp表的表项中,获得更新后的所述第一不合法arp表。

另一方面,本发明实施例还提供了一种计算机装置,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上所述的基于openflow通道的报文处理方法的步骤。

另一方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的基于openflow通道的报文处理方法的步骤。

本发明实施例中的上述一个或多个技术方案,至少具有如下一种或多种技术效果:

在本发明实施例的技术方案中,通过交换机的第一接口获得第一合法地址解析协议arp表,其中,所述第一合法arp表中每个表项记录发送arp报文的合法终端的地址信息;确定所述第一接口接收到来自第一终端的第一arp报文时,获取所述第一arp报文中的第一终端地址信息;若所述第一合法arp表中不存在与所述第一终端地址信息对应的表项时,判断所述第一arp报文是否为动态主机配置协议dhcp报文;若所述第一arp报文为所述dhcp报文,转发所述第一arp报文,否则,丢弃所述第一arp报文。也就是说,直接通过交换机的第一接口将接收到的来自终端的arp报文进行筛选,若该报文中的地址信息不在该接口的当前合法arp表的表项中,且为非dhcp报文,则直接丢弃该报文。可见,本发明实施例的技术方案直接通过交换机对arp报文的合法性进行筛选,直接将不合法arp报文丢弃掉,不仅提高了网络的安全性,还避免了大量的不合法arp报文占用较多的带宽资源及导致控制器的cpu占用率较高的问题,进一步地提高了针对arp报文的处理效率。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例。

图1为现有sdn网络的组网示意图;

图2为本发明实施例一中提供的一种基于开放流openflow通道的报文处理方法的方法流程图;

图3为本发明实施例一中提供的一种基于开放流openflow通道的报文处理方法中在步骤s101之前的方法流程图;

图4为本发明实施例一中提供的一种基于开放流openflow通道的报文处理方法中若dhcp服务器为终端分配到合法的ip地址时的方法流程图;

图5为本发明实施例一中提供的一种基于开放流openflow通道的报文处理方法中在通过所述第一接口获得第一不合法arp表之前的方法流程图;

图6为本发明实施例一中提供的一种基于开放流openflow通道的报文处理方法中合法arp报文的学习更新过程示意图;

图7为本发明实施例一中提供的一种基于开放流openflow通道的报文处理方法中不合法arp报文的学习更新过程示意图;

图8为本发明实施例二提供的一种基于开放流openflow通道的报文处理装置的结构示意图。

具体实施方式

本发明实施例提供一种基于openflow通道的报文处理方法和装置,用于解决现有sdn网络中针对arp报文攻击的处理效率较低的技术问题,提高了针对arp报文的处理效率,增强了sdn网络的安全性。

本发明实施例中的技术方案为解决上述的技术问题,总体思路如下:

在本发明实施例的技术方案中,通过交换机的第一接口获得第一合法地址解析协议arp表,其中,所述第一合法arp表中每个表项记录发送arp报文的合法终端的地址信息;确定所述第一接口接收到来自第一终端的第一arp报文时,获取所述第一arp报文中的第一终端地址信息;若所述第一合法arp表中不存在与所述第一终端地址信息对应的表项时,判断所述第一arp报文是否为动态主机配置协议dhcp报文;若所述第一arp报文为所述dhcp报文,转发所述第一arp报文,否则,丢弃所述第一arp报文。也就是说,直接通过交换机的第一接口将接收到的来自终端的arp报文进行筛选,若该报文中的地址信息不在该接口的当前合法arp表的表项中,且为非dhcp报文,则直接丢弃该报文。可见,本发明实施例的技术方案直接通过交换机对arp报文的合法性进行筛选,直接将不合法arp报文丢弃掉,不仅提高了网络的安全性,还避免了大量的不合法arp报文占用较多的带宽资源及导致控制器的cpu占用率较高的问题,进一步地提高了针对arp报文的处理效率。

为了更好的理解上述技术方案,下面通过附图以及具体实施例对本发明技术方案做详细的说明,应当理解本发明实施例以及实施例中的具体特征是对本发明技术方案的详细的说明,而不是对本发明技术方案的限定,在不冲突的情况下,本发明实施例以及实施例中的技术特征可以相互结合。

实施例一

本发明实施例一提供了一种基于开放流openflow通道的报文处理方法,应用于一交换机,其中,所述交换机包括第一接口在内的至少一个接口,包括:

s101:通过所述第一接口获得第一合法地址解析协议arp表,其中,所述第一合法arp表中每个表项记录发送arp报文的合法终端的地址信息;

s102:确定所述第一接口接收到来自第一终端的第一arp报文时,获取所述第一arp报文中的第一终端地址信息;

s103:若所述第一合法arp表中不存在与所述第一终端地址信息对应的表项时,判断所述第一arp报文是否为动态主机配置协议dhcp报文;

s104:若所述第一arp报文为所述dhcp报文,转发所述第一arp报文,否则,丢弃所述第一arp报文。

在具体实施过程中,对于步骤s101与步骤s102二者之间可以无先后执行顺序,也可以是先执行完步骤s101再执行步骤s102,还可以是先执行完步骤s102再执行步骤s101,当然,本领域的技术人员还可以根据用户的实际使用习惯来设置步骤s101与步骤s102间的执行顺序,在此就不一一赘述了。

如图2所示为先执行完步骤s101再执行步骤s102的方法流程图。在具体实施过程中,如图2所示的步骤间的实现过程如下:

首先,通过所述交换机至少一个接口中的第一接口,获得所述第一接口当前的第一合法arp表,其中,所述第一合法arp表具体为所述第一接口经学习获得的合法arp表。具体来讲,所述第一合法arp表中每个表项记录发送arp报文的合法终端的地址信息;其中,每个表项具体可以是由终端的ip地址和mac地址组成的信息内容。其中,所述第一终端具体可以为pc(personalcomputer,即个人计算机),还可以是主机,等等。然后,在确定所述第一接口接收到来自第一终端的第一arp报文时,获取所述第一arp报文中的第一终端地址信息;进一步地,将所述第一终端地址信息与所述至少一个表项中的信息进行比较,如果所述至少一个表项中不存在与所述第一地址信息对应的表项,进一步地,判断所述第一arp报文是否为dhcp(dynamichostconfigurationprotocol,动态主机配置协议)报文。如果所述第一arp报文为所述dhcp报文,则直接转发所述第一arp报文,否则,将所述第一arp报文丢弃。

在本发明实施例中,在执行步骤s101中的通过所述第一接口获得第一合法地址解析协议arp表时,所述方法还包括:通过所述第一接口获得第一不合法arp表,其中,在所述第一不合法arp表的表项数量为第一预设阈值,且向所述第一合法arp表中添加合法arp表项时可抢占所述第一不合法arp的表项容量,删除所述第一不合法arp表中保留时长超过第一设定阈值的表项,以使所述合法arp表项能够占用保留时长超过第一设定阈值的表项对应的容量。

具体来讲,所述交换机每个接口下学到的arp表分为合法arp表和不合法arp表,其中,合法arp表和不合法arp表中表项数量总和不超过对应接口下arp学习数量的限制。在具体实施过程中,为了避免所述交换机因为泛洪攻击导致arp表被耗尽,可以对所述交换机每个接口可以学习的最大arp数量进行限制。比如,所述第一接口下arp学习的最大数量为1000,其接口下的合法arp表的表项数量可以为600,同时不合法arp表的表项数量可以为400。再比如,其接口下的合法arp表的表项数量为500,同时不合法表的表项数量为400。再比如,其接口下的合法arp表的表项数量均为500,等等,在此就不一一赘述了。

在本发明实施例中,默认所述交换机的所述第一接口的合法arp表和不合法arp表均为空,在具体实施过程中,当通过所述第一接口首次接收到来自终端的的arp报文,获取该arp报文中的终端地址信息,由于所述第一接口在未接收到来自任何终端的arp报文之前的合法arp表为空,所以,所述第一接口当前的合法arp表中不存在与该终端地址信息对应的表项,即默认为该arp报文是不合法arp,并将该arp报文对应的地址信息保存在不合法arp表的表项中,此外,直接将所述第一接口首次接收到的来自终端的arp报文所对应的地址信息保存在不合法arp表的表项中,进一步地保证了网络安全性。在具体实施过程中,当所述第一接口先后接收到来自多个不同终端的arp报文后,很容易导致所述第一接口当前的不合法arp表的表项数量为一预设阈值(即不合法arp表满)。当所述第一接口当前的不合法arp表满的时候,如果所述第一接口继续接收来自其它终端的arp报文时,最后学到的不合法arp表项能够抢占最早学到的不合法arp表项,从而提高了所述接收机的使用性能。

此外,为了进一步提高所述交换机的使用性能,在本发明实施例中,所述第一接口的合法arp表优于不合法arp表,在添加合法arp表项时,合法arp表项可以抢占不合法arp表的表项容量,同时,在添加不合法arp表项时,保持合法arp表的表项容量不被不合法arp表项抢占。举个具体的例子来说,所述第一接口下arp学习的最大数量为1000,其接口下合法arp表可以存储的表项数量为600,同时不合法arp表的表项数量为400,当所述第一接口的合法arp表项有700个时,其中,600个合法arp表项存储在该接口合法arp表中,另外100个合法arp表项将占用不合法arp表项中的其中100个表项容量。此外,如果合法arp表的表项容量可被不合法arp表项抢占,当所述第一接口当前的不合法arp表和合法arp表的表项容量均被不合法arp表项抢占,则后续无法实现对来自合法终端的arp报文的合法性进行快速的判定。

在本发明实施例中,当所述第一接口首次接收到来自合法终端的arp报文时,则需要更新所述第一接口当前的合法arp表,将该来自合法终端的arp报文中的合法终端地址信息添加所述第一接口当前的合法arp表的表项中。在具体实施过程中,具体需要基于所述第一接口的当前不合法arp表是否已满,来依情况更新所述第一接口的当前合法arp表。详细描述如下:

在具体实施过程中,当所述第一接口当前的所述第一不合法arp表的表项数量为所述第一预设阈值(比如,所述第一不合法arp表已满),且所述第一接口当前的所述第一合法arp表的表项数量不等于接口下arp报文学习数量的限制(比如,不超过1000)时,如果要向所述第一合法arp表中添加合法arp表项,该表项可以抢占所述第一不合法arp表的表项容量。具体来讲,删除所述第一不合法arp表中保留时长好过第一设定阈值的表项,比如,删除所述第一不合法arp表最早学到的arp表项,进一步地,使得所述合法arp表项能够占用已删除表项所对应的容量,从而变相地提高了所述第一接口下arp表对合法arp表项的存储容量。在具体实施过程中,合法arp表的表项容量最大为接口可学习的arp表项最大数量。

在本发明实施例中,请参考图3,在步骤s101:通过所述第一接口获得第一合法地址解析协议arp表之前,所述方法还包括:

s201:获取通过所述第一接口转发的dhcp确认字符ack报文的第二终端地址信息,其中,所述dhcpack报文具体为dhcp服务器向所述第二终端回复的报文;

s202:判断所述第一接口当前的合法arp表是否存在与所述第二终端地址信息对应的表项;

s203:若存在,根据所述dhcpack报文中的租约时间更新所述第一接口当前的合法arp表中所述第二终端地址信息对应表项的老化时间,获得更新后的所述第一合法arp表。

在具体实施过程中,步骤s201至步骤s203的具体实现过程如下:

首先,在所述交换机上开启openflowarp侦听,对终端和dhcp服务器之间的交互过程进行侦听,当该终端分配到合法的ip地址时,则认为这个终端是合法的终端。具体来讲,在所述终端具体为第二终端时,在dhcp服务器为所述第二终端的分配合法的ip地址之后,通过所述第一接口转发出dhcp确定字符ack(acknowledgement)报文,进一步地,确定出所述dhcpack报文的第二终端地址信息,其中,所述dhcpack报文具体为dhcp服务器向所述第二终端回复的报文。然后,判断所述第一接口当前的合法arp表是否存在与所述第二终端地址信息对应的表项。若存在,根据所述dhcpack报文中的租约时间更新所述第一接口当前的合法arp表中所述第二终端地址信息对应表项的老化时间,获得更新后的所述第一合法arp表。在具体实施过程中,所述第二终端与所述第一终端可以是同一终端,还可以是不同的终端。

在具体实施过程中,以所述第二终端与dhcp服务器之前的交互过程为例,所述第二终端会定期发出dhcp请求续租报文,dhcp服务器会回复dhcpack报文同意续租,所述交换机就根据这些dhcpack报文来更新合法arp表的老化时间。比如,更新后合法arp表的老化时间为2h,待时长满足2h时,老化掉当前的合法arp表,清空当前的合法arp表。此外,如果租约到期而所述第二终端还未发出续租报文,dhcp服务器也没有回应dhcpack报文,则认为所述第二终端不再需要此ip地址。实际可能的情况是所述第二终端已经离开网络(比如,网线拔出或者关机),或者禁用了dhcp服务器自动获取地址功能(改为静态地址),则老化掉所述第二终端的合法arp报文地址信息所对应的表项。可见,本发明实施例中的技术方案不仅适用于静态地址下的arp报文的检测,而且还适用于利用dhcp服务器实现动态地址下的arp报文的检测,进一步地提高所述交换机的使用性能。

在本发明实施例中,若dhcp服务器为所述第二终端分配到合法的ip地址,则将所述第二终端的arp报文对应的地址信息添加到合法arp表的表项中,进一步地,可以将合法arp表中的每个合法arp表项通过openflow通道上送至控制器。

请参考图4所示,所述方法具体包括:

s301:若所述第一接口当前的合法arp表不存在与所述第二终端地址信息对应的表项,判断所述第一接口当前的合法arp表的表项数量是否为所述第一接口的学习arp阈值;

s302:若所述第一接口当前的合法arp表的表项数量小于所述学习arp阈值,判断所述第一接口当前的不合法arp表的表项数量是否为第二预设阈值;

s303:若所述第一接口当前的不合法arp表的表项数量小于所述第二预设阈值,将所述第二终端地址信息添加至所述第一接口当前的合法arp表的表项中,获得更新后的所述第一合法arp表。

在具体实施过程中,步骤s301至步骤s303的具体实现过程如下:

如果所述第一接口当前的合法arp表不存在与所述第二终端地址信息对应的表项,则进一步地判断所述第一接口当前的合法arp表的表项数量是否为所述第一接口的学习arp阈值。也就是说,判断所述第一接口当前的合法arp表的表项数量是否为该接口可学习的arp报文的最大数量。若所述第一接口当前的合法arp表的表项数量等于该接口可学习的arp报文的最大数量,也就是说,如果所述第一接口下arp表被合法arp表项占满,则不再往arp表中添加合法arp表项和不合法arp表项,对接收到来自任意终端的arp报文对应的终端地址信息不在合法arp表(被合法arp表项占满的arp表)的表项中,则直接丢弃该报文保持所述合法arp表不变,直到到达老化时间时,再次更新该接口的arp表。

此外,若所述第一接口当前的合法arp表的表项数量小于所述学习arp阈值,则进一步判断所述第一接口当前的不合法arp表的表项数量是否为第二预设阈值。也就是说,判断所述第一接口当前的不合法arp表的表项容量所放置的表项数量是否已满,比如,表项数量为500表示已满。进一步地,若所述第一接口当前的不合法arp表的表项数量小于所述第二预设阈值,将所述第二地址信息添加至所述第一接口当前的合法arp表的表项中,获得更新后的所述第一合法arp表。也就是说,如果所述第一接口当前的不合法arp表的表项容量所放置的表项数量还未满,比如,表项数量为300,则将所述第二地址信息直接添加至所述第一接口当前的合法arp表的表项中,获得更新后的所述第一合法arp表。

在本发明实施例中,仍然以图4为例,为了进一步地提高所述交换机的使用性能,所述方法还包括:若所述第一接口当前的不合法arp表的表项数量为所述第二预设阈值,删除所述第一接口当前的不合法arp表中保留时长超过第二设定阈值的表项,且将所述第二终端地址信息添加至所述第一接口当前的合法arp表的表项中,获得更新后的所述第一合法arp表。

在具体实施过程中,若所述第一接口当前的合法arp表的表项数量小于所述学习arp阈值(比如,1000),且所述第一接口的当前不合法arp表的表项容量所放置的表项数量(比如,500)已满,则删除所述第一接口当前的不合法arp表中保留时长超过第二设定阈值的表项,比如,删除所述第一接口当前的不合法arp表中最早学到的arp表项,同时可以将所述第二终端地址信息添加至所述第一接口当前的合法arp表的表项中,获得更新后的所述第一合法arp表。进一步地,可以将以上经学习更新后的所述第一合法arp表中的所有arp表项添加到openflow通道可以上送至控制器的列表中,进一步地,提高了控制器对arp报文的处理效率。

在本发明实施例中,对于不合法arp表的学习更新过程具体请参考图5,具体来讲,在所述通过所述第一接口获得第一不合法arp表之前,所述方法还包括:

s401:通过所述第一接口接收来自第三终端的第二arp报文;

s402:获取所述第二arp报文中的第三终端地址信息;

s403:若所述第一接口当前的合法arp表的表项中不存在与所述第三终端地址信息对应的表项时,判断所述第二arp报文是否是dhcp报文;

s404:若是,转发所述第二arp报文,更新所述第一接口当前的不合法arp表,将所述第三终端地址信息添加至所述第一接口当前的不合法arp表的表项中,获得更新后的所述第一不合法arp表。

在具体实施过程中,步骤s401至步骤s404的具体实现过程如下:

在本发明实施例中,所述第三终端与所述第一终端可以是同一终端,还可以是不同的终端。首先,获取所述第二arp报文中的第三终端地址信息,若所述第一接口当前的合法arp表的表项中不存在与所述第三终端地址信息对应的表项时,判断所述第二arp报文是否是dhcp报文,如果是,转发所述第二arp报文的同时更新所述第一接口当前的不合法arp表,将所述第三终端地址信息添加至所述第一接口当前的不合法arp表的表项中,获得更新后的所述第一不合法arp表。如果所述第二arp报文不为所述dhcp报文,丢弃所述第二arp报文,更新所述第一接口当前的不合法arp表,将所述第三终端地址信息添加至所述第一接口当前的不合法arp表的表项中,获得更新后的所述第一不合法arp表。也就是说,所述第一接口接收到来自所述第三终端的第二arp报文后,首先查询所述第一接口当前的合法arp表,如果所述第二arp报文对应的第三终端地址信息在所述第一接口的合法arp表的表项中,则认为所述第二arp报文是合法的,直接转发。

基于上述描述,本发明实施例所提供的合法arp报文的学习更新过程如图6所示,不合法arp报文的学习更新过程如图7所示。具体的更新过程已在前面内容中进行了详述,在此就不一一赘述了。

实施例二

基于与本发明实施例一同样的发明构思,请参考图8,本发明实施例还提供了一种基于开放流openflow通道的报文处理装置,应用一交换机,其中,所述交换机包括第一接口在内的至少一个接口,其特征在于,包括:

第一获得模块10,用于通过所述一接口获得第一合法地址解析协议arp表,其中,所述第一合法arp表中每个表项记录发送arp报文的合法终端的地址信息;

第一获取模块20,用于确定所述第一接口接收到来自第一终端的第一arp报文时,获取所述第一arp报文中的第一终端地址信息;

第一判断模块30,若所述第一合法arp表中不存在与所述第一终端地址信息对应的表项时,判断所述第一arp报文是否为dhcp报文;

第一处理模块40,若所述第一arp报文为所述dhcp报文,转发所述第一arp报文,否则,丢弃所述第一arp报文。

在本发明实施例中,在通过所述第一接口获得第一合法地址解析协议arp表时,所述装置还包括:

第二获得模块,用于通过所述第一接口获得第一不合法arp表,其中,在所述第一不合法arp表的表项数量为第一预设阈值,且向所述第一合法arp表中添加合法arp表项时可抢占所述第一不合法arp的表项容量,删除所述第一不合法arp表中保留时长超过第一设定阈值的表项,以使所述合法arp表项能够占用保留时长超过第一设定阈值的表项对应的容量。

在本发明实施例中,在所述通过所述第一接口获得第一合法地址解析协议arp表之前,所述装置还包括:

第二获取模块,用于获取通过所述第一接口转发的dhcp确认字符ack报文的第二终端地址信息,其中,所述dhcpack报文具体为dhcp服务器向所述第二终端回复的报文;

第二判断模块,用于判断所述第一接口当前的合法arp表是否存在与所述第二终端地址信息对应的表项;

第二处理模块,若存在,根据所述dhcpack报文中的租约时间更新所述第一接口当前的合法arp表中所述第二终端地址信息对应表项的老化时间,获得更新后的所述第一合法arp表。

在本发明实施例中,所述装置还包括:

第三判断模块,若所述第一接口当前的合法arp表不存在与所述第二终端地址信息对应的表项,判断所述第一接口当前的合法arp表的表项数量是否为所述第一接口的学习arp阈值;

第四判断模块,若所述第一接口当前的合法arp表的表项数量小于所述学习arp阈值,判断所述第一接口当前的不合法arp表的表项数量是否为第二预设阈值;

第三处理模块,若所述第一接口当前的不合法arp表的表项数量小于所述第二预设阈值,将所述第二终端地址信息添加至所述第一接口当前的合法arp表的表项中,获得更新后的所述第一合法arp表。

在本发明实施例中,所述装置还包括:

第四处理模块,若所述第一接口当前的不合法arp表的表项数量为所述第二预设阈值,删除所述第一接口当前的不合法arp表中保留时长超过第二设定阈值的表项,且将所述第二终端地址信息添加至所述第一接口当前的合法arp表的表项中,获得更新后的所述第一合法arp表。

在本发明实施例中,在所述通过所述第一接口获得第一不合法arp表之前,所述装置还包括:

接收模块,通过所述第一接口接收来自第三终端的第二arp报文;

第三获取模块,用于获取所述第二arp报文中的第三终端地址信息;

第五判断模块,若所述第一接口当前的合法arp表的表项中不存在与所述第三终端地址信息对应的表项时,判断所述第二arp报文是否是dhcp报文;

第五处理模块,若是,转发所述第二arp报文,更新所述第一接口当前的不合法arp表,将所述第三终端地址信息添加至所述第一接口当前的不合法arp表的表项中,获得更新后的所述第一不合法arp表。

在本发明实施例中,在所述判断所述第二arp报文是否是dhcp报文之后,所述装置还包括:

第六处理模块,若所述第二arp报文不为所述dhcp报文,丢弃所述第二arp报文,更新所述第一接口当前的不合法arp表,将所述第三终端地址信息添加至所述第一接口当前的不合法arp表的表项中,获得更新后的所述第一不合法arp表。

基于本申请实施例一同样的发明构思,本申请实施例中提供了一种计算机装置,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上所述的基于openflow通道的报文处理方法的步骤。

基于本申请实施例一同样的发明构思,本申请实施例还提供了计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的基于openflow通道的报文处理方法的步骤。

在本发明实施例的技术方案中,通过交换机的第一接口获得第一合法地址解析协议arp表,其中,所述第一合法arp表中每个表项记录发送arp报文的合法终端的地址信息;确定所述第一接口接收到来自第一终端的第一arp报文时,获取所述第一arp报文中的第一终端地址信息;若所述第一合法arp表中不存在与所述第一终端地址信息对应的表项时,判断所述第一arp报文是否为动态主机配置协议dhcp报文;若所述第一arp报文为所述dhcp报文,转发所述第一arp报文,否则,丢弃所述第一arp报文。也就是说,直接通过交换机的第一接口将接收到的来自终端的arp报文进行筛选,若该报文中的地址信息不在该接口的当前合法arp表的表项中,且为非dhcp报文,则直接丢弃该报文。可见,本发明实施例的技术方案直接通过交换机对arp报文的合法性进行筛选,直接将不合法arp报文丢弃掉,不仅提高了网络的安全性,还避免了大量的不合法arp报文占用较多的带宽资源及导致控制器的cpu占用率较高的问题,进一步地提高了针对arp报文的处理效率。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

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