一种ARP表项更新的方法及装置与流程

文档序号:12492481阅读:318来源:国知局
一种ARP表项更新的方法及装置与流程

本发明涉及通信技术领域,尤其涉及一种ARP表项更新的方法及装置。



背景技术:

为了实现TRILL(Transparent Interconnection of Lots of Links,多链接透明互联)网络的跨网段数据通信,需要在TRILL网络中部署网关设备,由网关来完成三层路由转发的功能。该网关设备可部署在TRILL网络中的一台RB上,这台RB也称TRILL网关。三层的TRILL网络架构如图1所示,第一层为TRILL网关,如RB11,用于实现三层路由转发。第二层为中间层RB,如RB21和RB22,主要用于连接TRILL网关与接入层RB,其中网关RB11通过第一端口与RB21相连,通过第二端口与RB22相连。第三层为接入层RB,如RB31、RB32和RB33,主要用于接入主机,如Server A1、ServerA2、Server B、Server C1和ServerC2。

TRILL网关学习并保存了大量主机的ARP(Address Resolution Protocol,地址解析协议)表项,当TRILL网络的拓扑发生变化时,这些ARP表项的出口也可能会发生变动。因此,TRILL网关需要及时更新这些主机的ARP表项。目前,ARP表项的更新方法有两种:一、TRILL网关定时向网络中所有的主机发送ARP请求报文,用于定时更新已经学习到的ARP表项。这种方法的缺点是:若定时周期太长,则不利于网关及时更新出口信息;若缩短定时周期,则TRILL网关会频繁发送大量ARP协议报文。二、TRILL网络拓扑发生变化后,当TRILL网关直连的链路正常时,TRILL网关则无法确定哪些ARP表项受到了影响,只有发送大量的ARP请求报文用于更新所有ARP表项。

由此可见,现有的两种ARP表项的更新的方法都需要发送大量的ARP协议报文,这样会造成资源浪费及网络拥堵。



技术实现要素:

本发明提供一种ARP表项更新的方法及装置,能够解决网关需要发送大量ARP协议报文才能完成ARP表项更新的问题。

为达到上述目的,本发明实施例采用如下技术方案:

第一方面,本发明提供一种ARP表项更新的方法,所述方法包括:

网关RB根据主机发送的ARP协议报文,生成所述主机的ARP表项,所述ARP表项中包括用于接入所述主机的接入层RB的标识;

所述网关RB将接入层RB的标识相同的至少一个ARP表项划分为同一ARP表项分组;

所述网关RB检测所述网关RB到达每一个接入层RB的路由出口是否发生变更;

当存在至少一个接入层RB对应的路由出口发生变更时,所述网关RB更新所述至少一个接入层RB对应的ARP表项分组中每个ARP表项对应的出口标识。

第二方面,本发明提供一种ARP表项更新的装置,所述装置包括:

处理单元,用于根据主机发送的ARP协议报文,生成所述主机的ARP表项,所述ARP表项中包括用于接入所述主机的接入层RB的标识;将接入层RB的标识相同的至少一个ARP表项划分为同一ARP表项分组;

检测单元,用于检测所述网关RB到达每一个接入层RB的路由出口是否发生变更;

所述处理单元,还用于当所述检测单元检测到存在至少一个接入层RB对应的路由出口发生变更时,更新所述至少一个接入层RB对应的ARP表项分组中每个ARP表项的出口标识。

本发明提供的一种ARP表项更新的方法及装置,网关RB生成包括用于接入所述主机的接入层RB的标识的ARP表项,再将接入层RB的标识相同的至少一个ARP表项划分为同一ARP表项分组;当存在至少一个接入层RB对应的路由出口发生变更时,所述网关RB更新所述至少一个接入层RB对应的ARP表项分组中每个ARP表项对应的出口标识。相比较于现有技术中网关RB需要发送大量ARP请求报文才能完成对ARP表项的更新,本发明中网关RB对ARP表项进行分组,当接入层RB对应的路由出口发生变更时,更新这些接入层RB对应的ARP表项分组中的全部ARP表项的出口标识,因此,本发明只需发送较少的ARP请求报文甚至是不用发送ARP协议报文,即可完成网关RB中的ARP表项的更新,因此,本发明节省了网络资源,避免了网络拥堵。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。

图1为本发明实施例提供的一种TRILL网络架构的示意图;

图2为本发明实施例提供的一种ARP表项更新的方法流程图;

图3为本发明实施例提供的另一种ARP表项更新的方法流程图;

图4为本发明实施例提供的又一种ARP表项更新的方法流程图;

图5为本发明实施例提供的再一种ARP表项更新的方法流程图;

图6为本发明实施例提供的一种ARP表项更新装置的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

为了更好的理解本发明实施例,对三层的TRILL网络架构进行简要说明,如图1所示,TRILL网络的第一层为TRILL网关,如RB11,用于实现三层路由转发。第二层为中间层RB,如RB21和RB22,主要用于连接TRILL网关与接入层RB,其中网关RB11通过第一端口与RB21相连,通过第二端口与RB22相连。第三层为接入层RB,如RB31、RB32和RB33,主要用于接入主机。具体地,Server A1和Server A2通过RB31接入TRILL网络,Server B通过RB32接入TRILL网络,Server C1和Server C2通过RB33接入TRILL网络。其中,Server A1、Server B和Server C1在同一个网段,对应的VLAN(Virtual Local AreaNetwork,虚拟局域网)的标识为VLAN 10,而Server A2和Server C2在另一个网段,对应的VLAN标识为VLAN 20。

需要说明的是,本发明实施例并不限定TRILL网络中接入主机、RB的数量以及主机接入RB的具体方式。

本发明实施例提供一种ARP表项更新的方法,可运用于如图1所示的TRILL网络中,该方法如图2所示,具体包括:

101、网关RB根据主机发送的ARP协议报文,生成所述主机的ARP表项。

其中,所述ARP协议报文包括:ARP请求报文或者ARP应答报文,所述ARP请求报文为主机发送的用于请求所述网关RB的ARP表项,所述ARP应答报文用于应答所述网关RB发送的ARP请求报文,所述网关RB发送的ARP请求报文用于请求所述主机的ARP表项。

主机的ARP表项包括IP(网络之间互连的协议,Internet Protocol)地址、MAC(媒体访问控制,Media Access Control)地址、出口标识以及接入层RB的标识。其中,主机的ARP表项的出口标识为网关RB接收到该主机发送的ARP协议报文的端口的标识。接入层RB的标识为该主机接入TRILL网络的RB的标识。

102、所述网关RB将接入层RB的标识相同的至少一个ARP表项划分为同一ARP表项分组。

作为一种具体的实施例,网关RB根据接入主机的接入层RB的标识将学习到的主机的ARP表项进行分组。

需要说明的是,同一ARP分组中的主机是通过相同的接入层RB接入到TRILL网络中的,所以同一ARP分组中包含的ARP表项的出口标识也是相同的。

示例性,结合图1所示的TRILL网络,网关RB11根据接入层RB的标识将学习到ARP表项分成三组,第一组:接入层RB的标识为RB31的标识,包含Server A1和Server A2的ARP表项;第二组:接入层RB的标识为RB32的标识,包含Server B的ARP表项;第三组:接入层的标识为RB33的标识,包含Server C1和Server C2的ARP表项。

103、所述网关RB检测所述网关RB到达每一个接入层RB的路由出口是否发生变更。

可选地,由于网关RB能感知网络拓扑的变化,所以,在网络拓扑发生变化后,网关可以RB重新计算自己到达每一个接入层RB的路由,获取到达每一个接入层RB当前的路由出口,并判断路由出口是否发生变化。

可选地,网关RB检测网关RB到达每一个接入层RB的路由出口是否发生变更也可采用另一种实现方式,由于每一个ARP分组中的所有ARP表项对应的接入层RB的标识和出口标识都是相同的,所以可以从每一个分组中任选一个ARP表项进行检测,从而判断该分组内的所有ARP表项的出口标识是否发生变更。

104、当存在至少一个接入层RB对应的路由出口发生变更时,所述网关RB更新所述至少一个接入层RB对应的ARP表项分组中每个ARP表项的出口标识。

作为一种具体的实施例,网关RB获取路由出口发生变更的所有接入层RB及其对应的更新后的出口标识,根据这些发生变更的接入层RB的标识遍历网关RB本地存储的ARP表项分组,找出这些发生变更的接入层RB对应的ARP分组,将这些ARP分组中的所有ARP表项的出口标识都修改为更新后的出口标识。

结合前述例子,假设RB33的路由出口发生变化,则网关RB根据RB33的标识查找出第三组的ARP分组,将第三组ARP分组中的Server C1和Server C2的ARP表项的出口标识修改为更新后的出口标识。

本发明提供的一种ARP表项更新的方法,网关RB生成包括用于接入所述主机的接入层RB的标识的ARP表项,再将接入层RB的标识相同的至少一个ARP表项划分为同一ARP表项分组;当存在至少一个接入层RB对应的路由出口发生变更时,所述网关RB更新所述至少一个接入层RB对应的ARP表项分组中每个ARP表项对应的出口标识。相比较于现有技术中网关RB需要发送大量ARP请求报文才能完成对ARP表项的更新,本发明中网关RB对ARP表项进行分组,当接入层RB对应的路由出口发生变更时,更新这些接入层RB对应的ARP表项分组中的全部ARP表项的出口标识,因此,本发明只需发送较少的ARP请求报文甚至是不用发送ARP协议报文,即可完成网关RB中的ARP表项的更新,因此,本发明节省了网络资源,避免了网络拥堵。

可选的,当ARP协议报文为ARP请求报文时,在步骤101的一种实现方式中,网关RB主动向该主机发送ARP请求报文,用于请求该主机的ARP表项。

其中,该ARP请求报文中的源IP地址为网关RB的源IP地址,源MAC地址为网关RB的MAC地址,目的IP地址为该主机的IP地址,目的MAC地址为零。

具体地,网关RB将ARP请求报文封装成TRILL广播帧,其中,TRILL头部的入口RB的标识为网关RB的标识,出口RB的标识为组播树树根的标识。当该主机连接的接入层RB接收到该TRILL广播帧后,将该TRILL广播帧解封装得到ARP请求报文并转发给主机。此时,主机学习了网关RB的ARP表项,并发送ARP应答报文,接入层RB将ARP应答报文封装成TRILL单播帧转发给网关RB,其中,TRILL单播帧的TRILL头部包含接入层RB的标识。当网关RB接收到TRILL单播帧后,解封装得到ARP应答报文,并根据该ARP应答报文生成主机的ARP表项,其中包括接入该主机的接入层RB的标识。

当ARP协议报文为ARP应答报文时,在步骤101的另一种实现方式是当主机接入TRILL网络后,主机主动发送ARP请求报文,该ARP请求报文用于请求网关RB的ARP表项。

其中,该ARP请求报文中的源IP地址为该主机的源IP地址,源MAC地址为该主机的MAC地址,目的IP地址为网关RB的IP地址,目的MAC地址为零。

具体地,接入层RB接收到该ARP请求报文时,将其封装成TRILL广播帧,其中,TRILL头部的入口RB的标识为该接入层RB的标识,出口为组播树树根的标识。当网关RB接收到该TRILL广播帧后,解封装后得到ARP请求报文,根据该ARP请求报文学习主机的ARP表项,其中包括接入该主机的接入层RB的标识,其中,该主机的ARP表项的出口标识为网关RB接收该TRILL广播帧的端口的标识。网关RB回复ARP应答报文,将该ARP应答报文封装成TRILL单播帧进行发送。当接入主机的接入层RB接收到该TRILL单播帧后,解封装得到ARP应答报文后转发给主机。

可选的,在图2所示的方法的基础上,本发明实施例还提供了一种ARP表项更新的方法,如图3所示,步骤103的一种实现方式具体包括:

201、所述网关RB分别生成到达每一个接入层RB的TRILL单播路由。

作为一种具体的实施例,网关RB通过运行自己的链路状态学习TRILL网络的拓扑,当TRILL网络的拓扑发生变化后,网关RB使用SPF(Shortest Path First,最短路径优先)生成从自身到TRILL网络中每一个接入层RB的TRILL单播路由。

202、当所述TRILL单播路由中至少一个接入层RB对应的出口标识和所述至少一个接入层RB对应的所述ARP表项分组的出口标识不同时,所述网关RB确定所述至少一个接入层RB对应的路由出口发生变更。

作为一种具体的实施例,在SPF计算结束后,网关RB根据接入层RB的标识比较其对应的TRILL单播路由的出口标识和其对应的ARP分组的出口标识,当两个出口标识不同时,即确定该接入层RB对应的路由出口发生了变更。

可选的,在图2所示的方法的基础上,本发明实施例还提供了一种ARP表项更新的方法,如图4所示,步骤103的另一种实现方式的具体包括:

301、所述网关RB分别获取至少一个目标主机更新后的ARP表项。

其中,每个所述目标主机对应的接入层RB不同。

作为一种具体的实施例,网关RB从本地存储的每一个ARP表项分组中都任选一个ARP表项,向选择的各个ARP表项对应的目的主机发送ARP请求报文,用于请求各个目的主机的当前的ARP表项。各个目的主机接收到该ARP请求报文后,分别发送ARP应答报文。网关在接收到各个目的主机发送的ARP应答报文后,学习各个目的主机更新后的ARP表项,其中网关RB分别将接收各自ARP应答报文的端口的标识确定为各个目的主机更新后的ARP表项的出口标识。

302、当所述更新后的ARP表项中存在至少一个ARP表项的出口标识与更新前的出口标识不同时,所述网关RB确定所述至少一个ARP表项对应的接入层RB对应的路由出口发生变更。

作为一种具体的实施例,网关RB将更新后的ARP表项的出口标识与更新前的ARP表项的出口标识进行比较,当两个出口标识不同时,即确定该出口标识对应的接入层RB的路由出口发生了变化。

进一步的,在图2所示方法的基础上,为了呈现网关RB更新ARP表项的完整过程,本发明实施例还提供了一种ARP表项更新的方法,可运用于图1所示的TRILL网络中,其中网关RB11通过第一端口与中间层RB21相连,通过第二端口与中间层RB22相连,所述方法如图5所示包括:

401、Server A1组播发送ARP请求报文。

其中,ARP请求报文用于请求网关RB11的ARP地址。ARP请求报文中的源IP地址为Server A1的源IP地址,源MAC地址为Server A1的MAC地址,目的IP地址为网关RB11的IP地址,目的MAC地址为零。

402、RB31将ARP请求报文封装成TRILL广播帧并发送。

其中,TRILL广播帧的TRILL头部的入口RB为RB31的标识,出口RB的标识为组播树树根的标识。

403、网关RB11根据接收TRILL广播帧,学习Sever A1的ARP表项。

具体地,网关RB11接收到TRILL广播帧,解封装得到ARP请求报文,学习到Server A1的ARP表项。其中,ARP表项的出口为“第一端口”,同时根据TRILL帧头的入口RB一并学习ARP表项对应的RB31的标识。

404、网关RB11发送ARP应答报文,将该ARP应答报文封装成TRILL单播帧进行发送。

405、RB31接收到TRILL单播帧后,解封装得到ARP应答报文。

406、RB31将解封装的ARP应答报文发送给Server A1。

407、网关RB11分别学习Server A2、Server B、Server C1和Server C2的ARP表项。

学习的实现过程参考Server A1的ARP表项的学习过程,在此不重复赘述。

408、网关RB11根据接入层RB的标识将学习到的主机的ARP表项进行分组。

具体地,网关RB11根据接入层RB的标识可将学习到ARP表项分成三组,第一组:接入层RB的标识为RB31的标识,包含Server A1和Server A2的ARP表项;第二组:接入层RB的标识为RB32的标识,包含Server B的ARP表项;第三组:接入层的标识为RB33的标识,包含Server C1和Server C2的ARP表项。

409、当TRILL网络拓扑发生变化时,网关RB11检测自己到达RB31、RB32和RB33的路由的出口是否发送变更。

具体的检测的实现方式可参考步骤103,在此不重复赘述。

示例性,结合图1所示的TRILL网络,并假设RB21与网关RB11直连的链路出现故障,则RB11到达RB31的路由发生变化,中转路由由RB21变更为RB22,且网关RB11到达RB31的出口也由第一端口变更为第二端口。

410、网关RB11确定RB31对应的路由出口发生变更,出口由第一端口变更为第二端口。

具体地,根据假设RB21与网关RB11直连的链路出现故障,RB11与RB31之间的路由将由RB22作为中转,故RB31对应的路由出口由第一端口变更为第二端口。

411、网关RB11更新本地存储的ARP表项。

具体地,网关RB11根据RB31的标识遍历本地存储的ARP表项分组,找到RB31对应的分组,即第一组的ARP表项分组,包括Server A1和Server A2的ARP表项,将Server A1和Server A2的ARP表项的出口标识更新为第二端口。

需要说明的是,由于RB32和RB33对应的路由出口没有发生变更,所以第二组和第三组的ARP表项分组中的ARP表项未发生变动,故不需要更新。

本发明实施例还提供了一种ARP表项更新的装置60,如图6所示,所述装置60包括:

处理单元61,用于根据主机发送的ARP协议报文,生成所述主机的ARP表项,所述ARP表项中包括用于接入所述主机的接入层RB的标识;将接入层RB的标识相同的至少一个ARP表项划分为同一ARP表项分组.

检测单元62,用于检测所述网关RB到达每一个接入层RB的路由出口是否发生变更。

所述处理单元61,还用于当所述检测单元62检测到存在至少一个接入层RB对应的路由出口发生变更时,更新所述至少一个接入层RB对应的ARP表项分组中每个ARP表项的出口标识。

本发明提供的一种ARP表项更新的装置,网关RB生成包括用于接入所述主机的接入层RB的标识的ARP表项,再将接入层RB的标识相同的至少一个ARP表项划分为同一ARP表项分组;当存在至少一个接入层RB对应的路由出口发生变更时,所述网关RB更新所述至少一个接入层RB对应的ARP表项分组中每个ARP表项对应的出口标识。相比较于现有技术中网关RB需要发送大量ARP请求报文才能完成对ARP表项的更新,本发明中网关RB对ARP表项进行分组,当接入层RB对应的路由出口发生变更时,更新这些接入层RB对应的ARP表项分组中的全部ARP表项的出口标识,因此,本发明只需发送较少的ARP请求报文甚至是不用发送ARP协议报文,即可完成网关RB中的ARP表项的更新,因此,本发明节省了网络资源,避免了网络拥堵。

进一步地,所述检测单元62,还用于分别生成到达每一个接入层RB的TRILL单播路由;当所述TRILL单播路由中至少一个接入层RB对应的出口标识和所述至少一个接入层RB对应的所述ARP表项分组的出口标识不同时,确定所述至少一个接入层RB对应的路由出口发生变更。

所述检测单元62,还用于分别获取至少一个目标主机更新后的ARP表项,每个所述目标主机对应的接入层RB不同;当所述更新后的ARP表项中存在至少一个ARP表项的出口标识与更新前的出口标识不同时,确定所述至少一个ARP表项对应的接入层RB对应的路由出口发生变更。

所述ARP协议报文包括:ARP请求报文或者ARP应答报文,所述ARP请求报文用于请求所述网关的ARP表项,所述ARP应答报文用于应答所述网关RB发送的ARP请求报文,所述网关RB发送的ARP请求报文用于请求所述主机的ARP表项。

所述检测单元62,还用于检测网络拓扑是否发生变化;当所述网络拓扑发生变化时,检测所述网关RB到达每一个接入层RB的路由出口是否发生变更。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于设备实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何在本发明揭露的技术范围内的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。

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