报文转发方法、汇聚网关、接入网关及系统与流程

文档序号:16128681发布日期:2018-12-01 00:03阅读:504来源:国知局

本申请涉及通信技术领域,具体而言,涉及一种报文转发方法、汇聚网关、接入网关及系统。

背景技术

虚拟扩展网络(virtualextensiblelan,vxlan)是一种“macinip”技术,用于实现基于ip核心网络的大二层互联。vxlan只是在vxlan边缘设备(即vxlan隧道端点(vxlantunnelendpoint,vtep))上维护mac地址和转发信息,无需改变vxlan内部网络和核心网络结构。vxlan如果要支持三层流量互通,就需要在vtep上部署网关,这台vtep也就叫做vxlan网关设备。

现有技术中,vxlan网络中通常采用分布式网关,分布式网关一般采用分层拓扑结构,包括接入层网关和汇聚层网关,而接入层网关用于实现vxlan报文的封装、解封装处理,汇聚层网关仅用于ip转发透传,不参与vxlan转发逻辑,而由于接入层网关需要获得到整个vxlan网络中的所有网络设备的主机路由,而整个vxlan网络汇总的网络设备数量巨大,并且接入层网关一般都是采用中低端的盒式设备,其cpu处理能力有限,所以,接入层网关很多时候无法完成获得到所有网络设备的主机路由的任务,进而造成丢包等网络事故发生。



技术实现要素:

本申请实施例的目的在于提供一种报文转发方法、汇聚网关、接入网关及系统。

第一方面,本申请实施例提供了一种报文转发方法,所述方法包括:汇聚网关接收第一接入网关发送的数据报文,所述数据报文为与所述第一接入网关连接的第一设备向与第二接入网关连接的第二设备发送的报文,所述第一接入网关与所述第二接入网关均与所述汇聚网关连接;所述汇聚网关根据获得的所述第二设备的主机路由将所述数据报文发送至所述第二设备。由此,本方案中,通过汇聚网关来获得第二设备的主机路由,使得汇聚网关根据第二设备的主机路由来对数据报文进行转发,而不需要接入网关去获取第二设备的主机路由来进行报文转发,进而减轻了需要由接入网关主动获得网络设备的主机路由来进行报文转发的压力,减轻了接入网关的cpu负担。

进一步地,所述汇聚网关根据获得的所述第二设备的主机路由将所述数据报文发送至所述第二设备,包括:所述汇聚网关从所述数据报文中获取所述第二设备的ip地址;在所述汇聚网关的路由表中没有与所述第二设备的ip地址匹配的主机路由时,所述汇聚网关向所述第二接入网关发送arp请求报文,所述arp请求报文携带有所述第二设备的ip地址;所述汇聚网关接收所述第二接入网关在根据所述第二设备的ip地址获得所述第二设备的主机路由后发送的通知报文,所述通知报文中携带有所述第二设备的主机路由,所述汇聚网关将所述第二设备的主机路由添加至所述路由表中;所述汇聚网关根据所述第二设备的主机路由将所述数据报文发送至所述第二设备。可见,在本申请实施中,通过汇聚网关主动向第二接入网关发送arp请求报文以此来主动触发网络设备的主机路由的获得,从而减轻了由接入网关主动获得网络设备的主机路由的压力,减轻了接入网关的cpu负担。

进一步地,在所述汇聚网关的路由表中没有与所述第二设备的ip地址匹配的主机路由时,所述汇聚网关向所述第二接入网关发送arp请求报文,包括:所述汇聚网关查找路由表中是否有与所述第二设备的ip地址匹配的主机路由;在所述路由表中没有与所述第二设备的ip地址配的主机路由时,所述汇聚网关向所述第二接入网关发送arp请求报文,所述arp请求报文携带有所述第二设备的ip地址。在本申请实施例中,由汇聚网关主动触发arp请求报文的发送,由此获得第二设备的主机路由,从而第一接入网关和第二接入网关不用获得别的网络设备的主机路由,减轻了第一接入网关和第二接入网关的cpu负担。

进一步地,汇聚网关接收第一接入网关发送的数据报文之前,所述方法还包括:所述汇聚网关向所述第一接入网关和所述第二接入网关发送通告报文,以使所述第一接入网关和所述第二接入网关通过所述通告报文获得所述汇聚网关的地址,以及使所述第一接入网关和所述第二接入网关将所述汇聚网关的地址作为默认路由中的目的地址添加至各自的路由表中。通过将默认路由预先添加到第一接入网关和第二接入网关中,使得第一接入网关或第二接入网关在接收到数据报文时,可将数据报文直接通过默认路由发送至汇聚网关,这样,第一接入网关和第二接入网关就不用获得别的网络设备的主机路由,而是由汇聚网关完成,以此减轻了第一接入网关和第二接入网关的cpu负担。

第二方面,本申请实施例提供了一种报文转发方法,所述方法包括:第一接入网关接收数据报文,所述数据报文为与所述第一接入网关连接的第一设备向与第二接入网关连接的第二设备发送的报文,所述第一接入网关与所述第二接入网关均与汇聚网关连接;在所述第一接入网关的路由表中没有与所述第二设备的ip地址匹配的主机路由时,所述第一接入网关根据默认路由将所述数据报文发送给所述汇聚网关,以使所述汇聚网关根据获得的所述第二设备的主机路由将所述数据报文发送至所述第二设备。由此,本方案中,在第一接入网关中没有第二设备的ip地址匹配的主机路由时,将数据报文发送至汇聚网关,以使汇聚网关再根据获得的第二设备的主机路由进行报文转发,从而提升整个网络的路由容量,并且通过汇聚网关主动获得网络设备的主机路由,从而根据网络设备的主机路由来进行报文的转发,进而减轻了需要由接入网关主动获得网络设备的主机路由来进行报文转发的压力,减轻了接入网关的cpu负担。

第三方面,本申请实施例提供了一种报文转发方法,所述方法包括:第一接入网关接收数据报文,所述数据报文为与所述第一接入网关连接的第一设备向与第二接入网关连接的第二设备发送的报文,所述第一接入网关与所述第二接入网关均与汇聚网关连接;在所述第一接入网关的路由表中没有与所述第二设备的ip地址匹配的主机路由时,所述第一接入网关根据默认路由将所述数据报文发送给所述汇聚网关;所述汇聚网关接收所述数据报文,并根据获得的所述第二设备的主机路由将所述数据报文发送至所述第二设备。由此,本方案中,在第一接入网关中没有第二设备的ip地址匹配的主机路由时,将数据报文发送至汇聚网关,汇聚网关再根据数据报文的目的地址进行路由转发,从而提升整个网络的路由容量,并且通过汇聚网关主动获得网络设备的主机路由,从而根据网络设备的主机路由来进行报文的转发,进而减轻了需要由接入网关主动获得网络设备的主机路由来进行报文转发的压力,减轻了接入网关的cpu负担。

第四方面,本申请实施例提供了一种汇聚网关,所述汇聚网关包括:

报文接收模块,用于接收第一接入网关发送的数据报文,所述数据报文为与所述第一接入网关连接的第一设备向与第二接入网关连接的第二设备发送的报文,所述第一接入网关与所述第二接入网关均与所述汇聚网关连接;

报文转发模块,用于根据获得的所述第二设备的主机路由将所述数据报文发送至所述第二设备。

进一步地,所述报文转发模块,具体用于从所述数据报文中获取所述第二设备的ip地址;在所述汇聚网关的路由表中没有与所述第二设备的ip地址匹配的主机路由时,向所述第二接入网关发送arp请求报文,所述arp请求报文携带有所述第二设备的ip地址;接收所述第二接入网关在根据所述第二设备的ip地址获得所述第二设备的主机路由后发送的通知报文,所述通知报文中携带有所述第二设备的主机路由;

所述汇聚网关还包括:路由添加模块,用于将所述第二设备的主机路由添加至所述路由表中;

所述报文转发模块,还用于根据所述第二设备的主机路由将所述数据报文发送至所述第二设备。

进一步地,所述报文转发模块,还用于查找路由表中是否有与所述第二设备的ip地址匹配的主机路由,在所述路由表中没有与所述第二设备的ip地址匹配的主机路由时,向所述第二接入网关发送arp请求报文,所述arp请求报文携带有所述第二设备的ip地址。

进一步地,所述汇聚网关,还包括:

通告报文发送模块,用于向所述第一接入网关和所述第二接入网关发送通告报文,以使所述第一接入网关和所述第二接入网关通过所述通告报文获得所述汇聚网关的地址,以及使所述第一接入网关和所述第二接入网关将所述汇聚网关的地址作为默认路由中的目的地址添加至各自的路由表中。

第五方面,本申请实施例提供了一种接入网关,所述接入网关包括:

数据报文接收模块,用于接收数据报文,所述数据报文为与第一接入网关连接的第一设备向与第二接入网关连接的第二设备发送的报文,所述第一接入网关与所述第二接入网关均与汇聚网关连接;

数据报文转发模块,用于在所述第一接入网关的路由表中没有与所述第二设备的ip地址匹配的主机路由时,根据默认路由将所述数据报文发送给所述汇聚网关,以使所述汇聚网关根据获得的所述第二设备的主机路由将所述数据报文发送至所述第二设备。

第六方面,本申请实施例提供了一种报文转发系统,所述系统包括:

第一接入网关,用于接收数据报文,所述数据报文为与所述第一接入网关连接的第一设备向与第二接入网关连接的第二设备发送的报文,所述第一接入网关与所述第二接入网关均与汇聚网关连接;

所述第一接入网关,还用于在所述第一接入网关的路由表中没有与所述第二设备的ip地址匹配的主机路由时,根据默认路由将所述数据报文发送给所述汇聚网关;

所述汇聚网关,用于接收所述数据报文,并根据获得的所述第二设备的主机路由将所述数据报文发送至所述第二设备。

第七方面,本申请实施例提供一种汇聚网关,包括处理器以及存储器,所述存储器存储有计算机可读取指令,当所述计算机可读取指令由所述处理器执行时,运行如上述第一方面提供的所述方法中的步骤。

第八方面,本申请实施例提供一种汇聚网关,包括处理器以及存储器,所述存储器存储有计算机可读取指令,当所述计算机可读取指令由所述处理器执行时,运行如上述第二方面提供的所述方法中的步骤。

第九方面,本申请实施例提供一种可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时运行如上述第一方面提供的所述方法中的步骤。

第十方面,本申请实施例提供一种可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时运行如上述第二方面提供的所述方法中的步骤。

本申请实施例提供一种报文转发方法、汇聚网关、接入网关及系统,该方法通过汇聚网关接收第一接入网关发送的数据报文,所述数据报文为与所述第一接入网关连接的第一设备向与第二接入网关连接的第二设备发送的报文,所述第一接入网关与所述第二接入网关均与所述汇聚网关连接,然后所述汇聚网关根据获得的所述第二设备的主机路由将所述数据报文发送至所述第二设备。由此,本方案中,通过汇聚网关来获得第二设备的主机路由,使得汇聚网关根据第二设备的主机路由来对数据报文进行转发,而不需要接入网关去获取第二设备的主机路由来进行报文转发,进而减轻了需要由接入网关主动获得网络设备的主机路由来进行报文转发的压力,减轻了接入网关的cpu负担,且使得报文转发更加顺畅和准确。

本申请的其他特征和优点将在随后的说明书阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请实施例了解。本申请的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。

附图说明

为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1为本申请实施例提供的一种vxlan网络系统的结构框图;

图2为本申请实施例提供的一种报文转发方法的流程图;

图3为本申请实施例提供的一种报文转发方法中步骤s120的子步骤流程图;

图4为本申请实施例提供的另一种报文转发方法的流程图;

图5为本申请实施例提供的又一种报文转发方法的流程图;

图6为本申请实施例提供的一种汇聚网关的结构框图;

图7为本申请实施例提供的一种接入网关的结构框图;

图8为本申请实施例提供的一种报文转发系统的结构框图;

图9为本申请实施例提供的一种汇聚网关或接入网关的结构示意图。

具体实施方式

下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。

当前的vxlan网关技术分为两种:集中式网关和分布式网关,集中式网关是指所有网关集中部署在一台vtep设备上,这台vtep设备通常位于网络拓扑的汇聚层,但是若三层流量全部集中在网关设备上进行路由转发,容易出现转发瓶颈;分布式网关是为了解决集中式网关的转发性能问题,当前更广泛使用的是分布式网关技术,分布式网关是将网关部署在接入vtep上,并且所有接入vtep都部署相同的网关。

请参照图1,图1为本申请实施例提供的一种vxlan网络系统的结构框图,图1所示为分布式网关部署在vxlan网络中的结构示意图,该vxlan网络系统包括汇聚网关、接入网关及网络设备,例如,如图1中所示,汇聚网关包括p1和p2,接入网关包括vtep-1、vtep-2、vtep-3......vtep-n,网络设备包括设备11、设备12、设备21、设备22......设备n,所有的接入网关均连接在汇聚网关p1及p2上,每个接入网关下连接有多个网络设备,网络设备可以服务器或用户终端,每个接入网关下连接的网络设备可以属于不同的网段,也可属于相同的网段,例如,设备11和设备12均连接接入网关vtep-1上,则设备11和设备12可属于同一个网段,或者属于不同的网段,设备21和设备22均连接接入网关vtep-2,而设备11和设备21可以属于同一个网段,设备12和设备22可以属于同一个网段。

现有技术中,接入网关用于实现vxlan报文的封装和解封装处理,汇聚网关仅用于ip转发透传,不参与vxlan转发逻辑。

而如图1所述,假如有两个网段的网络设备,不同网段的网络设备之间支持三层流量互通,其中,网络设备11和网络设备21可以为相同网段设备,网络设备12和网络设备22可以为相同网段设备,网络设备11和网络设备12可以为不同网段设备,vxlan网络中可以部署多个网段,不仅限于两个,这里仅是示例。

各个接入网关分别部署有两个网段的网关,且网关ip、掩码长度、网关接口mac地址都相同,即所有接入网关为分布式网关。

接入网关会根据地址解析协议(addressresolutionprotocol,简称arp)获得本地直接接入的网络设备的主机路由,并通过bgp-evpn协议向其他接入网关通告各自获得的内容,接入网关将从别的接入网关获得到的网络设备的主机路由,在本地生成对应的主机路由,主机路由的路由出口即为别的接入网关。

比如,vtep-1上会获得到四个网络设备的主机路由:通过本地直连网关接口下直接获得到网络设备11的主机路由;通过本地直连网关接口下直接获得到网络设备12的主机路由;通过从vtep-2获得到网络设备21的主机路由,本地需要生成对应的主机路由,路由出口为vtep-2;通过从vtep-2获得到网络设备22的主机路由,本地需要生成对应的主机路由,路由出口为vtep-2。

其中,bgp-evpn协议是基于ietfrfc7342的vxlan的控制协议,bgp-evpn协议为位于远程vtep之后的终端主机提供了控制平面获得功能,网关之间可通过bgp-evpn协议交换获得各自的ip地址。

三层流量转发时,直接在接入网关上查找三层路由,查询到对应的主机路由,从而进行报文的转发,若接入网关查找不到主机路由,则会触发arp获得,即该接入网关主动发送arp请求报文,arp请求报文的目标ip即为报文的目的ip,从而触发获得到该目的ip对应的主机路由,例如接入网关vtep-1接收到设备11发送给设备21的报文,然后查找本地路由中是否有设备21的主机路由,若有,则将报文转发至接入网关vtep-2,然后接入网关vtep-2再转发至设备21,若没有查找到设备21的主机路由,则接入网关vtep-1主动发送arp请求报文,各个汇聚网关和各个接入网关均会接收到该arp请求报文,如接入网关vtep-2接收到该arp请求报文后发送给设备21和设备22,设备21从arp请求报文中获取目标地址为自己的地址,则发送一个arp应答报文,则接入网关vtep-2通过该arp应答报文学习到设备21的主机路由,并通过bgp-evpn协议将主机路由通知给接入网关vtep-1,从而接入网关vtep-1获得到设备21的主机路由,以进行后续的报文转发。

根据分布式网关的技术原理,接入vetp需要获得到整个网络中的所有网络设备,即除了要获得到本地用户侧接入的网络设备外,还要获得到其他接入网关下接入的网络设备,而整个vxlan网络中的网络设备数量巨大,并且由于接入层设备数量众多,一般都是部署用中低端的盒式设备,其软硬件表项的容量有限,容易出现表项容量不足,进而导致丢包,同时接入网关在路由查找表失败后,需要完成主动获得arp的动作,加重了对设备cpu的负担。

与接入网关相比,汇聚网关一般具有更大的芯片路由表容量、更强大的cpu处理能力,但是这些资源优势在vxlan分布式网关中并没有得到应用。

所以,为了解决上述问题,本申请实施例提供了一种报文转发方法。

以上现有技术中的方案所存在的缺陷,均是发明人在经过实践并仔细研究后得出的结果,因此,上述问题的发现过程以及下文中本申请实施例针对上述问题所提出的解决方案,都应该是发明人在本申请过程中对本申请做出的贡献。

请参照图2,图2为本申请实施例提供的一种报文转发方法的流程图,该方法应用于图1所示的vxlan网络系统中,所述方法包括如下步骤:

步骤s110:汇聚网关接收第一接入网关发送的数据报文。

步骤s120:所述汇聚网关根据获得的所述第二设备的主机路由将所述数据报文发送至所述第二设备。

可结合图1,本申请实施例以汇聚网关的数量为一个为例进行说明,汇聚网关可以为图1中的p1,p1和p2为汇聚层网关,均可称为汇聚网关,vtep-1、vtep-2...vtep-n为接入层网关,均可称为接入网关。

汇聚网关可以通过协议交互对外通告自身作为“汇聚网关”,例如,可通过bgp-evpn协议发送通告报文,汇聚网关在向其他接入网关发送bgp-evpn协议报文时,告诉其他接入网关增加一条默认路由,该路由的下一跳为汇聚网关自身。

汇聚网关与分布式网关一样,配置所有网段的网关接口,转发表中安装网关接口直连路由。

每个汇聚网关上也配置有bgp-evpn协议,可以自动从所有接入网关上获得到主机路由。

接入网关,即承担普通分布式网关的角色,与分布式网关一样,需要配置所有网段的网关接口,但不在路由转发表中安装网关接口的直连路由。因为报文进行三层转发时会根据报文的目的ip查找路由转发表,当查表命中直连路由时,报文不会转发出去,而是触发接入网关发送arp请求该目的ip,所以在接入网关上不安装直连路由的目的是为了避免接入网关发送arp报文去获得主机路由,以减轻接入网关的cpu压力。

本申请实施例中,所述数据报文为与所述第一接入网关连接的第一设备向与第二接入网关连接的第二设备发送的报文,即第一设备与第一接入网关连接,第二设备与第二接入网关连接,第一接入网关与第二接入网关均与所述汇聚网关连接。第一设备与第二设备可以属于不同的网段,例如,如图1中所示,第一接入网关为vtep-1,第一设备为设备11,第二接入网关为vtep-2,第二设备为设备22,汇聚网关为p1,若第一设备11向第二设备22发送数据报文,则第一设备11先将数据报文发送至第一接入网关vtep-1,第一接入网关vtep-1在接收到数据报文后,查找路由表,若路由表中没有与第二设备22的ip地址匹配的主机路由,由于第一接入网关vtep-1没有安装直连路由,无法触发arp报文发送以获得第二设备22的主机路由,所以第一接入网关vtep-1将数据报文根据上述的默认路由发送至汇聚网关p1。

其中,汇聚网关p1在向vxlan网络系统中的其他网关通告自己是汇聚网关身份时,可以向其他网关发送bgp-evpn协议报文进行通告,例如,汇聚网关pi可以向第一接入网关vtep-1和第二接入网关vtep-2发送通告报文,该通告报文中携带有该汇聚网关p1的ip地址,则第一接入网关vtep-1和第二接入网关vtep-2在接收到该通告报文后,从通告报文中获得所述汇聚网关p1的ip地址,然后第一接入网关vtep-1和第二接入网关vtep-2将该汇聚网关p1的ip地址作为上述默认路由中的目的地址添加至各自的路由表中。

所以,所述第一接入网关vtep-1在向汇聚网关p1发送数据报文时,可根据默认路由发送数据报文至汇聚网关p1。

请参照图3,图3为本申请实施例提供的步骤s120的子步骤流程图,步骤s120包括:

步骤s121:所述汇聚网关从所述数据报文中获取所述第二设备的ip地址。

步骤s122:在所述汇聚网关的路由表中没有与所述第二设备的ip地址匹配的主机路由时,所述汇聚网关向所述第二接入网关发送arp请求报文。

步骤s123:所述汇聚网关接收所述第二接入网关在根据所述第二设备的ip地址获得所述第二设备的主机路由后发送的通知报文。

步骤s124:所述汇聚网关将所述第二设备的主机路由添加至所述路由表中,所述汇聚网关根据所述第二设备的主机路由将所述数据报文发送至所述第二设备。

由于第一设备11向第二设备22发送的数据报文中携带有所述第二设备22的ip地址,所以,所述汇聚网关p1在接收到数据报文后,从所述数据报文中获取第二设备22的ip地址,查找汇聚网关p1的路由表中是否有与所述第二设备22的ip地址匹配的主机路由,在所述路由表中没有与所述第二设备22的ip地址匹配的主机路由时,所述汇聚网关p1向所述第二接入网关vtep-2发送arp请求报文,所述arp请求报文携带有所述第二设备22的ip地址。

需要说明的是,第一设备11发送至第一接入网关vtep-1的数据报文还需经过第一接入网关vtep-1进行封装成vxlan数据报文后在进行发送至汇聚网关p1,汇聚网关p1接收到vxlan数据报文后进行解封装得到原始的数据报文。

汇聚网关p1在发送arp请求报文之前,还需将arp请求报文进行封装成vxlan数据报文后进行发送,由此,第二接入网关vtep-2接收到该vxlan数据报文后进行解封装获得arp请求报文。

由于arp请求报文可以为广播报文,所以,第一接入网关vtep-1和第二接入网关vtep-2均可接收到该arp请求报文,因为arp请求报文中包括有第二设备22的ip地址,则第一接入网关vtep-1在接收到该arp请求报文发送给与之连接的网络设备,在各个网络设备从arp请求报文中获得第二设备22的ip地址,发现都不是自己的地址,则丢弃该arp请求报文。

第二接入网关vtep-2在接收到该arp请求报文后将该arp请求报文发送给与之连接的各个网络设备,若第二设备22在接收到该arp请求报文后,从arp请求报文中获得目标地址为自己的地址,则第二设备22向第二接入网关vtep-2发送arp应答报文,第二接入网关vtep-2接收到该arp应答报文从而获得到第二设备22的主机路由,然后第二接入网关vtep-2向汇聚网关p1发送通知报文,所述通知报文中携带有所述第二设备的主机路由,通告获得到的第二设备22的主机路由,从而汇聚网络p1从该通知报文中获得第二设备的主机路由。

第二接入网关vtep-2可通过bgp-evpn协议向汇聚网关p1发送通知,具体实现就是在bgp-evpn协议报文中,增加一条第二设备22的主机路由,路由出口为第二接入网关vtep-2,然后其他网关在接收到该报文时,可在自己的路由表中添加第二设备22的主机路由。

汇聚网关p1接收到第二接入网关vtep-2采用bgp-evpn协议发送的通知报文,获得第二设备22的的主机路由,从而可将数据报文根据所述第二设备22的主机路由发送至第二接入网关vtep-2,第二接入网关vtep-2再将数据报文转发至第二设备22。

同时,第一接入网关vtep-1也可接收到通知报文,从而获得第二设备22的主机路由。

另外,所述汇聚网关p1还可将获得的第二设备22的主机路由添加至自己的路由表中,以进行后续的报文转发。

所以,在汇聚网关p1触发获得到第二设备22的主机路由后,各个接入网关设备也可获得到第二设备22的主机路由,如,第一接入网关vtep-1的路由表中添加第二设备22的主机路由,其路由出口为第二接入网关vtep-2,则第一设备11在向第二设备22发送数据报文时,先将数据报文发送至第一接入网关vtep-1,第一接入网关vtep-1接收数据报文,查找本地路由表,若存在第二设备22的主机路由,则将数据报文封装成vxlan数据报文后发送给第二接入网关vtep-2,第二接入网关vtep-2接收到vxlan数据报文后进行解封装获得数据报文,然后根据数据报文中的目的地址,查找路由表,找到第二设备22的主机路由,则根据第二设备22的主机路由将数据报文转发至第二设备22。

但是,若第一接入网关vtep-1没有从路由表中查找到第二设备22的主机路由,即第一接入网关vtep-1的路由表中没有与第二设备22的ip地址匹配的主机路由,则查找默认路由,将数据报文封装为vxlan数据报文,然后根据所述默认路由发送给汇聚网关p1,汇聚网关p1接收到该vxlan数据报文后进行解封装获得数据报文,然后根据数据报文中的目的地址,查找路由表,若找到第二设备22的主机路由,则将数据报文封装为vxlan数据报文发送至第二接入网关vtep-2,第二接入网关vtep-2接收到vxlan数据报文后进行解封装获得数据报文,根据数据报文中的目的地址,查找路由表,若找到第二设备22的主机路由,则将数据报文根据所述第二设备22的主机路由发送给第二设备22。

所以,本申请实施例中,由汇聚网关主动向第二接入网关发送arp请求报文以此来主动触发获得网络设备的主机路由,接入网关只需完成报文的转发工作,无需主动触发获得网络设备的主机路由,从而减轻了接入网关的cpu处理压力。

第二实施例

请参照图4,图4为本申请实施例提供的另一种报文转发方法的流程图,所述方法包括如下步骤:

步骤s210:第一接入网关接收数据报文。

其中,所述数据报文为与所述第一接入网关连接的第一设备向与第二接入网关连接的第二设备发送的报文,所述第一接入网关与所述第二接入网关均与汇聚网关连接;

步骤s220:在所述第一接入网关的路由表中没有与所述第二设备的ip地址匹配的主机路由时,所述第一接入网关根据默认路由将所述数据报文发送给所述汇聚网关,以使所述汇聚网关根据获得的所述第二设备的主机路由将所述数据报文发送至所述第二设备。

第三实施例

请参照图5,图5为本申请实施例提供的又一种报文转发方法的流程图,所述方法包括如下步骤:

步骤s310:第一接入网关接收数据报文。

所述数据报文为与所述第一接入网关连接的第一设备向与第二接入网关连接的第二设备发送的报文,所述第一接入网关与所述第二接入网关均与汇聚网关连接。

步骤s320:在所述第一接入网关的路由表中没有与所述第二设备的ip地址匹配的主机路由时,所述第一接入网关根据默认路由将所述数据报文发送给所述汇聚网关。

步骤s330:所述汇聚网关接收所述数据报文,并根据获得的所述第二设备的主机路由将所述数据报文发送至所述第二设备。

第二实施例和第三实施例的具体实现过程可参照第一实施例中的相关描述,为了描述的简洁,在此不再过多赘述。

请参照图6,图6为本申请实施例提供的一种汇聚网关的结构框图,所述汇聚网关包括:

报文接收模块210,用于接收第一接入网关发送的数据报文,所述数据报文为与所述第一接入网关连接的第一设备向与第二接入网关连接的第二设备发送的报文,所述第一接入网关与所述第二接入网关均与所述汇聚网关连接;

报文转发模块220,用于根据获得的所述第二设备的主机路由将所述数据报文发送至所述第二设备。

进一步地,所述报文转发模块220,具体用于从所述数据报文中获取所述第二设备的ip地址;在所述汇聚网关的路由表中没有与所述第二设备的ip地址匹配的主机路由时,向所述第二接入网关发送arp请求报文,所述arp请求报文携带有所述第二设备的ip地址;接收所述第二接入网关在根据所述第二设备的ip地址获得所述第二设备的主机路由后发送的通知报文,所述通知报文中携带有所述第二设备的主机路由;

所述汇聚网关还包括:路由添加模块,用于将所述第二设备的主机路由添加至所述路由表中;

所述报文转发模块220,还用于根据所述第二设备的主机路由将所述数据报文发送至所述第二设备。

进一步地,所述报文转发模块220,还用于查找路由表中是否有与所述第二设备的ip地址匹配的主机路由,在所述路由表中没有与所述第二设备的ip地址匹配的主机路由时,向所述第二接入网关发送arp请求报文,所述arp请求报文携带有所述第二设备的ip地址。

进一步地,所述汇聚网关,还包括:

通告报文发送模块,用于向所述第一接入网关和所述第二接入网关发送通告报文,以使所述第一接入网关和所述第二接入网关通过所述通告报文获得所述汇聚网关的地址,以及使所述第一接入网关和所述第二接入网关将所述汇聚网关的地址作为默认路由中的目的地址添加至各自的路由表中。

请参照图7,图7为本申请实施例提供的一种接入网关的结构框图,所述接入网关包括:

数据报文接收模块310,用于接收数据报文,所述数据报文为与第一接入网关连接的第一设备向与第二接入网关连接的第二设备发送的报文,所述第一接入网关与所述第二接入网关均与汇聚网关连接;

数据报文转发模块320,用于在所述第一接入网关的路由表中没有与所述第二设备的ip地址匹配的主机路由时,根据默认路由将所述数据报文发送给所述汇聚网关,以使所述汇聚网关根据获得的所述第二设备的主机路由将所述数据报文发送至所述第二设备。

请参照图8,图8为本申请实施例提供的一种报文转发系统100的结构框图,所述系统包括:

第一接入网关110,用于接收数据报文,所述数据报文为与所述第一接入网关110连接的第一设备11向与第二接入网关120连接的第二设备22发送的报文,所述第一接入网关110与所述第二接入网关120均与汇聚网关130连接;

所述第一接入网关110,还用于在所述第一接入网关110的路由表中没有与所述第二设备22的ip地址匹配的主机路由时,根据默认路由将所述数据报文发送给所述汇聚网关130;

所述汇聚网关130,用于接收所述数据报文,并根据获得的所述第二设备22的主机路由将所述数据报文发送至所述第二设备22。

请参照图9,图9为本申请实施例提供的一种汇聚网关或接入网关的结构示意图,该汇聚网关或接入网关可以包括:至少一个处理器410,例如cpu,至少一个通信接口420,至少一个存储器430和至少一个通信总线440。其中,通信总线440用于实现这些组件直接的连接通信。其中,本申请实施例中设备的通信接口420用于与其他节点设备进行信令或数据的通信。存储器430可以是高速ram存储器,也可以是非不稳定的存储器(non-volatilememory),例如至少一个磁盘存储器。存储器430可选的还可以是至少一个位于远离前述处理器的存储装置。存储器430中存储有计算机可读取指令,且处理器410执行存储器430中有计算机可读取指令时运行上述的图2或图4中的步骤。

本申请实施例还提供一种可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时运行如上述的图2中的步骤。

本申请实施例还提供一种可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时运行如上述的图4中的步骤。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置的具体工作过程,可以参考前述方法中的对应过程,在此不再过多赘述。

综上所述,本申请实施例提供一种报文转发方法、汇聚网关、接入网关及系统,该方法通过汇聚网关接收第一接入网关发送的数据报文,所述数据报文为与所述第一接入网关连接的第一设备向与第二接入网关连接的第二设备发送的报文,所述第一接入网关与所述第二接入网关均与所述汇聚网关连接,然后所述汇聚网关根据获得的所述第二设备的主机路由将所述数据报文发送至所述第二设备。由此,本方案中,通过汇聚网关来获得第二设备的主机路由,使得汇聚网关根据第二设备的主机路由来对数据报文进行转发,而不需要接入网关去获取第二设备的主机路由来进行报文转发,进而减轻了需要由接入网关主动获得网络设备的主机路由来进行报文转发的压力,减轻了接入网关的cpu负担,且使得报文转发更加顺畅和准确。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。

所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。

以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

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