一种VPN路由通告方法、数据流转发方法及相关设备与流程

文档序号:25033002发布日期:2021-05-11 17:03阅读:214来源:国知局
一种VPN路由通告方法、数据流转发方法及相关设备与流程
本申请对申请号为201610070633.9,申请日为2016年2月1日,发明名称为“一种vpn路由通告方法、数据流转发方法及相关设备”的中国专利申请提出分案申请。本发明实施例涉及通信
技术领域
,尤其涉及一种虚拟专用网(virtualprivatenetwork,vpn)路由通告方法、数据流转发方法及相关设备。
背景技术
:在无控制器的跨自治域互联的网络系统中,自治域边界路由器(autonomoussystemboundaryrouter,asbr)之间,用户通常不希望流量走多协议标签交换(multi-protocollabelswitching,mpls)路径转发,而希望流量走网络之间互连的协议(internetprotocol,ip)路径转发,针对这一问题,目前通常采用的解决方案是optiona,即在asbr之间部署大量的虚拟路由转发(virtualroutingforwarding,vrf)实例接口(也可以称为私网接口,指的是和vrf实例关联的接口),每个vrf实例接口绑定对应的vpn,然后在asbr之间针对每个vpn通过对应的vrf实例接口建立一个边界网关协议(bordergatewayprotocol,bgp)邻居,利用为每个vpn建立的bgp邻居传递对应vpn的路由信息,路由信息传递完成后,流量在asbr之间走ip转发。optiona方案中,每次增加vpn,都需要在asbr上增加bgp邻居,当vpn数量很多时,asbr的邻居压力很大,路由传输效率较低。在有控制器的网络系统中,例如软件定义网络(softwaredefinednetwork,sdn)中,由控制器控制转发器之间的转发,控制器向对应的转发器发送路由信息,部分场景,用户希望流量在转发器之间不走mpls转发,而走ip转发,因此控制器会按需向对应的转发器下发路由,如果有多个vpn,则控制器与对应的每个转发器之间,需要针对每个vpn都建立一个bgp邻居来下发对应vpn的路由,当vpn数量很多时,控制器的管理压力很大,路由传输效率较低。即现有技术中,当存在多个vpn且要求设备之间流量走ip转发而不走mpls转发时,传递不同vpn的路由的两个设备之间,需要针对每个vpn建立一个bgp邻居,利用为对应vpn建立的bgp邻居传递对应vpn的路由,路由传输效率较低。技术实现要素:有鉴于此,本发明实施例提供了一种vpn路由通告方法、数据流转发方法及相关设备,能够避免建立大量的bgp邻居来传递路由,提高路由传递效率。第一方面,本发明实施例提供了一种虚拟专用网vpn路由通告方法,包括:第一网络设备通过非虚拟路由转发vrf接口与第二网络设备建立vpn邻居;所述第一网络设备通过所述vpn邻居向所述第二网络设备发送通告报文,所述通告报文中包括vpn路由信息及重定向的下一跳,所述重定向的下一跳为vrf接口地址,以指示所述第二网络设备根据所述重定向的下一跳转发所述vpn的报文。一种可能的实现方式中,所述第一网络设备为控制器或转发器,所述第二网络设备为转发器;当所述第一网络设备为转发器时,所述vrf接口地址为所述第一网络设备的vrf接口地址;当所述第一网络设备为控制器时,所述vrf接口地址为第三网络设备的vrf接口地址。一种可能的实现方式中,所述第一网络设备通过所述vpn邻居向所述第二网络设备发送通告报文之前,还包括:所述第一网络设备确定所述第二网络设备支持下一跳的重定向。一种可能的实现方式中,所述通告报文为边界网关协议bgp报文。一种可能的实现方式中,所述bgp报文中包括私网重定向属性,所述私网重定向属性包括属性类型字段和属性值域字段,所述属性类型字段用于指示属性的类型为重定向,所述属性值域字段用于携带重定向的所述vrf接口地址。一种可能的实现方式中,所述属性值域字段还用于携带路由导入条件;所述方法还包括:根据所述路由导入条件,确定对应的所述vrf。一种可能的实现方式中,当所述第一网络设备为转发器时,所述属性值域字段还携带有转发标签的处理方式和路由前发方式。一种可能的实现方式中,所述转发标签的处理方式为忽略,所述路由前发方式为前发重新分配转发标签。一种可能的实现方式中,所述转发标签的处理方式为继续使用,所述路由前发方式为前发重新分配转发标签并交换。第二方面,本发明实施例提供了一种数据流转发方法,包括:第二网络设备通过非虚拟路由转发vrf接口与第一网络设备建立虚拟专用网vpn邻居;所述第二网络设备通过所述vpn邻居接收所述第一网络设备发送的通告报文,所述通告报文中包括vpn路由信息及重定向的下一跳,所述重定向的下一跳为vrf接口地址;所述第二网络设备根据所述重定向的下一跳转发所述vpn的报文。一种可能的实现方式中,所述第二网络设备为转发器,所述第一网络设备为控制器或转发器;当所述第一网络设备为转发器时,所述vrf接口地址为所述第一网络设备的vrf接口地址;当所述第一网络设备为控制器时,所述vrf接口地址为第三网络设备的vrf接口地址。一种可能的实现方式中,所述第二网络设备通过所述vpn邻居接收所述第一网络设备发送的通告报文之前,还包括:所述第二网络设备确定所述第一网络设备支持下一跳的重定向。一种可能的实现方式中,所述通告报文为边界网关协议bgp报文。一种可能的实现方式中,所述bgp报文中包括私网重定向属性,所述私网重定向属性包括属性类型字段和属性值域字段,所述属性类型字段用于指示属性的类型为重定向,所述属性值域字段用于携带重定向的所述vrf接口地址。一种可能的实现方式中,所述属性值域字段还用于携带路由导入条件;所述方法还包括:根据所述路由导入条件,确定对应的所述vrf。一种可能的实现方式中,当所述第一网络设备为转发器时,所述属性值域字段还携带有转发标签的处理方式和路由前发方式。一种可能的实现方式中,所述转发标签的处理方式为忽略,所述路由前发方式为前发重新分配转发标签;所述方法还包括:所述第二网络设备忽略所述转发标签,并在向下一跳网络设备发送所述vpn路由信息时,重新为所述vpn分配转发标签。一种可能的实现方式中,所述转发标签的处理方式为继续使用,所述路由前发方式为前发重新分配转发标签并交换;所述方法还包括:所述第二网络设备继续使用所述转发标签,并在向下一跳网络设备发送所述vpn路由信息时,重新为所述vpn分配转发标签,以及利用所述重新为所述vpn分配的转发标签替换所述第一网络设备为所述vpn分配的转发标签。第三方面,本发明实施例提供了一种第一网络设备,所述第一网络设备为控制器或转发器,所述第一网络设备包括:建立单元,用于通过非虚拟路由转发vrf接口与第二网络设备建立vpn邻居;发送单元,用于通过所述vpn邻居向所述第二网络设备发送通告报文,所述通告报文中包括vpn路由信息及重定向的下一跳,所述重定向的下一跳为vrf接口地址,以指示所述第二网络设备根据所述重定向的下一跳转发所述vpn的报文。一种可能的实现方式中,当所述第一网络设备为转发器时,所述vrf接口地址为所述第一网络设备的vrf接口地址;当所述第一网络设备为控制器时,所述vrf接口地址为第三网络设备的vrf接口地址。一种可能的实现方式中,所述第一网络设备支持所述私网重定向属性,所述第一网络设备还包括确定单元;所述确定单元用于,确定所述第二网络设备支持下一跳的重定向。一种可能的实现方式中,所述通告报文为边界网关协议bgp报文。一种可能的实现方式中,所述bgp报文中包括私网重定向属性,所述私网重定向属性包括属性类型字段和属性值域字段,所述属性类型字段用于指示属性的类型为重定向,所述属性值域字段用于携带重定向的所述vrf接口地址。一种可能的实现方式中,所述属性值域字段还用于携带路由导入条件;所述确定单元还用于:根据所述路由导入条件,确定对应的所述vrf。一种可能的实现方式中,当所述第一网络设备为转发器时,所述属性值域字段还携带有转发标签的处理方式和路由前发方式。一种可能的实现方式中,所述转发标签的处理方式为忽略,所述路由前发方式为前发重新分配转发标签。一种可能的实现方式中,所述转发标签的处理方式为继续使用,所述路由前发方式为前发重新分配转发标签并交换。第四方面,本发明实施例提供了一种第二网络设备,所述第二网络设备为转发器,所述第二网络设备包括:建立单元,用于通过非虚拟路由转发vrf接口与第一网络设备建立虚拟专用网vpn邻居;接收单元,用于通过所述vpn邻居接收所述第一网络设备发送的通告报文,所述通告报文中包括vpn路由信息及重定向的下一跳,所述重定向的下一跳为vrf接口地址;发送单元,用于根据所述重定向的下一跳转发所述vpn的报文。一种可能的实现方式中,所述第一网络设备为控制器或转发器;当所述第一网络设备为转发器时,所述vrf接口地址为所述第一网络设备的vrf接口地址;当所述第一网络设备为控制器时,所述vrf接口地址为第三网络设备的vrf接口地址。一种可能的实现方式中,所述第二网络设备支持所述私网重定向属性,所述第二网络设备还包括确定单元;所述确定单元用于,确定所述第一网络设备支持下一跳的重定向。一种可能的实现方式中,所述通告报文为边界网关协议bgp报文。一种可能的实现方式中,所述bgp报文中包括私网重定向属性,所述私网重定向属性包括属性类型字段和属性值域字段,所述属性类型字段用于指示属性的类型为重定向,所述属性值域字段用于携带重定向的所述vrf接口地址。一种可能的实现方式中,所述属性值域字段还用于携带路由导入条件;所述确定单元还用于:根据所述路由导入条件,确定对应的所述vrf。一种可能的实现方式中,当所述第一网络设备为转发器时,所述属性值域字段还携带有转发标签的处理方式和路由前发方式。一种可能的实现方式中,所述转发标签的处理方式为忽略,所述路由前发方式为前发重新分配转发标签;所述装置还包括分配单元;所述分配单元用于,忽略所述转发标签,并在向下一跳网络设备发送所述vpn路由信息时,重新为所述vpn分配转发标签。一种可能的实现方式中,所述转发标签的处理方式为继续使用,所述路由前发方式为前发重新分配转发标签并交换;所述装置还包括替换单元;所述替换单元用于,继续使用所述转发标签,并在向下一跳网络设备发送所述vpn路由信息时,重新为所述vpn分配转发标签,以及利用所述重新为所述vpn分配的转发标签替换所述第一网络设备为所述vpn分配的转发标签。第五方面,本发明实施例提供了一种网络系统,包括第三方面或第三方面的任意一种实施方式所述的第一网络设备,以及第四方面或第四方面的任意一种实施方式所述的第二网络设备。从以上技术方案可以看出,本发明实施例具有以下优点:本发明实施例中,所需的网络设备之间,只需通过非vrf实例接口(也可以称为公网接口,指的是没有和vrf实例关联的接口)建立一个vpn邻居,然后通过该vpn邻居发送携带有vpn路由信息的bgpupdate报文,同时该bgpupdate报文中还携带有重定向的下一跳,重定向的下一跳为vrf实例接口地址,以告诉对端网络设备在收到该bgpupdate报文之后,将vpn路由信息写入对应vrf实例并将下一跳重定向为vrf实例接口地址,之后在对端网络设备接收到携带有该vpn路由信息的数据流时,即可根据该vrf实例将数据流重定向到对应的vrf实例接口地址进行转发,多个vpn的路由可以通过一个vpn邻居来转发,从而避免了网络设备之间建立大量的bgp邻居来传递路由,提高了路由传递效率。附图说明为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本发明实施例的一个网络示意图;图2为本发明实施例的另一网络示意图;图3为本发明实施例vpn路由通告方法一个流程示意图;图4为本发明实施例数据流转发方法一个流程示意图;图5为本发明实施例第一网络设备一个结构示意图;图6为本发明实施例第一网络设备另一结构示意图;图7为本发明实施例第二网络设备一个结构示意图;图8为本发明实施例第二网络设备另一结构示意图。具体实施方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。在介绍本发明实施例的技术方案之前,先对本发明实施例的具体应用场景做简单介绍。本发明实施例的技术方案可应用于控制转发一体的网络场景,例如图1所示的网络场景,也可以应用于控制转发分离的网络场景,例如图2所示的网络场景。参见图1,例如本实施例的网络中存在两个vpn,用户边缘(customeredge,ce)设备ce1与ce4所在的vpn为vpn1、ce2与ce3所在的vpn为vpn2,ce1与ce4、ce2与ce3通过自治域(autonomoussystem,as)as100与as200互联,as100内的网络设备包括提供商边缘(provideredge,pe)设备pe1及asbr1,as200内的网络设备包括asbr2及pe2,asbr1与asbr2是自治域as100与as200互联的网络侧边缘设备,当然as100及as200内还可以包括提供者设备p。as100与as200内的网络设备均可以是路由器、交换机等网络转发设备(即转发器),本发明实施例的技术方案可以应用于as100与as200互联的网络侧边缘设备asbr1与asbr2。当ce4要传输数据至ce1时,ce4需要先获取ce1的路由信息,当ce3要传输数据至ce2时,ce3需要先获取ce2的路由信息。传递ce1及ce2的路由信息的报文可以是bgpupdate报文,举例来说,路由信息中至少可包括如下字段:网络前缀(networkprefix)、多出口区分符(multiexitdiscriminator,med)、下一跳(nexthop,nh)等。prefix字段用于携带目的可达地址,可以是ip地址或者网段地址。med字段用于携带med值。nh字段用于携带报文转发时下一跳的标识,举例来说,下一跳的标识可以为ip地址、设备的身份标识、设备的端口标识等等。现有技术中,为使得数据流在asbr1与asbr2之间通过ip转发,asbr1与asbr2之间需要针对这两个vpn建立两个bgp邻居,通过这两个bgp邻居来传递对应vpn的路由信息,如果vpn数量更多,则asbr之间需要建立更多的bgp邻居。参见图2,例如本实施例的网络中同样存在两个vpn,ce1与ce4所在的vpn为vpn1、ce2与ce3所在的vpn为vpn2,ce1与ce4、ce2与ce3通过自治域as100互联,控制器管辖as100中的网络设备,as100内的网络设备包括pe1及pe2,当然as100内还可以包括提供者设备p,as100内的网络设备可以是路由器、交换机等网络转发设备(即转发器)。控制器可以为一台独立的设备,或者,控制器也可以为集成有控制器功能的路由反射器(routereflector,rr)、pe、br或者p设备,本发明实施例对控制器在网络中的存在形式不做具体限定。本发明实施例的技术方案可以应用于控制器、pe1及pe2。当ce4要传输数据至ce1时,控制器需要向ce4下发ce1的路由信息,当ce3要传输数据至ce2时,控制器需要向ce3下发ce2的路由信息,ce1及ce2的路由信息可以通过bgpupdate报文下发。现有技术中,为使得数据流在pe1与pe2之间通过ip转发,控制器与pe1之间需要针对这两个vpn建立两个bgp邻居,通过这两个bgp邻居来传递对应vpn的路由信息,同样控制器与pe2之间也需要针对这两个vpn建立两个bgp邻居,如果vpn数量更多,则控制器与pe之间需要建立更多的bgp邻居。本发明实施例提供了一种vpn路由通告方法、数据流转发方法及相关设备,能够避免建立大量的bgp邻居来传递路由,提高路由传递效率。请参阅图3,图3为本发明实施例路由通告方法的简化流程示意图,该方法可以应用于类似于图1或图2所示的网络场景,包括下面描述的操作。需要注意的是,图3所示的方法不仅可以应用于图1或图2所示的网络场景,也可以应用于其他类型的网络场景,例如由未采用可替换组件的网络设备组成的网络系统。301、第一网络设备通过非vrf实例接口与第二网络设备建立vpn邻居;具体实现中,所述第一网络设备可以是控制器,也可以是转发器,所述第二网络设备可以是转发器。所述非vrf实例接口也可以称为公网接口,指的是没有和vrf实例关联的接口,所建立的vpn邻居可以是vpn-ipv4邻居,也可以是vpn-ipv6邻居。302、所述第一网络设备通过所述vpn邻居向所述第二网络设备发送bgpupdate报文,所述bgpupdate报文中包括vpn路由信息及重定向的下一跳,所述重定向的下一跳为vrf实例接口地址,以使得所述第二网络设备将所述vpn路由信息及重定向的下一跳导入vrf实例中,并在接收到包含所述vpn路由信息的数据流时,根据所述vpn路由信息对应的所述vrf实例将所述数据流重定向到所述vrf实例接口对应的地址进行转发。所述vrf实例接口也可以称为私网接口,指的是和vrf实例关联的接口。具体地,在步骤302之前,所述第一网络设备和所述第二网络设备可以根据自身及对方的静态配置(该静态配置可由用户预先配置,用来表明对应网络设备是否支持私网重定向属性)确定双方是否都支持私网重定向属性;或者所述第一网络设备和所述第二网络设备可以通过bgpopen报文协商确定双方是否都支持私网重定向属性,即所述第一网络设备可以通过向所述第二网络设备发送bgpopen报文来告知所述第二网络设备所述第一网络设备支持所述私网重定向属性,所述第二网络设备也可以向所述第一网络设备发送bgpopen报文来告知所述第一网络设备所述第二网络设备支持所述私网重定向属性。当双方均支持所述私网重定向属性时,所述第一网络设备向所述第二网络设备发送携带所述vpn路由信息及所述私网重定向属性的bgpupdate报文。本实施例中,所述bgpopen报文中携带有重定向协商属性,重定向协商属性如表1所示,包括能力类型字段、能力值域的长度字段以及能力值域字段,其中,能力类型字段指示能力类型为私网重定向,能力值域的长度字段指示能力值域的长度,能力值域字段携带重定向的值域。能力类型capabilitytype(1octet)能力值域长度capabilitylength(1octet)能力值域capabilityvalue(2octets)表1本实施例中,bgpupdate报文中携带有私网重定向属性,私网重定向属性可如表2所示,包括属性标记字段、属性类型字段和属性值字段,所述属性标记字段用于指示属性非传递,所述属性类型字段用于指示属性的类型为重定向,所述属性值域字段用于携带重定向的所述vrf实例接口地址(例如ipv4地址或ipv6地址)、路由导入条件。属性标记attributeflag(1octet)属性类型attributetype(1octet)属性值域attributevalue(variable)表2其中,当所述第一网络设备是控制器时,所携带的重定向下一跳vrf实例接口地址为与所述第二网络设备处于同一自治域的第三网络设备的vrf实例接口地址;当所述第一网络设备为转发器时,所述第一网络设备与所述第二网络设备不处于同一自治域,所携带的重定向下一跳vrf实例接口地址为所述第一网络设备的vrf实例接口地址。其中,上述路由导入条件包括路由目标(route-target,rt)匹配导入,即导入到的vrf实例的rt与路由信息中的rt匹配(可称为非严格重定向),此时同一vpn路由信息可能导入到多个vrf实例中,需要额外指定重定向到哪个vpn,如果指定重定向到本vpn,则将重定向的下一跳导入到本vpn的vrf实例中,数据流转发时,按照本vpn的vrf实例重定向到下一跳转发;如果指定重定向到原始vpn,则重定向时,需要根据路由的路由区分符(route-distinguisher,rd)找到原始vpn的vrf实例,在原始vpn的vrf实例中导入重定向的下一跳,数据流转发时,根据本vpn的vrf实例查找到重定向的原始vpn的vrf实例,根据原始vpn的vrf实例重定向到下一跳转发。或者导入条件包括rt、rd均匹配导入,即导入到的vrf的rt与rd与路由信息中的rt及rd均匹配(可称为严格重定向)。另外,当所述第一网络设备为转发器时,所述私网重定向属性中的所述属性值域字段还携带有转发标签的处理方式和路由前发方式。其中,转发标签的处理方式为忽略,对应路由前发方式为前发重新分配转发标签。即所述第一网络设备发送给所述第二网络设备的bgpupdate报文中,网络层可达信息(networklayerreachabilityinformation,nlri)的标签字段可以携带空标签或正常标签,所述第一网络设备通过私网重定向属性中的转发标签的处理方式通知所述第二网络设备忽略该转发标签,并通过私网重定向属性中的路由前发方式通知所述第二网络设备在向下一网络设备传递该vpn路由信息时,重新分配转发标签。另外,转发标签的处理方式也可以为继续使用,对应路由前发方式为前发重新分配转发标签并交换。即所述第一网络设备发送给所述第二网络设备的bgpupdate报文中,nlri的标签字段携带正常标签,所述第一网络设备通过私网重定向属性中的转发标签的处理方式通知所述第二网络设备继续使用该转发标签,并通过私网重定向属性中的路由前发方式通知所述第二网络设备在向下一网络设备传递该vpn路由信息时,重新分配转发标签,并用重新分配的转发标签替换所述第一网络设备分配的转发标签。需要说明的是,所述私网重定向属性中的所述属性值域字段可以包括多个子属性,所述多个子属性分别用于携带的所述vrf实例接口地址、所述路由导入条件、所述标签处理方式、所述路由前发方式。每个子属性的格式可如表3所示:子属性类型sub-attributetype(1octet)子属性长度sub-attributelength(1octet)子属性值域sub-attributevalue(variable)表3每个子属性包括子属性类型、子属性长度和子属性值;所述子属性类型用于携带子属性的具体类型,类型例如为ipv4地址、ipv6地址、路由导入条件、标签处理方式或路由前发方式;子属性长度指示子属性值域的长度;子属性值域携带具体属性的值,例如具体的ipv4地址、ipv6地址、路由导入条件的具体值域(例如可用0表示rt匹配导入,用1表示rt及rd均匹配导入),标签处理方式的具体值域(例如可用0表示忽略标签,用1表示继续使用标签)或路由前发方式的具体值域(例如用0表示前发重新分配标签,用1表示前发重新分配转发标签并交换)。请参阅图4,图4为本发明实施例数据流转发方法的简化流程示意图,该方法可以应用于类似于图1或图2所示的网络场景,包括下面描述的操作。需要注意的是,图4所示的方法不仅可以应用于图1或图2所示的网络场景,也可以应用于其他类型的网络场景,例如由未采用可替换组件的网络设备组成的网络系统。401、第二网络设备通过非vrf实例接口与第一网络设备建立vpn邻居;具体实现中,所述第二网络设备可以是转发器。所述非vrf实例接口也可以称为公网接口,指的是没有和vrf实例关联的接口,所建立的vpn邻居可以是vpn-ipv4邻居,也可以是vpn-ipv6邻居。402、所述第二网络设备通过所述vpn邻居接收所述第一网络设备发送的bgpupdate报文,所述bgpupdate报文中包括vpn路由信息及重定向的下一跳,所述重定向的下一跳为vrf实例接口地址;所述vrf实例接口也可以称为私网接口,指的是和vrf实例关联的接口。在步骤402之前,所述第二网络设备与所述第一网络设备之间,同样需要确定双方是否都支持私网重定向属性,具体确定方法可参阅上述实施例,此处不再赘述。403、所述第二网络设备将所述vpn路由信息及重定向的下一跳导入vrf实例中;404、当接收到包含所述vpn路由信息的数据流时,所述第二网络设备根据所述vpn路由信息对应的所述vrf实例将所述数据流重定向到所述vrf实例接口对应的地址进行转发。所述第二网络设备接收到的bgpupdate报文中携带私网重定向属性,所述私网重定向属性如上述实施例所述。当所述私网重定向属性中携带的路由导入条件为rt匹配导入时,所述第二网络设备将所述vpn路由信息及重定向的下一跳导入到rt与所述vpn路由信息携带的rt匹配的vrf实例中,具体导入到该vrf实例的路由转发表中;当所述私网重定向属性中携带的路由导入方式为rt及rd均匹配导入时,所述第二网络设备将所述vpn路由信息及重定向的下一跳导入到rt及rd与所述vpn路由信息携带的rt及rd均匹配的vrf实例中。由于私网重定向属性中指示属性非传递,则所述第二网络设备在向其他网络设备传递所述vpn路由信息或其他信息时,不携带所述私网重定向属性。进一步地,所述第一网络设备可以是转发器,也可以是控制器,当所述第一网络设备为转发器时,所述私网重定向属性中的所述属性值域字段还携带有转发标签的处理方式和路由前发方式。如果私网重定向属性中携带的转发标签的处理方式为忽略,路由前发方式为前发重新分配转发标签,则所述第二网络设备在向其他网络设备发送所述vpn路由信息时,重新为该vpn分配转发标签。当所述第二网络设备接收到包含所述vpn路由信息的数据流时,根据对应的vrf实例将数据流重定向到所述vrf实例接口对应的地址进行ip转发。如果私网重定向属性中携带的转发标签的处理方式为继续使用,路由前发方式为前发重新分配转发标签并交换,则所述第二网络设备为该vpn分配转发标签,并利用重新分配的转发标签替换所述第一网络设备为该vpn分配的转发标签。当所述第二网络设备接收到包含所述vpn路由信息的数据流时,根据所述第一网络设备为所述vpn分配的转发标签采用mpls方式转发所述数据流。下面分别以图1、图2所示网络场景为例,详细说明本发明实施例提供的技术方案。在图1中,s1、s2为asbr的vrf实例接口,分别关联vpn1的vrf实例与vpn2的vrf实例,b为asbr的非vrf实例接口,ce4要向ce1发送目的ip为20.21.1.1的数据流,ce3要向ce2发送目的ip为20.30.1.1的数据流,则asbr1与asbr2之间只需要通过各自的非vrf实例接口b建立一个vpn邻居,即可实现两个vpn路由的通告,且保证asbr之间数据流走ip路径转发。下面的例子中,默认转发标签的处理方式为忽略,路由前发方式为前发重新分配转发标签。ce1向ce4通告路由20.21.1.1的过程可如下:ce1将路由20.21.1.1通告到pe1,pe1将路由20.21.1.1导入到pe1上vpn1的vrf实例,并为路由20.21.1.1分配转发标签1024,pe1为路由20.21.1.1添加rt、rd等参数后,向asbr1通告转发标签为1024的路由20.21.1.1,asbr1接收到转发标签为1024的路由20.21.1.1之后,在asbr1上vpn1的vrf实例的路由转发表中可写入表4所示条目:目的ip出接口下一跳转发标签20.21.1.1e0pe1的ip地址1024表4asbr1为路由20.21.1.1添加rt、rd等参数并增加私网重定向属性,私网重定向属性中下一跳携带asbr1的vrf实例接口s1的地址,将路由20.21.1.1通过非vrf实例接口b建立的vpn邻居发送给asbr2,asbr2接收到具有私网重定向属性的路由20.21.1.1之后,在匹配的vrf实例中导入路由20.21.1.1,例如匹配的vrf实例为vpn1的vrf实例,则在asbr2上vpn1的vrf实例的路由转发表中可写入表5所示条目:目的ip出接口下一跳重定向的下一跳20.21.1.1asbr2的b接口asbr1的b接口地址asbr1的s1接口地址表5asbr2为路由20.21.1.1分配转发标签1026,并为路由20.21.1.1添加rt、rd等参数后,向pe2通告转发标签为1026的路由20.21.1.1,pe2接收到转发标签为1026的路由20.21.1.1之后,将路由20.21.1.1导入到pe2上vpn1的vrf实例,弹出转发标签1026,将路由20.21.1.1通告给ce4。转发时,ce4将目的ip为20.21.1.1的数据流发送给pe2,pe2查找对应vpn的vrf实例,为数据流封装上标签1026后转发给asbr2,asbr2接收到目的ip为20.21.1.1的数据流之后,查找对应vpn的vrf实例(如表5所示),将该数据流重定向到asbr1的s1接口通过asbr间的ip路径转发,数据流到达asbr1之后,asbr1查找对应vpn的vrf实例(如表4所示),将数据流封装上标签1024后转发给pe1,pe1接收到目的ip为20.21.1.1的数据流之后,弹出转发标签1024,将数据流发送给ce1。ce2向ce3通告路由路由20.30.1.1的过程可如下:ce2将路由20.30.1.1通告到pe1,pe1将路由20.30.1.1导入到pe1上vpn2的vrf实例,并为路由20.30.1.1分配转发标签1034,pe1为路由20.30.1.1添加rt、rd等参数后,向asbr1通告转发标签为1034的路由20.30.1.1,asbr1接收到转发标签为1034的路由20.30.1.1之后,在asbr1上vpn2的vrf实例的路由转发表中可写入表6所示条目:目的ip出接口下一跳转发标签20.30.1.1e0pe1的ip地址1034表6asbr1为路由20.30.1.1添加rt、rd等参数并增加私网重定向属性,私网重定向属性中下一跳携带asbr1的vrf实例接口s2的地址,将路由20.30.1.1通过非vrf实例接口b建立的vpn邻居发送给asbr2,asbr2接收到具有私网重定向属性的路由20.30.1.1之后,在匹配的vrf实例中导入路由20.30.1.1,例如匹配的vrf实例为vpn2的vrf实例,则在asbr2上vpn2的vrf实例的路由转发表中可写入表7所示条目:目的ip出接口下一跳重定向的下一跳20.30.1.1asbr2的b接口asbr1的b接口地址asbr1的s2接口地址表7asbr2为路由20.30.1.1分配转发标签1036,并为路由20.30.1.1添加rt、rd等参数后,向pe2通告转发标签为1036的路由20.30.1.1,pe2接收到转发标签为1036的路由20.30.1.1之后,将路由20.30.1.1导入到pe2上vpn2的vrf实例,弹出转发标签1036,将路由20.30.1.1通告给ce3。转发时,ce3将目的ip为20.30.1.1的数据流发送给pe2,pe2查找对应vpn的vrf实例,为数据流封装上标签1036后转发给asbr2,asbr2接收到目的ip为20.30.1.1的数据流之后,查找对应vpn的vrf实例(如表7所示),将该数据流重定向到asbr1的s2接口通过asbr间的ip路径转发,数据流到达asbr1之后,asbr1查找对应vpn的vrf实例(如表6所示),将数据流封装上标签1034后转发给pe1,pe1接收到目的ip为20.30.1.1的数据流之后,弹出转发标签1034,将数据流发送给ce2。在图3中,pe1、pe2的vrf实例接口为s1,非vrf实例接口为b,ce4要向ce1发送目的ip为20.21.1.1的数据流,ce3要向ce2发送目的ip为20.30.1.1的数据流,则控制器与pe1之间只需要通过各自的非vrf实例接口b建立一个vpn邻居,控制器与pe2之间也只需要通过各自的非vrf实例接口b建立一个vpn邻居,即可实现两个vpn路由的通告,且保证pe之间数据流走私网ip路径转发。ce4要向ce1发送目的ip为20.21.1.1的数据流时,控制器通过与pe2的非vrf实例接口b建立的vpn邻居向pe2通告携带有私网重定向属性的路由20.21.1.1,pe2接收到路由20.21.1.1时,在pe2上vpn1的vrf实例的路由转发表中导入表8所示条目:目的ip出接口下一跳重定向的下一跳20.21.1.1pe2的b接口pe1的b接口地址pe1的s1接口地址表8另外,控制器通过与pe1的非vrf实例接口b建立的vpn邻居向pe1通告路由20.21.1.1。转发时,ce4将目的ip为20.21.1.1的数据流发送给pe2,pe2接收到目的ip为20.21.1.1的数据流之后,查找对应vpn的vrf实例(如表8所示),将该数据流重定向到pe1的s1接口通过pe间的私网ip路径转发,数据流到达pe1之后,pe1查找对应vpn的vrf实例,将数据流发送给ce1。ce3要向ce2发送目的ip为20.30.1.1的数据流时,控制器通过与pe2的非vrf实例接口b建立的vpn邻居向pe2通告携带有私网重定向属性的路由20.30.1.1,pe2接收到路由20.30.1.1时,在pe2上vpn2的vrf实例的路由转发表中导入表9所示条目:目的ip出接口下一跳重定向的下一跳20.30.1.1pe2的b接口pe1的b接口地址pe1的s1接口地址表9另外,控制器通过与pe1的非vrf实例接口b建立的vpn邻居向pe1通告路由20.30.1.1。转发时,ce4将目的ip为20.30.1.1的数据流发送给pe2,pe2接收到目的ip为20.30.1.1的数据流之后,查找对应vpn的vrf实例(如表9所示),将该数据流重定向到pe1的s1接口通过pe间的ip路径转发,数据流到达pe1之后,pe1查找对应vpn的vrf实例,将数据流发送给ce1。下面介绍用于实施图3所示vpn路由通告方法的第一网络设备,所述第一网络设备为转发器或控制器,请参阅图5,本实施例的第一网络设备500包括:建立单元501,用于通过非vrf实例接口与第二网络设备建立虚拟专用网vpn邻居;发送单元502,用于通过所述vpn邻居向所述第二网络设备发送边界网关协议bgp更新update报文,所述bgpupdate报文中包括vpn路由信息及重定向的下一跳,所述重定向的下一跳为vrf实例接口地址,以使得所述第二网络设备将所述vpn路由信息及重定向的下一跳导入vrf实例中,并在接收到包含所述vpn路由信息的数据流时,根据所述vpn路由信息对应的所述vrf实例将所述数据流重定向到所述vrf实例接口对应的地址进行转发。进一步地,所述bgpupdate报文中包括私网重定向属性,所述私网重定向属性包括属性标记字段、属性类型字段和属性值域字段,所述属性标记字段用于指示属性非传递,所述属性类型字段用于指示属性的类型为重定向,所述属性值域字段用于携带重定向的所述vrf实例接口地址、路由导入条件。进一步地,所述路由导入条件包括:所述vpn路由信息中的路由目标rt与所述vrf实例的rt匹配时导入;或者所述vpn路由信息中的rt与所述vrf实例的rt匹配,且所述vpn路由信息中的路由区分符rd与所述vrf实例的rd匹配时导入。进一步地,当所述第一网络设备为转发器时,所述第一网络设备与所述第二网络设备不处于同一自治域,所述vrf实例接口地址为所述第一网络设备的vrf实例接口地址;当所述第一网络设备为控制器时,所述vrf实例接口地址为与所述第二网络设备处于同一自治域的第三网络设备的vrf实例接口地址。进一步地,当所述第一网络设备为转发器时,所述属性值字段还携带有转发标签的处理方式和路由前发方式。进一步地,所述转发标签的处理方式为忽略,所述路由前发方式为前发重新分配转发标签。进一步地,所述第一网络设备支持所述私网重定向属性,所述第一网络设备还包括确定单元503,所述确定单元503用于,根据所述第二网络设备发送的bgp打开open报文确定所述第二网络设备支持所述私网重定向属性,或者根据所述第二网络设备的静态配置确定所述第二网络设备支持所述私网重定向属性。需要说明的是,本实施例中未做详细描述的步骤可参阅图3所示方法实施例的描述,此处不再赘述。与图3所示方法相对应地,图6示出了本发明提供的第一网络设备600的另一实施例示意图,本实施例的第一网络设备600包括通信端口601、处理器602、存储器603及总线604。处理器602、该存储器603和该通信接口601通过该总线604连接并完成相互间的通信。该总线604可以是工业标准体系结构(industrystandardarchitecture,简称为isa)总线或外部设备互连(peripheralcomponent,简称为pci)总线或扩展工业标准体系结构(extendedindustrystandardarchitecture,简称为eisa)总线等。该总线可以分为地址总线、数据总线、控制总线中的一种或多种。为便于表示,图6中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。该存储器603用于存储可执行程序代码,该程序代码包括计算机操作指令。当该第一网络设备600执行该程序代码时,该第一网络设备600可以完成图3实施例的步骤301~302,也可以实现图5实施例中第一网络设备500的所有功能。该存储器603可以包含高速ram(randomaccessmemory)存储器。可选地,该存储器603还可以还包括非易失性存储器(non-volatilememory)。例如该存储器603可以包括磁盘存储器。该处理器602可以是一个中央处理器(centralprocessingunit,简称为cpu),或者该处理器602可以是特定集成电路(applicationspecificintegratedcircuit,简称为asic),或者该处理器602可以是被配置成实施本发明实施例的一个或多个集成电路。该处理器602,用于执行图5所示第一网络设备500的建立单元501及确定单元503所执行的所有操作,此处不再赘述。该通信接口601,用于执行图5所示第一网络设备500中的发送单元502所执行的所有操作,此处不再赘述。下面介绍用于实施图4所示数据流转发方法的第二网络设备,所述第二网络设备为转发器,请参阅图7,本实施例的第二网络设备700包括:建立单元701,用于通过非vrf实例接口与第一网络设备建立虚拟专用网vpn邻居;接收单元702,用于通过所述vpn邻居接收所述第一网络设备发送边界网关协议bgp更新update报文,所述bgpupdate报文中包括vpn路由信息及重定向的下一跳,所述重定向的下一跳为vrf实例接口地址;导入单元703,用于将所述vpn路由信息及重定向的下一跳导入vrf实例中;发送单元704,用于在所述接收单元702接收到包含所述vpn路由信息的数据流时,根据所述vpn路由信息对应的所述vrf实例将所述数据流重定向到所述vrf实例接口对应的地址进行转发。进一步地,所述bgpupdate报文中包括私网重定向属性,所述私网重定向属性包括属性标记字段、属性类型字段和属性值域字段,所述属性标记字段用于指示属性非传递,所述属性类型字段用于指示属性的类型为重定向,所述属性值域字段用于携带重定向的所述vrf实例接口地址、路由导入条件。进一步地,所述路由导入条件包括:所述vpn路由信息中的路由目标rt与所述vrf实例的rt匹配时导入;或者所述vpn路由信息中的rt与所述vrf实例的rt匹配,且所述vpn路由信息中的路由区分符rd与所述vrf实例的rd匹配时导入。进一步地,所述第一网络设备为控制器或转发器;当所述第一网络设备为转发器时,所述第一网络设备与所述第二网络设备不处于同一自治域,所述vrf实例接口地址为所述第一网络设备的vrf实例接口地址;当所述第一网络设备为控制器时,所述vrf实例接口地址为与所述第二网络设备处于同一自治域的第三网络设备的vrf实例接口地址。进一步地,当所述第一网络设备为转发器时,所述属性值字段还携带有转发标签的处理方式和路由前发方式。进一步地,所述转发标签的处理方式为忽略,所述路由前发方式为前发重新分配转发标签。进一步地,所述第二网络设备支持所述私网重定向属性,所述第二网络设备还包括确定单元705,所述确定单元705用于,根据所述第一网络设备发送的bgp打开open报文确定所述第一网络设备支持所述私网重定向属性,或者根据所述第一网络设备的静态配置确定所述第一网络设备支持所述私网重定向属性。需要说明的是,本实施例中未做详细描述的步骤可参阅图4所示方法实施例的描述,此处不再赘述。与图4所示方法相对应地,图8示出了本发明提供的第二网络设备800的另一实施例示意图,本实施例的第二网络设备800包括通信端口801、处理器802、存储器803及总线804。处理器802、该存储器803和该通信接口801通过该总线804连接并完成相互间的通信。该总线804可以是工业标准体系结构(industrystandardarchitecture,简称为isa)总线或外部设备互连(peripheralcomponent,简称为pci)总线或扩展工业标准体系结构(extendedindustrystandardarchitecture,简称为eisa)总线等。该总线可以分为地址总线、数据总线、控制总线中的一种或多种。为便于表示,图8中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。该存储器803用于存储可执行程序代码,该程序代码包括计算机操作指令。当该第二网络设备800执行该程序代码时,该第二网络设备800可以完成图4实施例的步骤401~404,也可以实现图7实施例中第二网络设备700的所有功能。该存储器803可以包含高速ram(randomaccessmemory)存储器。可选地,该存储器803还可以还包括非易失性存储器(non-volatilememory)。例如该存储器803可以包括磁盘存储器。该处理器802可以是一个中央处理器(centralprocessingunit,简称为cpu),或者该处理器802可以是特定集成电路(applicationspecificintegratedcircuit,简称为asic),或者该处理器802可以是被配置成实施本发明实施例的一个或多个集成电路。该处理器802,用于执行图7所示第二网络设备700的建立单元701、导入单元703及确定单元705所执行的所有操作,此处不再赘述。该通信接口801,用于执行图7所示第二网络设备700中的接收单元702及发送单元704所执行的所有操作,此处不再赘述。另外需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本发明提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件的方式来实现,当然也可以通过专用硬件包括专用集成电路、专用cpu、专用存储器、专用元器件等来实现。一般情况下,凡由计算机程序完成的功能都可以很容易地用相应的硬件来实现,而且,用来实现同一功能的具体硬件结构也可以是多种多样的,例如模拟电路、数字电路或专用电路等。但是,对本发明而言更多情况下软件程序实现是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘,u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。以上对本发明实施例所提供的一种vpn路由通告方法、数据流转发方法及相关设备进行了详细介绍,对于本领域的一般技术人员,依据本发明实施例的思想,在具体实施方式及应用范围上均会有改变之处,因此,本说明书内容不应理解为对本发明的限制。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1