报文的发送、处理方法及装置,PE节点,节点与流程

文档序号:17861549发布日期:2019-06-11 22:53阅读:568来源:国知局

本发明涉及通信领域,具体而言,涉及一种报文的发送、处理方法及装置,pe节点,节点。



背景技术:

在一条vpn业务中,网络节点被分为业务感知节点和非业务感知节点,该业务感知节点,即pe节点、可扩展虚拟局域网隧道端点(vxlantunnelendpoint,简称vtep)节点或网络虚拟边缘(networkvirtualizationedge,简称nve)节点,所谓非业务感知节点即pe节点或单层网络(underlay)网络节点。

为了提高运营商网络的带宽利用率,运营商常常部署负荷分担技术,其中,两种广泛应用的负荷分担技术称为链路聚合组(linkaggregationgroup,简称lag)和等价多路径(equalcostmulti-path,简称ecmp)。

所述lag和ecmp技术在进行负载均衡时,一般使用ip报文的五元组<源ip,目的ip,协议类型,源端口,目的端口>作为作为特征字段来进行哈希计算并作为ip报文的熵值,根据熵值进行算术求余运算来从多条转发路径中给该报文选择一条转发路径。在负载均衡中用于为报文选择转发路径的信息,称为熵,熵在负载均衡选路过程中以熵值的形式来起作用。

但是,对于vpn业务,所述五元组中缺省都只含有underlay网络的熵,显然,所述负载均衡算法并没有考虑overlay网络中的熵。

图1是相关技术中rfc7348定义的vxlan业务的拓扑图,以图1所示的vxlan业务为例,对于非业务感知节点p1,同一对<源pe,目的pe>之间的所有vpn业务流,无论其是否属于不同业务,也无论其是否同一业务中的不同流,均会被p1节点连接p2节点的所述lag的负载均衡算法选定在同一条转发路径上(因为其所述五元组都相等),负载均衡的程度就会比较低,并且无法体现报文的流特征。

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



技术实现要素:

本发明实施例提供了一种报文的发送、处理方法及装置,pe节点,节点,以至少解决相关技术中在underlay报文传输过程中无法体现overlay报文的流特征的技术问题。

本发明实施例提供了一种报文的发送方法,该方法包括:从第一接入电路ac接收第一报文;对第一报文进行处理,得到一个或多个第二报文;其中,第二报文中包括:第一互联网协议ip地址;第一ip地址为使用预定熵值对第二ip地址进行修改得到的ip地址;其中,预定熵值用于标识第一报文的熵;发送第二报文。

本发明实施例提供了一种报文的处理方法,该方法包括:接收第一服务提供商边缘设备pe发送的第三报文,其中,第三报文为第一pe对从第一pe的第一接入电路ac接收的第四报文进行处理得到的报文,第三报文中包括:第一互联网协议ip地址;第一ip地址为使用预定熵值对第二ip地址进行修改得到的ip地址,预定熵值用于标识第四报文的熵;处理第三报文。

本发明实施例提供了一种报文的发送装置,该装置包括:接收模块,用于从第一接入电路ac接收第一报文;处理模块,用于对第一报文进行处理,得到一个或多个第二报文;其中,第二报文中包括:第一互联网协议ip地址;第一ip地址为使用预定熵值对第二ip地址进行修改得到的ip地址;其中,预定熵值用于标识第一报文的熵;发送模块,用于发送第二报文。

本发明实施例提供了一种报文的处理装置,该装置包括:接收模块,用于接收第一服务提供商边缘设备pe发送的第三报文,其中,第三报文为第一pe对从第一pe的第一接入电路ac接收的第四报文进行处理得到的报文,第三报文中包括:第一互联网协议ip地址;第一ip地址为使用预定熵值对第二ip地址进行修改得到的ip地址,预定熵值用于标识第四报文的熵;处理模块,用于处理第三报文。

本发明实施例提供了一种pe节点,包括:通信接口,用于从第一接入电路ac接收第一报文;处理器,用于对第一报文进行处理,得到一个或多个第二报文;其中,第二报文中包括:第一互联网协议ip地址;第一ip地址为使用预定熵值对第二ip地址进行修改得到的ip地址;其中,预定熵值用于标识第一报文的熵;通信接口,用于发送第二报文。

本发明实施例提供了一种节点,包括:通信接口,用于接收第一服务提供商边缘设备pe发送的第三报文,其中,第三报文为第一pe对从第一pe的第一接入电路ac接收的第四报文进行处理得到的报文,第三报文中包括:第一互联网协议ip地址;第一ip地址为使用预定熵值对第二ip地址进行修改得到的ip地址,预定熵值用于标识第四报文的熵;处理器,用于处理第三报文。

本发明实施例提供了报文处理系统,包括:第一节点和第二节点;其中,所述第一节点,用于从第一接入电路ac接收第一报文,对所述第一报文进行处理得到一个或多个第二报文以及将所述第二报文发送给所述第二节点;其中,所述第二报文中包括:第一互联网协议ip地址;所述第一ip地址为使用预定熵值对第二ip地址进行修改得到的ip地址;其中,所述预定熵值用于标识所述第一报文的熵;所述第二节点,用于在接收到所述第二报文后,处理所述第二报文。

本发明实施例提供了一种存储介质,存储介质包括存储的程序,其中,程序运行时执行上述任一项所述的方法。

本发明实施例提供了一种处理器,处理器用于运行程序,其中,程序运行时执行上述任一项所述的方法。

通过本发明,在发送的第二报文中包括的第一ip地址为使用预定熵值对第二ip地址进行修改得到的ip地址,其中,该预定熵值用于标识第一报文的熵;即通过在第二报文的第一ip中携带与第一报文的熵有关的熵值信息,使得接收到第二报文的节点能够得益于上述预定熵值而可以在一定程度上区分接收到的不同第二报文中所封装的第一报文是否属于不同数据流,比如,是否属于不同业务,是否属于不同<源mac,目的mac>二元组,即在第二报文的传输过程中能够体现其所封装的第一报文的流特征,因而可以解决相关技术中underlay报文传输过程中无法体现overlay报文的流特征的问题,提高了负载均衡的程度。

附图说明

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

图1是相关技术中rfc7348定义的vxlan业务的拓扑图;

图2是相关技术中draft-ietf-bess-evpn-overlay(以下简称[evpnoverlay])定义的vxlanevpnmac-vrf业务的拓扑图;

图3是相关技术中draft-ietf-bess-evpn-prefix-advertisement(以下简称[evpnprefix])定义的vxlanevpnip-vrf业务的拓扑图;

图4是相关技术中rfc8214定义的evpnvpws业务的拓扑图;

图5是根据本发明实施例提供的报文发送方法的流程示意图;

图6是根据本发明实施例提供的pe1节点向p1节点发送报文流程中报文处理方法的流程示意图;

图7是根据本发明实施例提供的pe1节点向pe2节点发送报文流程中报文处理方法的流程示意图;

图8是根据本发明实施例提供的报文的发送装置的结构框图;

图9是根据本发明实施例提供的报文的处理装置的结构框图;

图10是根据本发明实施例提供的pe节点的结构示意图;

图11是根据本发明实施例提供的节点的结构框图;

图12是根据本发明优选实施例提供的pe节点的结构示意图;

图13是根据本发明优选实施例提供的非业务感知节点的结构示意图;

图14是根据本发明优选实施例提供的vxlan封装与srv6封装的对比简图;

图15是根据本发明优选实施例提供的vxlan封装与srv6封装的对比详图;

图16是根据本发明优选实施例提供的erh(entropyroutingheader)头的一种可能的封装格式图;

图17是根据本发明优选实施例提供的srv6封装的带srh头格式和不带srh头格式的对比图。

具体实施方式

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

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

evpn业务作为一种重要的vpn业务,rfc7432定义了它的控制面框架,其中的ethernetauto-discoveryroute、mac/ipadvertisementroute、inclusivemulticastethernettagroute、ethernetsegmentroute等四种路由分别称为rt-1、rt-2、rt-3和rt-4路由。draft-ietf-bess-evpn-prefix-advertisement又定义了evpn业务的ipprefixroute称为rt-5路由。

rfc6790中将报文中用于负载均衡的因子称为熵,其在报文中携带含有熵值的标签的办法,所述含有熵值的标签中包含了overlay网络的熵,但是,该办法依赖于mpls技术,要求underlay网络必须支持mpls技术,即其依赖于mpls封装。而在不支持mpls技术的ipv4网络中,相关技术中并没有在报文中携带熵的办法,因此负载均衡很不均匀。

此外,在不支持mpls技术的ipv6网络中,ipv6头的flow-label字段被设计用来取代ipv4头的业务类型(typeofservice,简称tos)字段的功能,但由于在从rfc2460到rfc3697到rfc6437之间的数十年时间中,该字段的具体使用细节一直没有明确的标准定义,因此,该字段承载熵值在实践中要求所有underlay网络中的非业务感知结点都支持该字段用于负载均衡选路且不用于其它目的,或者熵值的伪随机性会对其它目的的达成造成干扰。

现有rfc6790的熵值,指的是根据报文本身的特征字段生成的熵值,从而缺少对报文的上下文信息的体现,所述上下文信息包括报文进入设备的接口、报文所属的业务、报文所属的结点等,因此,其负载均衡的均匀程度存在进一步提高的余地。

某些情况下,用户不希望将自己的具体ip地址暴露在underlay网络中。

为了克服上述问题,本发明提供了以下几个实施例:

实施例1

本发明实施例提供了一种报文的发送方法,该方法可以应用于图1所述的拓扑中,但并不限于此,比如该方法还可以应用于图2所示的拓扑、图3所示的拓扑或图4所示的拓扑中,其中,图2是相关技术中[evpnoverlay]定义的vxlanevpnmac-vrf业务的拓扑图;图3是相关技术中[evpnprefix]定义的vxlanevpnip-vrf业务的拓扑图;图4是相关技术中rfc8214定义的evpnvpws业务的拓扑图。该发送方法的执行主体可以是pe节点,以图1所示的拓扑为例,该发送方法的执行主体可以是图1所示的pe1节点、pe2节点或pe3节点,并不限于此。

以下以该发送方法的执行主体为图1所示的pe1节点,并且报文的发送流程从ce1经由pe1节点向underlay网络中的非业务感知节点p1发送为例进行说明。图5是根据本发明实施例提供的报文发送方法的流程示意图,如图5所示,该方法包括:

步骤s502,pe1节点从pe1节点的第一接入电路ac接收第一报文;其中,所述接入电路ac为pe节点与客户边缘ce节点之间的接口或子接口或虚电路,其中,所述pe节点包括vtep结点和nve结点。

步骤s504,pe1节点对第一报文进行处理,得到一个或多个第二报文;其中,第二报文中包括:第一互联网协议ip地址;第一ip地址为使用预定熵值对第二ip地址进行修改得到的ip地址;其中,预定熵值用于标识第一报文的熵;

步骤s506,pe1节点向p1节点发送第二报文。

需要说明的是,熵值e(比如上述预定熵值)标识报文p(比如上述第一报文)的熵,指的是所述熵值e是以指定算法f对与所述报文p对应的一个或多个指定信息进行计算得到的数值,并且,当与所述报文p对应的所述指定信息中的任何一个发生随机变化时,通过所述算法f计算出的所述熵值e也有预定的概率发生变化。

需要说明的是,该预定的概率是由算法f、全部所述指定信息所占的二进制位总数和发生变化的指定信息所占的二进制位总数以及熵值e所占的二进制位总数决定。

通过上述步骤,在发送的第二报文中包括的第一ip地址为使用预定熵值对第二ip地址进行修改得到的ip地址,其中,该预定熵值用于标识第一报文的熵;即通过在第二报文的第一ip中携带与第一报文的熵有关的熵值信息,使得接收到第二报文的节点能够得益于上述预定熵值而可以在一定程度上区分接收到的不同第二报文中所封装的第一报文是否属于不同数据流,比如,是否属于不同业务,是否属于不同<源mac,目的mac>二元组,即在第二报文的传输过程中能够体现其所封装的第一报文的流特征,因而可以解决相关技术中underlay报文传输过程中无法体现overlay报文的流特征的问题,提高了负载均衡的程度。

需要说明的是,上述第一ip地址可以位于上述第二报文的以下至少之一位置中:源ip,目的ip,互联网协议第6版ipv6选项头中。通过将第一ip地址放在第二报文的源ip,目的ip,互联网协议第6版ipv6选项头中的至少之一位置上,即通过将第一报文的熵值携带在第二报文的源ip,目的ip,互联网协议第6版ipv6选项头中的至少之一中,而不需要对报文进行mpls封装,即在不支持mpls的ipv4或ipv6网络中,实现了在报文中携带熵值的方法,进而使得在不需要underlay网络中的非业务感知结点升级且不依赖mpls技术的情况下解决了ipv4和ipv6underlay网络中的负载均衡不均匀的问题。

可选地,在所述第一ip地址位于所述第二报文的ipv6选项头中的情况下,通过以下之一方式指示所述ipv6选项头中是否存在所述预定熵值:通过第二报文的ipv6头中下一报头next-header字段指示,通过所述ipv6选项头中的字段指示。

需要说明的是,上述ipv6头可以是ipv6选项头,也可以是ipv6必选头,其并不限于此。

需要说明的是,上述第二ip地址可以是在没有打开本发明的功能开关时对所述第一报文进行对应的处理得到的所述第二报文的源ip或目的ip,但并不限于此。当所述第一ip地址在所述ipv6选项头中时,可以将所述第二ip地址复制到ipv6选项头中,再用所述预定熵值修改所述第二ip地址在所述ipv6选项头中的副本。

需要说明的是,上述步骤s504中的处理可以表现为:封装,修改,但并不限于此。

需要说明的是,使用所述预定熵值对所述第二ip地址进行修改包括以下至少之一:用预定熵值取代第二ip地址中指定位置的值,其中,所述预定熵值为以下之一:本征熵值,上下文熵值,综合熵值;将用所述预定熵值与所述第二ip地址中指定位置的值进行计算得到的结果替换所述第二ip地址中所述指定位置的值,其中,所述预定熵值为以下之一:本征熵值,上下文熵值,综合熵值;用所述预定熵值对所述第二ip地址中指定位置的值进行加密,其中,所述预定熵值为本征熵值;其中,所述本征熵值为由所述第一报文中的一个或多个特征字段经过哈希计算得到的熵值;所述上下文熵值为由所述第一ac对应的一个或多个特征配置信息经过映射得到的熵值;所述综合熵值为由所述第一报文的本征熵值和所述第一报文的上下文熵值共同计算得到的熵值。

需要说明的是,frc6790的熵值指的是根据报文本身的特征字段生成的熵值,从而缺少对报文的上下文信息的体现,所述上下文信息包括报文进入设备的接口、报文所属的业务、报文所属的结点等,而在本发明的实施例中,当预定熵值为上下文熵值或综合熵值的情况下,即在第二报文的第一ip中携带上下文熵值或综合熵值,进一步提高了负载均衡的均匀程度。

在本发明的实施例中,在上述预定熵值包括本征熵值,用预定熵值对第二ip地址中指定位置的值进行加密,即通过第一报文的本征熵值对第二ip地址进行加密,既在报文中添加了第一报文的熵又对pe1节点上的ip地址进行了加密,既可以在不需要underlay网络中的非业务感知结点升级且不依赖mpls技术的情况下解决了ipv4和ipv6underlay网络中的负载均衡不均匀的问题,又可以保证ip地址不会暴露。

需要说明的是,上述特征字段可以包括以下至少之一:所述第一报文的源ip、目的ip、协议类型、源端口、目的端口、ipv4的tos字段、ipv6的flow-label字段;所述第一报文的源媒体访问控制mac、目的mac;所述第一报文的以太网类型ethertype、内外层虚拟局域网标识vlanid、802.1p优先级。其中,所述802.1p优先级指的是802.1p定义的优先级字段,包括标记协议标识(tagprotocolidentifier,简称tpid)为0x8100或0x88a8的tag中的优先级。

上述第一ac对应的特征配置信息可以包括以下至少之一:由所述第一ac映射得到的信息;由所述第一ac所在的节点得到的节点级配置信息;由所述第一ac所属的主接口映射得到的信息;由第一ac所属主接口对应的以太网分段标识符esi经过哈希计算后得到的信息;所述第一ac所属主接口对应的esi本身;所述第一ac所属主接口对应的esi对应的esiip,其中,所述esiip是为所述esi配置的一个ip地址,所述esiip与所述esi所属的节点上其它esi对应的esiip互不相同。

在本发明的实施例中,可以按照以下至少之一方法得到上述综合熵值,但并不限于此:由所述本征熵值和所述上下文熵值进行按位逻辑异或运算,得到所述综合熵值;由所述本征熵值、所述上下文熵值和任意n个常数进行计算,得到所述综合熵值;其中,n为大于或等于1的整数。

需要说明的是,上述计算可以哈希计算,但并不限于此。

在本发明的一个实施例中,上述第一ac所属业务类型可以包括以下至少之一:在虚拟专用网络vpn中基于所述第一报文的mac头转发的vpn;在vpn中基于所述第一报文的ip头转发的vpn(如何给在vpn中基于所述第一报文的ip头转发的vpn参见优选实施例9);在vpn中根据所述第一ac上的配置信息进行转发的vpn(如何给在vpn中根据所述第一ac上的配置信息进行转发的vpn参见优选实施例11)。

在本发明的一个实施例中,上述步骤s504还可以表现为以下至少之一,但并不限于此:pe1节点对所述第一报文进行可扩展虚拟局域网vxlan封装;pe1节点对所述第一报文进行vxlan通用协议扩展gpe封装;pe1节点对所述第一报文进行通用网络虚拟化封装geneve(genericnetworkvirtualizationencapsulation,简称geneve)封装;pe1节点对所述第一报文进行网络虚拟化之通用路由封装(networkvirtualizationusinggenericroutingencapsulation,简称nvgre)封装;pe1节点对所述第一报文进行扩展srv6(segmentroutinginstantiatedontheipv6dataplane,简称srv6)封装。

需要说明的是,分段路由srv6可以是“以ipv6数据面实现”或者“在ipv6数据面上实现的分段路由”(srv6referstosegmentroutinginstantiatedontheipv6dataplane)。

需要说明的是,上述以pe1作为执行主体进行的说明的,但并不限于pe1作为执行主体,还可以是pe2,pe3等,并不做限定。

本发明的一个实施例还提供了一种报文的处理方法,该报文的处理方法也可以应用于上述图1至图4中任一图所示的拓扑中,以下仍以图1为例进行说明,报文的处理方法的执行主体可以是图1中的pe1、pe2、pe3,p1和p2中的任意一个节点,其中,p1和p2都是非业务感知节点,以下以该处理方法的执行主体为图1所示的p1节点,并且报文的发送流程从pe1节点向underlay网络中的非业务感知节点p1或向pe2发送为例进行说明。图6是根据本发明实施例提供的pe1节点向p1节点发送报文流程中报文处理方法的流程示意图,如图6所示,该方法包括:

步骤s602,p1节点接收第一服务提供商边缘设备pe发送的第三报文,其中,所述第三报文为所述第一pe对从所述第一pe的第一接入电路ac接收的第四报文进行处理得到的报文,所述第三报文中包括:第一互联网协议ip地址;所述第一ip地址为使用预定熵值对第二ip地址进行修改得到的ip地址,所述预定熵值用于标识所述第四报文的熵;

步骤s604,p1节点处理所述第三报文。

需要说明的是,上述第一pe可以是pe1节点。上述第三报文相当于上述报文的发送方法所示的实施例中的第二报文,上述第四报文相当于上述报文的发送方法实施例中的第一报文。

通过上述方法,通过接收到的第三报文中包括的第一ip地址为使用预定熵值对第二ip地址进行修改得到的ip地址,其中,该预定熵值用于标识第四报文的熵;即通过在第三报文的ip中携带与第四报文的熵有关的熵值信息,使得p1能够通过上述预定熵值在一定程度上区分接收到的不同第二报文中所封装的第一报文是否属于不同数据流,比如,是否属于不同业务,是否属于不同<源mac,目的mac>二元组,即在第二报文的传输过程中能够体现其所封装的第一报文的流特征,因而可以解决相关技术中underlay报文传输过程中无法体现overlay报文的流特征的问题,提高了负载均衡的程度。

需要说明的是,所述第一ip地址位于所述第三报文的以下至少之一位置中:源ip,目的ip,互联网协议第6版ipv6选项头中。

需要说明的是,在所述第一ip地址位于所述第二报文的ipv6选项头中的情况下,通过以下之一方式指示所述ipv6选项头中是否存在所述预定熵值:通过所述第三报文的ipv6头中下一报头next-header字段指示,通过所述ipv6选项头中的字段指示。

需要说明的是,上述第三报文的目的ip为接收第三报文的节点上的远端ip地址,即上述处理方法的执行主体可以是p1节点,上述步骤s604可以表现为以下至少之一:p1节点根据所述第一ip地址选择负载均衡转发信息,p1节点根据所述负载均衡转发信息转发所述第三报文;p1节点将与所述第一ip地址中携带的所述预定熵值对应的二进制位分别视为预定值,对所述第三报文进行除转发之外的其它处理;p1节点直接转发所述第三报文。

需要说明的是,上述负载均衡转发信息可以是p1节点在负载均衡过程中对第三报文选择转发路径的信息。

需要说明的是,上述预定熵值可以与上述图5所示的实施例中的预定熵值的含义或解释相同,此处不再赘述。

图7是根据本发明实施例提供的pe1节点向pe2节点发送报文流程中报文处理方法的流程示意图,如图7所示,该方法包括:

步骤s702,pe2节点接收第一服务提供商边缘设备pe发送的第三报文,其中,所述第三报文为所述第一pe对从所述第一pe的第一接入电路ac接收的第四报文进行处理得到的报文,所述第三报文中包括:第一互联网协议ip地址;所述第一ip地址为使用预定熵值对第二ip地址进行修改得到的ip地址,所述预定熵值用于标识所述第四报文的熵;

步骤s704,pe2节点处理所述第三报文。

需要说明的是,上述第一pe可以是pe1节点。上述第三报文相当于上述报文的发送方法所示的实施例中的第二报文,上述第四报文相当于上述报文的发送方法实施例中的第一报文。

需要说明的是,上述步骤s702可以表现为:pe2直接接收pe1发送的第三报文,也可以是通过p1或p2的转发的方式来接收pe1发送的第三报文,但并不限于此。

需要说明的是,所述第一ip地址位于所述第三报文的以下至少之一位置中:源ip,目的ip,互联网协议第6版ipv6选项头中。

需要说明的是,在所述第一ip地址位于所述第二报文的ipv6选项头中的情况下,通过以下之一方式指示所述ipv6选项头中是否存在所述预定熵值:通过第三报文的ipv6头中下一报头next-header字段指示,通过所述ipv6选项头中的字段。

在上述第三报文的目的ip是为pe2节点配置的ip地址时,即上述处理第三报文的执行主体为pe2的情况下,上述步骤s704可以表现为:将所述第三报文中的所述第一ip地址中被所述预定熵值修改过的二进制位设置为预定值;其中,不同二进制位设置的预定值相同或不同;重新计算所述预定熵值,并以重新计算后的所述预定熵值对所述第三报文中的所述第一ip地址中被所述预定熵值加密的部分进行解密;其中,所述预定熵值为本征熵值;将所述第三报文中的包含所述第一ip地址的ipv6选项头剥离;直接处理所述第三报文。

需要说明的是,对于上述预定熵值,本征熵值等的解释可以参考图5所示实施例中对预定熵值,本征熵值的解释,此处不再赘述,谢谢。

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

实施例2

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

需要说明的是,本发明实施例提供的报文的发送装置可以位于图1至图4中任一图所示的pe节点上,比如图1所示的pe1节点、pe2节点或pe3节点,但并不限于此。

图8是根据本发明实施例提供的报文的发送装置的结构框图,如图8所示,该装置包括:

接收模块82,用于从第一接入电路ac接收第一报文;

处理模块84,与上述接收模块82连接,用于对所述第一报文进行处理,得到一个或多个第二报文;其中,所述第二报文中包括:第一互联网协议ip地址;所述第一ip地址为使用预定熵值对第二ip地址进行修改得到的ip地址;其中,所述预定熵值用于标识所述第一报文的熵;

发送模块86,与上述处理模块84连接,用于发送所述第二报文。

通过上述装置,在发送的第二报文中包括的第一ip地址为使用预定熵值对第二ip地址进行修改得到的ip地址,其中,该预定熵值用于标识第一报文的熵;即通过在第二报文的第一ip中携带与第一报文的熵有关的熵值信息,使得接收到第二报文的节点能够得益于上述预定熵值而可以在一定程度上区分接收到的不同第二报文中所封装的第一报文是否属于不同数据流,比如,是否属于不同业务,是否属于不同<源mac,目的mac>二元组,即在第二报文的传输过程中能够体现其所封装的第一报文的流特征,因而可以解决相关技术中underlay报文传输过程中无法体现overlay报文的流特征的问题,提高了负载均衡的程度。

需要说明的是,所述接入电路ac为pe节点与客户边缘ce节点之间的接口或子接口或虚电路,其中,所述pe节点包括vtep结点和nve结点;熵值e(比如上述预定熵值)标识报文p(比如上述第一报文)的熵,指的是所述熵值e是以指定算法f对与所述报文p对应的一个或多个指定信息进行计算得到的数值,并且,当与所述报文p对应的所述指定信息中的任何一个发生随机变化时,通过所述算法f计算出的所述熵值e也有预定的概率发生变化。

需要说明的是,该预定的概率是由算法f、全部所述指定信息所占的二进制位总数和发生变化的指定信息所占的二进制位总数以及熵值e所占的二进制位总数决定。

需要说明的是,上述第一ip地址可以位于上述第二报文的以下至少之一位置中:源ip,目的ip,互联网协议第6版ipv6选项头中。通过将第一ip地址放在第二报文的源ip,目的ip,互联网协议第6版ipv6选项头中的至少之一位置上,即通过将第一报文的熵值携带在第二报文的源ip,目的ip,互联网协议第6版ipv6选项头中的至少之一中,而不需要对报文进行mpls封装,即在不支持mpls的ipv4或ipv6网络中,实现了在报文中携带熵值的方法,进而使得在不需要underlay网络中的非业务感知结点升级且不依赖mpls技术的情况下解决了ipv4和ipv6underlay网络中的负载均衡不均匀的问题。

需要说明的是,在所述第一ip地址位于所述第二报文的ipv6选项头中的情况下,通过以下之一方式指示所述ipv6选项头中是否存在所述预定熵值:通过第二报文的ipv6头中下一报头next-header字段指示,通过所述ipv6选项头中的字段指示。

需要说明的是,上述ipv6头可以是ipv6选项头,也可以是ipv6必选头,其并不限于此。

需要说明的是,上述第二ip地址可以是在没有打开本发明的功能开关时对所述第一报文进行对应的处理得到的所述第二报文的源ip或目的ip,但并不限于此。当所述第一ip地址在所述ipv6选项头中时,可以将所述第二ip地址复制到ipv6选项头中,再用所述预定熵值修改所述第二ip地址在所述ipv6选项头中的副本。

需要说明的是,上述处理可以表现为:封装,修改,但并不限于此。

需要说明的是,使用所述预定熵值对所述第二ip地址进行修改包括以下至少之一:用预定熵值取代第二ip地址中指定位置的值,其中,所述预定熵值为以下之一:本征熵值,上下文熵值,综合熵值;将用所述预定熵值与所述第二ip地址中指定位置的值进行计算得到的结果替换所述第二ip地址中所述指定位置的值,其中,所述预定熵值为以下之一:本征熵值,上下文熵值,综合熵值;用所述预定熵值对所述第二ip地址中指定位置的值进行加密,其中,所述预定熵值为本征熵值;其中,所述本征熵值为由所述第一报文中的一个或多个特征字段经过哈希计算得到的熵值;所述上下文熵值为由所述第一ac对应的一个或多个特征配置信息经过映射得到的熵值;所述综合熵值为由所述第一报文的本征熵值和所述第一报文的上下文熵值共同计算得到的熵值。

需要说明的是,frc6790的熵值指的是根据报文本身的特征字段生成的熵值,从而缺少对报文的上下文信息的体现,所述上下文信息包括报文进入设备的接口、报文所属的业务、报文所属的结点等,而在本发明的实施例中,当预定熵值为上下文熵值或综合熵值的情况下,即在第二报文的第一ip中携带上下文熵值或综合熵值,进一步提高了负载均衡的均匀程度。

在本发明的实施例中,在上述预定熵值包括本征熵值,用预定熵值对第二ip地址中指定位置的值进行加密,即通过第一报文的本征熵值对第二ip地址进行加密,既在报文中添加了第一报文的熵又对pe1节点上的ip地址进行了加密,既可以在不需要underlay网络中的非业务感知结点升级且不依赖mpls技术的情况下解决了ipv4和ipv6underlay网络中的负载均衡不均匀的问题,又也可以保证ip地址不会暴露。

需要说明的是,上述特征字段可以包括以下至少之一:所述第一报文的源ip、目的ip、协议类型、源端口、目的端口、ipv4的tos字段、ipv6的flow-label字段;所述第一报文的源媒体访问控制mac、目的mac;所述第一报文的以太网类型ethertype、内外层虚拟局域网标识vlanid、802.1p优先级;其中,所述802.1p优先级指的是802.1p定义的优先级字段,包括标记协议标识(tagprotocolidentifier,简称tpid)为0x8100或0x88a8的tag中的优先级。

上述第一ac对应的特征配置信息可以包括以下至少之一:由所述第一ac映射得到的信息;由所述第一ac所在的节点得到的节点级配置信息;由所述第一ac所属的主接口映射得到的信息;由第一ac所属主接口对应的以太网分段标识符esi经过哈希计算后得到的信息;所述第一ac所属主接口对应的esi本身;所述第一ac所属主接口对应的esi对应的esiip,其中,所述esiip是为所述esi配置的一个ip地址,所述esiip与所述esi所属的节点上其它esi对应的esiip互不相同。

在本发明的实施例中,上述处理模块84还可以用于按照以下至少之一方法得到上述综合熵值,但并不限于此:由所述本征熵值和所述上下文熵值进行按位逻辑异或运算,得到所述综合熵值;由所述本征熵值、所述上下文熵值和任意n个常数进行计算,得到所述综合熵值;其中,n为大于或等于1的整数。需要说明的是,上述计算可以哈希计算,但并不限于此。

在本发明的一个实施例中,上述第一ac所属业务类型可以包括以下至少之一:在虚拟专用网络vpn中基于所述第一报文的mac头转发的vpn;在vpn中基于所述第一报文的ip头转发的vpn;在vpn中根据所述第一ac上的配置信息进行转发的vpn。

在本发明的一个实施例中,上述处理模块84还可以用于以下至少之一,但并不限于此:对所述第一报文进行可扩展虚拟局域网vxlan封装;对所述第一报文进行vxlan通用协议扩展gpe封装;对所述第一报文进行通用网络虚拟化封装geneve封装;对所述第一报文进行网络虚拟化之通用路由封装(networkvirtualizationusinggenericroutingencapsulation,简称nvgre)封装;对所述第一报文进行扩展srv6封装。

本发明实施例还提供了一种可以用于上述图1至图4中任一图所示的拓扑的报文的处理装置,需要说明的是,上述拓扑报文的处理装置可以位于图1至图4中任一图所示的pe节点(比如pe1,pe2,pe3并不限于此)或非业务感知节点(p1或p2),图9是根据本发明实施例提供的报文的处理装置的结构框图,如图9所示,该装置包括:

接收模块92,用于接收第一服务提供商边缘设备pe发送的第三报文,其中,所述第三报文为所述第一pe对从所述第一pe的第一接入电路ac接收的第四报文进行处理得到的报文,所述第三报文中包括:第一互联网协议ip地址;所述第一ip地址为使用预定熵值对第二ip地址进行修改得到的ip地址,所述预定熵值用于标识所述第四报文的熵;

处理模块94,与上述接收模块92连接,用于处理所述第三报文。

需要说明的是,上述第三报文相当于上述图8所示的实施例中的第二报文,上述第四报文相当于上述图8所示的实施例中的第一报文。上述第一pe上述图8所示的装置所在的pe节点,但并不限于此。

通过上述装置,通过接收到的第三报文中包括的第一ip地址为使用预定熵值对第二ip地址进行修改得到的ip地址,其中,该预定熵值用于标识第四报文的熵;即通过在第三报文的ip中携带与第四报文的熵有关的熵值信息,使得p1能够通过上述预定熵值在一定程度上区分接收到的不同第二报文中所封装的第一报文是否属于不同数据流,比如,是否属于不同业务,是否属于不同<源mac,目的mac>二元组,即在第二报文的传输过程中能够体现其所封装的第一报文的流特征,因而可以解决相关技术中underlay报文传输过程中无法体现overlay报文的流特征的问题,提高了负载均衡的程度。

需要说明的是,所述第一ip地址位于所述第三报文的以下至少之一位置中:源ip,目的ip,互联网协议第6版ipv6选项头中。

需要说明的是,在所述第一ip地址位于所述第二报文的ipv6选项头中的情况下,通过以下之一方式指示所述ipv6选项头中是否存在所述预定熵值:通过第三报文的ipv6头中下一报头next-header字段指示,通过所述ipv6选项头中的字段指示。

需要说明的是,上述第三报文的目的ip为接收第三报文的节点上的远端ip地址,即上述处理装置位于p1节点中,处理模块94还可以用于以下至少之一:根据所述第一ip地址选择负载均衡转发信息,根据所述负载均衡转发信息转发所述第三报文;将与所述第一ip地址中携带的所述预定熵值对应的二进制位分别视为预定值,对所述第三报文进行除转发之外的其它处理;直接转发所述第三报文。

需要说明的是,上述负载均衡转发信息可以是在负载均衡过程中对第三报文选择转发路径的信息。

在上述第三报文的目的ip是为pe节点配置的ip地址时,即上述处理装置位于pe节点中的情况下,上述处理模块94还可以用于以下至少之一:将所述第三报文中的所述第一ip地址中被所述预定熵值修改过的二进制位设置为预定值;其中,不同二进制位设置的预定值相同或不同;重新计算所述预定熵值,并以重新计算后的所述预定熵值对所述第三报文中的所述第一ip地址中被所述预定熵值加密的部分进行解密;其中,所述预定熵值为本征熵值;将所述第三报文中的包含所述第一ip地址的ipv6选项头剥离;直接处理所述第三报文。

需要说明的是,上述预定熵值可以与上述图8所示的实施例中的预定熵值的含义或解释相同,此处不再赘述。

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

实施例3

本发明实施例还提供了一种pe节点,该pe节点可以是图1至图4中任一图所示的pe节点,比如图1所示的pe1节点、pe2节点或pe3节点,图10是根据本发明实施例提供的pe节点的结构示意图,如图10所示,该pe节点包括:

通信接口1002,用于从第一接入电路ac接收第一报文;

处理器1004,与上述通信接口1002连接,用于对第一报文进行处理,得到一个或多个第二报文;其中,第二报文中包括:第一互联网协议ip地址;第一ip地址为使用预定熵值对第二ip地址进行修改得到的ip地址;其中,预定熵值用于标识第一报文的熵;

上述通信接口1002,还用于发送第二报文。

通过上述pe节点,在发送的第二报文中包括的第一ip地址为使用预定熵值对第二ip地址进行修改得到的ip地址,其中,该预定熵值用于标识第一报文的熵;即通过在第二报文的第一ip中携带与第一报文的熵有关的熵值信息,使得接收到第二报文的节点能够得益于上述预定熵值而可以在一定程度上区分接收到的不同第二报文中所封装的第一报文是否属于不同数据流,比如,是否属于不同业务,是否属于不同<源mac,目的mac>二元组,即在第二报文的传输过程中能够体现其所封装的第一报文的流特征,因而可以解决相关技术中underlay报文传输过程中无法体现overlay报文的流特征的问题,提高了负载均衡的程度。

需要说明的是,所述接入电路ac为pe节点与客户边缘ce节点之间的接口或子接口或虚电路,其中,所述pe节点包括vtep结点和nve结点;熵值e(比如上述预定熵值)标识报文p(比如上述第一报文)的熵,指的是所述熵值e是以指定算法f对与所述报文p对应的一个或多个指定信息进行计算得到的数值,并且,当与所述报文p对应的所述指定信息中的任何一个发生随机变化时,通过所述算法f计算出的所述熵值e也有预定的概率发生变化。

需要说明的是,该预定的概率是由算法f、全部所述指定信息所占的二进制位总数和发生变化的指定信息所占的二进制位总数以及熵值e所占的二进制位总数决定。

需要说明的是,上述第一ip地址可以位于上述第二报文的以下至少之一位置中:源ip,目的ip,互联网协议第6版ipv6选项头中。通过将第一ip地址放在第二报文的源ip,目的ip,互联网协议第6版ipv6选项头中的至少之一位置上,即通过将第一报文的熵值携带在第二报文的源ip,目的ip,互联网协议第6版ipv6选项头中的至少之一中,而不需要对报文进行mpls封装,即在不支持mpls的ipv4或ipv6网络中,实现了在报文中携带熵值的方法,进而使得在不需要underlay网络中的非业务感知结点升级且不依赖mpls技术的情况下解决了ipv4和ipv6underlay网络中的负载均衡不均匀的问题。

需要说明的是,在所述第一ip地址位于所述第二报文的ipv6选项头中的情况下,通过以下之一方式指示所述ipv6选项头中是否存在所述预定熵值:通过第二报文的ipv6头中下一报头next-header字段指示,通过所述ipv6选项头中的字段指示。

需要说明的是,上述ipv6头可以是ipv6选项头,也可以是ipv6必选头,其并不限于此。

需要说明的是,上述第二ip地址可以是在没有打开本发明的功能开关时对所述第一报文进行对应的处理得到的所述第二报文的源ip或目的ip,但并不限于此。当所述第一ip地址在所述ipv6选项头中时,可以将所述第二ip地址复制到ipv6选项头中,再用所述预定熵值修改所述第二ip地址在所述ipv6选项头中的副本。

需要说明的是,上述处理可以表现为:封装,修改,但并不限于此。

需要说明的是,使用所述预定熵值对所述第二ip地址进行修改包括以下至少之一:用预定熵值取代第二ip地址中指定位置的值,其中,所述预定熵值为以下之一:本征熵值,上下文熵值,综合熵值;将用所述预定熵值与所述第二ip地址中指定位置的值进行计算得到的结果替换所述第二ip地址中所述指定位置的值,其中,所述预定熵值为以下之一:本征熵值,上下文熵值,综合熵值;用所述预定熵值对所述第二ip地址中指定位置的值进行加密,其中,所述预定熵值为本征熵值;其中,所述本征熵值为由所述第一报文中的一个或多个特征字段经过哈希计算得到的熵值;所述上下文熵值为由所述第一ac对应的一个或多个特征配置信息经过映射得到的熵值;所述综合熵值为由所述第一报文的本征熵值和所述第一报文的上下文熵值共同计算得到的熵值。

需要说明的是,frc6790的熵值指的是根据报文本身的特征字段生成的熵值,从而缺少对报文的上下文信息的体现,所述上下文信息包括报文进入设备的接口、报文所属的业务、报文所属的结点等,而在本发明的实施例中,当预定熵值为上下文熵值或综合熵值的情况下,即在第二报文的第一ip中携带上下文熵值或综合熵值,进一步提高了负载均衡的均匀程度。

在本发明的实施例中,在上述预定熵值包括本征熵值,用预定熵值对第二ip地址中指定位置的值进行加密,即通过第一报文的本征熵值对第二ip地址进行加密,既在报文中添加了第一报文的熵又对pe1节点上的ip地址进行了加密,既可以在不需要underlay网络中的非业务感知结点升级且不依赖mpls技术的情况下解决了ipv4和ipv6underlay网络中的负载均衡不均匀的问题,又可以保证ip地址不会暴露。

需要说明的是,上述特征字段可以包括以下至少之一:所述第一报文的源ip、目的ip、协议类型、源端口、目的端口、ipv4的tos字段、ipv6的flow-label字段;所述第一报文的源媒体访问控制mac、目的mac;所述第一报文的以太网类型ethertype、内外层虚拟局域网标识vlanid、802.1p优先级;其中,所述802.1p优先级指的是802.1p定义的优先级字段,包括标记协议标识(tagprotocolidentifier,简称tpid)为0x8100或0x88a8的tag中的优先级。

上述第一ac对应的特征配置信息可以包括以下至少之一:由所述第一ac映射得到的信息;由所述第一ac所在的节点得到的节点级配置信息;由所述第一ac所属的主接口映射得到的信息;由第一ac所属主接口对应的以太网分段标识符esi经过哈希计算后得到的信息;所述第一ac所属主接口对应的esi本身;所述第一ac所属主接口对应的esi对应的esiip,其中,所述esiip是为所述esi配置的一个ip地址,所述esiip与所述esi所属的节点上其它esi对应的esiip互不相同。

在本发明的实施例中,上述处理器1004还可以用于按照以下至少之一方法得到上述综合熵值,但并不限于此:由所述本征熵值和所述上下文熵值进行按位逻辑异或运算,得到所述综合熵值;由所述本征熵值、所述上下文熵值和任意n个常数进行计算,得到所述综合熵值;其中,n为大于或等于1的整数。需要说明的是,上述计算可以哈希计算,但并不限于此。

在本发明的一个实施例中,上述第一ac所属业务类型可以包括以下至少之一:在虚拟专用网络vpn中基于所述第一报文的mac头转发的vpn;在vpn中基于所述第一报文的ip头转发的vpn;在vpn中根据所述第一ac上的配置信息进行转发的vpn。

在本发明的一个实施例中,上述处理器1004还可以用于以下至少之一,但并不限于此:对所述第一报文进行可扩展虚拟局域网vxlan封装;对所述第一报文进行vxlan通用协议扩展gpe封装;对所述第一报文进行通用网络虚拟化封装geneve封装;对所述第一报文进行网络虚拟化之通用路由封装(networkvirtualizationusinggenericroutingencapsulation,简称nvgre)封装;对所述第一报文进行扩展srv6封装。

本发明实施例还提供了一种节点,该节点可以是图1至图4中任一图所示的pe节点(比如pe1,pe2,pe3并不限于此)或非业务感知节点(p1或p2),图11是根据本发明实施例提供的节点的结构框图,如图11所示,该装置包括:

通信接口1102,用于接收第一服务提供商边缘设备pe发送的第三报文,其中,第三报文为第一pe对从第一pe的第一接入电路ac接收的第四报文进行处理得到的报文,第三报文中包括:第一互联网协议ip地址;第一ip地址为使用预定熵值对第二ip地址进行修改得到的ip地址,预定熵值用于标识第四报文的熵;

处理器1104,与上述通信接口1102连接,用于处理第三报文。

通过上述节点,通过接收到的第三报文中包括的第一ip地址为使用预定熵值对第二ip地址进行修改得到的ip地址,其中,该预定熵值用于标识第四报文的熵;即通过在第三报文的ip中携带与第四报文的熵有关的熵值信息,使得p1能够通过上述预定熵值在一定程度上区分接收到的不同第二报文中所封装的第一报文是否属于不同数据流,比如,是否属于不同业务,是否属于不同<源mac,目的mac>二元组,即在第二报文的传输过程中能够体现其所封装的第一报文的流特征,因而可以解决相关技术中underlay报文传输过程中无法体现overlay报文的流特征的问题,提高了负载均衡的程度。

需要说明的是,上述第三报文相当于上述图10所示的实施例中的第二报文,上述第四报文相当于上述图10所示的实施例中的第一报文。上述第一pe上述图10所示的pe节点,但并不限于此。

需要说明的是,所述第一ip地址位于所述第三报文的以下至少之一位置中:源ip,目的ip,互联网协议第6版ipv6选项头中。

需要说明的是,在所述第一ip地址位于所述第二报文的ipv6选项头中的情况下,通过以下之一方式指示所述ipv6选项头中是否存在所述预定熵值:通过第三报文的ipv6头中下一报头next-header字段指示,通过所述ipv6选项头中的字段指示。

需要说明的是,上述第三报文的目的ip为接收第三报文的节点上的远端ip地址,即上述节点为非业务感知节点中,上述处理器1104还可以用于以下至少之一:根据所述第一ip地址选择负载均衡转发信息,根据所述负载均衡转发信息转发所述第三报文;将与所述第一ip地址中携带的所述预定熵值对应的二进制位分别视为预定值,对所述第三报文进行除转发之外的其它处理;直接转发所述第三报文。

需要说明的是,上述负载均衡转发信息可以是在负载均衡过程中对第三报文选择转发路径的信息。

在上述第三报文的目的ip是为pe节点配置的ip地址时,即上述节点为pe节点的情况下,上述处理器1104还可以用于以下至少之一:将所述第三报文中的所述第一ip地址中被所述预定熵值修改过的二进制位设置为预定值;其中,不同二进制位设置的预定值相同或不同;重新计算所述预定熵值,并以重新计算后的所述预定熵值对所述第三报文中的所述第一ip地址中被所述预定熵值加密的部分进行解密;其中,所述预定熵值为本征熵值;将所述第三报文中的包含所述第一ip地址的ipv6选项头剥离;直接处理所述第三报文。

需要说明的是,上述预定熵值可以与上述图10所示的实施例中的预定熵值的含义或解释相同,此处不再赘述。

实施例4

本发明实施例还提供了一种报文的处理系统,包括:第一节点和第二节点;其中,所述第一节点,用于从第一接入电路ac接收第一报文,对所述第一报文进行处理得到一个或多个第二报文以及将所述第二报文发送给所述第二节点;其中,所述第二报文中包括:第一互联网协议ip地址;所述第一ip地址为使用预定熵值对第二ip地址进行修改得到的ip地址;其中,所述预定熵值用于标识所述第一报文的熵;所述第二节点,用于在接收到所述第二报文后,处理所述第二报文。

需要说明的是,上述第一节点可以是上述实施例3中的图10所示的pe节点,上述第二节点可以是上述实施例3中的图11所示的节点(pe节点或非业务感知节点)。对于第一节点和第二节点的解释,详见实施例3,此处不再赘述。

实施例5

本发明的实施例还提供了一种存储介质,该存储介质包括存储的程序,其中,上述程序运行时执行上述任一项所述的方法。

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

本发明的实施例还提供了一种处理器,该处理器用于运行程序,其中,该程序运行时执行上述任一项方法中的步骤。

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

为了更好地理解本发明实施例,以下结合优选的实施例对本发明做进一步解释。

本发明优选实施例提供的技术方案至少能够达到以下的技术效果:采用本发明优选实施例提供的所述熵ip收发节点作为pe节点,解决了在不升级现有underlay网络的非业务感知节点,不要求underlay网络支持mpls技术的前提下,解决了现有underlay网络的非业务感知节点上负载均衡无法体现overlay报文的流特征的问题。另外,由于熵值可以在源ip和/或目ip中携带,因此,可以解决负载均衡不均与以及需要升级现有underlay网络的非业务感知节点和要求underlay网络支持mpls技术的缺陷,达到在不需要underlay网络中的非业务感知结点升级的前提下,使用统一的技术解决了ipv4和ipv6underlay网络中的负载均衡不均匀的问题的效果。由于识别出上下文熵值,通过进一步携带上下文熵值,进一步提高了所述负载均衡的均匀程度。进一步地,通过用overlay报文的本征熵值对源ip或目的ip加密,既在underlayip头中添加了overlay报文的熵又对pe结点上的ip地址进行了加密,可以同时解决上述问题,使熵值的作用达到一种综合效果。

图12是根据本发明优选实施例提供的pe节点的结构示意图,如图12所示,包括:vpn基础设施模块,熵ip第一插件模块和熵ip第二插件模块,其中,熵ip第二插件模块是可选的,即上述pe节点可以包括熵ip第二插件模块,也可以不包括熵ip第二插件模块,具体包括还是不包括熵ip第二插件模块,可以根据需要进行设置,并不限定。

需要说明的是,上述vpn基础设施模块可以与上述接收模块82,发送模块86完成的功能类似,并且也可以完成上述处理模块84的部分功能,或者可以完成与上述通信接口1002的功能以及处理器1004的部分功能,或者可以完成上述通信接口1102完成的功能以及处理器1104的部分功能,但并不限于此。

上述熵ip第一插件模块可以完成上述处理模块84或处理器1004的部分功能,比如完成使用预定熵值对第二ip进行修改的功能;上述熵ip第二插件模块可以完成上述处理器1104的部分功能,但并不限于此。

图13是根据本发明优选实施例提供的非业务感知节点的结构示意图,如图13所示,包括:ip基础设置模块,熵ip第三插件模块;需要说明的是,熵ip第三插件模块是可选的,即上述非业务感知节点可以包括熵ip第三插件模块,也可以不包括熵ip第三插件模块,具体包括还是不包括熵ip第三插件模块,可以根据需要进行设置,并不限定。

需要说明的是,上述ip基础设置模块可以完成与上述通信接口1102以及上述处理器1104的部分功能,上述熵ip第三插件模块可以完成与上述处理器1104的部分功能,但并不限于此。

对于上述pe节点或非业务感知节点包括的上述模块的作用可以通过下述优选实施例进行详细描述。

优选实施例1

结合图12对所述在外层ip头中传输和使用内层报文的熵值的方法和装置(系统)的技术方案的pe结点的实施作进一步的详细描述:

1:实现所述vpn基础设施模块:

按rfc7348实现普通vxlan业务,则所得vxlan业务的控制面模块即所述vpn基础设施模块的控制面和人机界面部分。

同理,按rfc7348实现vxlan业务,则所得vxlan业务的转发面模块即所述vpn基础设施模块的转发面部分。

除特殊说明之处以外,本模块与以上所述rfc7348对应的人机界面和处理流程相同。

值得一提的是,按以上方法所得的一种evpn控制面模块,不失一般性,其可以用于包括vxlan隧道的配置、evpn实例的配置、ac与evpn实例的绑定配置、vxlan隧道与evpn实例的绑定配置等内容,其中,evpn实例以vni为标识,vni来自用户配置。其中,所述vxlan隧道在其两端结点上均以所在结点的vpnrouterid作为源ip,以对端结点的vpnrouterid作为目的ip。其中,所述vpnrouterid是一个loopback接口的ip地址。为描述简便起见,不失一般性,本模块设定一个节点只有一个vpnrouterid。

本模块作为软件实现,需要实现一种插件机制,用于在本模块按rfc7432流程转发所述第一报文时,给第一报文添加ip封装后,得到第x报文,所述第x报文还没有封装链路层转发信息(比如以太头),然后,以第x报文调用熵ip第一插件模块对ip封装中的源ip和目的ip进行修改,得到第y报文,然后继续按rfc7432的流程转发所述第y报文,其中包括按所述第y报文的目的ip封装链路层转发信息等其它转发信息,得到第二报文(相当于上述实施例中的第二报文或第三报文),并发送所述第二报文。所述插件机制可以是函数调用、回调函数、多态函数也可以是独立插件。

除插件机制以外,本模块的转发面与rfc7348对应转发面的处理流程相同,其中包括bum报文转发流程、mac学习流程、单播转发转发流程等。

此外,作为vpnrouterid的ip地址必须是一个loopback接口地址,该loopback接口地址可以配置子网掩码,并且,不需要所述子网掩码的每个二进制位的值均为1。值得一提的是,当所述子网掩码的低n位二进制位值为0时,该loopback接口将在ip路由表中形成一个对应于该子网掩码的路由前缀,并在underlay网络中发布该路由前缀;并且,本结点在接收到一个目的ip匹配该路由前缀的报文时,都认为是该loopback接口的报文,与目的ip为该loopback接口的ip地址的报文进行同样的处理。

此外,不失一般性,在本优选实施例中,设定underlay网络为ipv4网络,因此,vxlan隧道的源ip和目的ip均为ipv4地址。

此外,本模块当接收到的所述第三报文(相当于上述实施例中的第二报文或第三报文)的目的ip匹配所述evpn隧道的源ip所在的接口所对应的直连路由前缀时,就认为所述第三报文匹配该隧道,而不检查所述第三报文的源ip是否匹配所述evpn隧道的目的ip。

2:实现所述熵ip第一插件的具体方法:

与rfc7348不同,本模块还要基于所述第一报文的源mac通过某种哈希运算计算出5位熵值,并用所得熵值取代所述vpn基础设施模块输入的ip报文的目的ip的低5位原来的值;

3:实现所述熵ip第二插件模块的具体方法如下:

本优选实施例无需此模块。

结合图13对所述在外层ip头中传输和使用内层报文的熵值的方法和装置(系统)的技术方案的非业务感知p结点的实施作进一步的详细描述:

1:实现所述ip基础设施模块:

按现有技术实现基本的ipv4路由和ipv4转发功能,所述ipv4转发功能中包括基于mc-lag的负载均衡功能,负载均衡采用所接收的ip报文(相当于上述实施例中的第二报文或第三报文)的ip五元组作为算熵因子,进行哈希计算,得到所述ip报文的熵值。

值得一提的是,本模块并不感知所述ip报文中是否带有内层报文的熵。但是,如果所述ip报文的源ip或目的ip中本身已经包含了内层报文的熵,则算熵因子中就自动包含了内层报文的熵,从而所得新熵值中也就包括了内层报文的熵。

本模块也不需要调用所述熵ip第三插件。

2:实现所述熵ip第三插件模块的具体方法如下:

本模块在这种结点上不存在,一般地,这种结点都是现有结点。

以图1所示的vpn拓扑为例,网络及业务部署流程包括:

第一步,选取所述pe结点作为pe1、pe2和pe3结点,选取所述非业务感知结点作为p1和p2结点,选定underlay网络类型。本发明的每个优选实施例中的网络及业务部署流程部分均使用该优选实施例中定义的结点作为pe1、pe2、pe3、p1和p2结点,此后不再赘述。本优选实施例选定的underlay网络类型为ipv4网络。

第二步,配置并发布各pe结点的vpnrouterid。给各pe结点配置一个loopback接口,并给该loopback接口配置一个ip地址以及对应的子网掩码,并使用该loopback接口的ip地址作为该pe的vpnrouterid,并且使以该vpnrouterid及其对应的子网掩码生成的路由前缀在underlay网络中是路由可达的(可以ping通);其中,各pe的vpnrouterid以及对应的路由前缀均不同。在本优选实施例中,所述loopback接口的子网掩码为27位子网掩码,所述各loopback接口的ip地址的主机标识部分其值均为1。

第三步,建立图1所示的普通vxlan网络并配置各vxlan隧道。其中,同一对pe结点之间只有一条双向隧道。其中,配置到指定目标pe结点的vxlan隧道时,使用该目标pe结点的vpnrouterid作为该vxlan隧道的目的ip地址,使用自己的vpnrouterid作为该vxlan隧道的源ip地址。值得注意的是,按此办法配置出来的vxlan隧道,以pe1与pe3之间的vxlan隧道为例,在pe1上来看该隧道源ip是pe1的vpnrouterid,目的ip是pe3的vpnrouterid,而在pe3上来看该隧道的源ip是pe3的vpnrouterid,目的ip是pe1的vpnrouterid。

第四步,按图1所示建立一条vxlan业务。其中,ac1、ac2、ac3、ac4、ac5、ac6等6个接口均作为接入电路绑定所述vxlan业务,并将所述各vxlan隧道绑定到所述vxlan业务中。

第五步,消除接入侧环路。由于各pe结点对于从各ac接口收到的bum报文,均采用入口复制,以pe3从ac3收到的bum报文(相当于上述实施例中的第一报文或第四报文)为例,pe3会给pe1和pe2各复制一份,pe1和pe2在给ce1发包时,其中要有一个结点能够丢弃其中一份,这通过在ac1和ac2所属的物理口上部署一条mc-lag会话将ac1、ac2所属的物理口阻塞掉一个来实现,mc-lag启用以后,ce1就不会再收到两份bum报文,ce1、pe1和pe2之间的二层环路也消失了。同理,ac3、ac4所属的物理口上也要部署一条mc-lag会话。不失一般性,假设两条mc-lag连接分别阻塞的是ac1所在的物理口和ac5所在的物理口。

第六步,经过以上步骤,所述vxlan业务就建立起来了,可以使用数据报文来验证本优选实施例中定义的pe结点和非业务感知结点上的转发行为和效果了。

以图1所示的vpn拓扑为例,端到端报文转发流程包括:

第一步,当pe1结点从本地ac1收到一个bum报文b1(相当于上述实施例中的第一报文或第四报文)时,所述pe结点按rfc7348定义的转发流程转发b1报文,分别将b1报文的两个副本b1b(相当于上述实施例中的第二报文或第三报文)和b1c(相当于上述实施例中的第二报文或第三报文)发给pe2和pe3,且所述b1b和b1c两个报文相比b1报文来说均添加了vxlan封装,所述vxlan封装的外层ip头中包括了所述b1报文的本征熵值,所述本征熵值即由b1报文本身的特征字段计算出来的熵值。

第二步,不失一般性,假设在pe3结点收到所述b1c报文之前,underlay网络中的一个非业务感知结点p1先收到了所述b1c报文,由于所述p1结点不去感知内层报文,它将仍像转发普通ip报文那样,按b1c报文的目的ip转发b1c报文,不失一般性,本优选实施例设定所述p1结点按b1c报文的目的ip得出的转发结果是将b1c报文从图1中所示的p1节点和p2结点之间的链路聚合组lag上转发出去。进一步地,所述p1结点像转发普通ip报文那样,按b1c报文的最外层ip头对应的五元组计算负荷分担熵值,但是,由于b1c报文的最外层目的ip中已经包括了所述b1报文的熵,因此,p1结点上计算出的b1c报文的熵值将自动包含所述b1报文的熵。这样一来,随着内层b1报文的所述特征字段取不同的值,b1报文的熵值和b1c报文的熵值都会发生变化,于是所述p1结点上的负荷分担流程给b1c报文最终选择的出口转发信息也会随之变化,也就是说,p1结点上的负荷分担更均匀了,因为,在pe1没有实现本发明以前,无论b1报文怎样变化,在p1结点上b1c报文得到的出口转发信息都是一样的。显然,正是在pe1给b1c报文的外层ip头中添加的的内层b1报文的熵的帮助下,所述p1结点上的负荷分担的均衡性才得以提高。

第三步,当pe3结点收到所述b1c报文时,所述vpn基础设施模块可以对b1c报文实施性能统计,所述对b1c报文实施性能统计的算法,不因b1c中所含的熵值不同而采用不同的性能统计计数器,因为对pe3结点来说,本优选实施例中采用的熵值是具有伪随机性的,是没有意义的。

显然,通过上述第二步中已经可知,在本发明实施例中并没有对p1结点做任何改动,就提高了p1结点上的负荷分担效果。并且,本发明没有使用任何mpls技术。

优选实施例2

结合图12对所述在外层ip头中传输和使用内层报文的熵值的方法和装置(系统)的技术方案的pe结点的实施作进一步的详细描述:

1:实现所述vpn基础设施模块:

除明确说明之处以外,本模块与优选实施例1中的同名模块相同。

与优选实施例1不同,本模块设定underlay网络为ipv6网络。值得一提的是,这意味着本模块所配置的vxlan隧道的源ip和目的ip均为ipv6地址。

与优选实施例1不同,本模块的插件机制,还要在接收到所述第三报文,并对所述第三报文进行链路层检错处理和ip层检错处理之后,并且处理所述第三报文之前,调用熵ip第二插件模块对ip封装中的源ip和目的ip进行修改,然后对修改后的报文继续按照rfc7348中的处理流程进行处理。

2:实现所述熵ip第一插件模块的具体方法如下:

除明确说明之处以外,本模块与优选实施例1中的同名模块相同。

与优选实施例1不同,本模块使用第一报文的入口ac所属的物理口的接口名的哈希值作为所述第一报文的32位熵值;

与优选实施例1不同,本模块所使用的vxlan封装的源ip和目的ip均为ipv6地址,并符合rfc7348section5figure2中定义的格式。

与优选实施例1不同,本模块使用第二报文的源ip字段作为熵ip,所述熵ip为用所述熵值取代所述vpn基础设施模块输入的源ip的低32位所得的ip地址;

值得注意的是,本发明实施例中所述采用某字段作为熵ip,指的是采用该字段作为所述第一报文的熵的载体,通过用所述第一报文的熵值对熵ip进行修改,就使得所述熵ip中承载了所述第一报文的熵。

3:实现所述熵ip第二插件模块的具体方法如下:

本模块确定所述第三报文中需要修改的二进制位的位置,并对所述位置上的二进制位进行修改。限定于所述熵ip第一插件模块的实现,本模块确定所述第三报文中需要修改的二进制位为源ip地址的低32位,相应地,本模块还确定,对于每个需要修改的位,对该位的所述修改具体地说就是将该位清零。

结合图13对所述在外层ip头中传输和使用内层报文的熵值的方法和装置(系统)的技术方案的非业务感知p结点的实施作进一步的详细描述:

1:实现所述ip基础设施模块:

除特殊说明之处以外,本模块与优选实施例1中的同名模块相同。

与优选实施例1不同,本模块作为软件实现,需要实现一种插件机制,用于调用熵ip第三插件模块获取两个ip地址值,其中一个是源ip替代值,另一个是目的ip替代值。所述插件机制可以是函数调用、回调函数、多态函数也可以是独立插件。

与优选实施例1不同,本模块在对所述第三报文进行链路层检错处理和ip层检错处理之后,并且在进行除负载均衡之外的与所述第三报文的源ip或目的ip地址有关的处理时,调用所述ip基础设施获取所述第三报文的源ip替代值和目的ip替代值,并以所述源ip替代值(或目的ip替代值)替代所述第三报文的源ip值(或目的ip值),参与所述与源ip(或目的ip)地址有关的处理。

所述与第三报文的源ip有关的处理,包括对第三报文本身的处理,也包括由所述第三报文触发生成的其它报文的处理,比如,当所述第三报文的ttl耗尽或所述第三报文的目的ip不可达时,本节点可以向所述第三报文的源ip回应一个icmp消息。

2:实现所述熵ip第三插件模块的具体方法如下:

本模块的主要作用是根据所述ip基础设施模块输入的ip报文的源ip和目的ip返回源ip替代值和目的ip替代值。其中,确定所述源ip替代值和目的ip替代值的算法如下:

若源ip取熵掩码为0,则源ip替代值即为所述源ip本身的值;

若目的ip取熵掩码为0,则目的ip替代值即为所述目的ip本身的值;

若源ip取熵掩码不为0,则以所述源ip地址与所述源ip取熵掩码的反码进行按位逻辑与运算,并将所得结果的最低二进制位置为1后作为所述源ip替代值;

若目的ip取熵掩码不为0,则以所述目的ip地址与所述目的ip取熵掩码的反码进行按位逻辑与运算,并将所得结果的最低二进制位置为1后作为所述目的ip替代值;

其中,在本优选实施例中,所述源ip取熵掩码和所述目的ip取熵掩都是ipv6地址格式,并且,所述源ip取熵掩码的16进制值为0x0ffffffff,所述目的ip取熵掩码的值为0。

然后,本模块将所述源ip替代值和所述目的ip替代值返回给所述ip基础设施模块。

值得注意的是,本模块并不改变所述ip基础设施输入的报文。

以图1所示的vpn业务为例,网络及业务部署流程部分的处理步骤如下:

除特殊说明之处以外,本步骤与优选实施例1中的对应步骤相同;

同优选实施例1,只除了underlay网络为ipv6网络,且各vpnrouterid所在的loopback接口均配置了96位子网掩码,且vxlan隧道的源ip和目的ip均为ipv6地址。

以图1所示的vpn拓扑为例,端到端报文转发流程部分的处理步骤如下:

本步骤与优选实施例1中的对应步骤相同。除了体现本发明对p1结点的负载均衡效果提高的现象为:当所述b1报文从pe1的不同ac上进入所述evpn实例时,其对应的b1c报文在p1结点上最终得到的出口转发信息也是不同的。此现象完全是因为pe1在b1c报文的外层ip中添加了所述b1报文的上下文熵,所述上下文熵由所述b1报文的入口ac的接口名进行哈希运算得到。

优选实施例3

下面结合图12对所述在外层ip头中传输和使用内层报文的熵值的方法和装置(系统)的技术方案的pe结点的实施作进一步的详细描述:

1:实现所述vpn基础设施模块:

除明确说明之处以外,本模块与优选实施例2中的同名模块相同。

与优选实施例2不同,本模块采用的underlay网络技术为ipv6技术。

与优选实施例2不同,本模将所述第一报文封装为所述第二报文所用的封装格式为geneve封装格式,该格式在draft-ietf-nvo3-geneve中定义;该草案中还定义了如何在不改变基本业务效果的情况下将报文从vxlan封装转换为geneve封装,这部分转换属于现有技术。是否叠加geneve封装特有的功能(相对于rfc7348),属于geneve技术与本实施例的组合应用,与本优选实施例本身无关,为了简单起见,本优选实施例只考虑geneve封装与vxlan封装的公共能力范围之内的情况。

2:实现所述熵ip第一插件模块的具体方法如下:

除明确说明之处以外,本模块与优选实施例2中的同名模块相同。

与优选实施例2不同,本模块使用第一报文的目的mac进行哈希计算的结果作为所述第一报文的8位熵值;

与优选实施例2不同,本模块使用第一报文的源ip字段作为熵ip,所述熵ip为用所述熵值与vpn基础设施模块输入的源ip的低8位进行按位逻辑异或操作所得的ip地址;

3:实现所述熵ip第二插件模块的具体方法如下:

除特殊说明之处以外,本模块与优选实施例2相同;

与优选实施例2不同,本模块确定的所述第三报文中需要修改的二进制位的位置为源ip的低8位。进一步地,本模块确定对所述位置的二进制位的修改方法为将其复原为其在被熵ip第一插件修改之前的值。具体地,所述复原方法为:首先用所述熵ip第一插件模块中的算法重新计算所述第三报文的ip头内层所承载的所述第四报文的熵值,然后用该熵值与所述位置的二进制位进行按位逻辑异或操作。

值得注意的是,因为所述vpn基础设施本身是rfc7348vxlan的一种实现,rfc7348是基于vxlan数据报文进行远端mac条目的学习的,如果源ip不进行除熵处理,所述远端mac条目会频繁在同一源ip的不同密文之间漂移,因为所述vpn基础设施模块并不知道这些密文是同一ip地址,它是作为不同ip地址看待的;同理,不同源ip地址被加密后的密文可能碰巧相同,此时它们又被所述vpn基础设施模块作为同一ip地址看待,也会有问题。本除将所述源ip复原,无疑是一种解密过程,目的也是为了除去所述源ip中所含的内层报文(相当于上述实施例中的第一报文或第四报文)的熵。

结合图13对所述在外层ip头中传输和使用内层报文的熵值的方法和装置(系统)的技术方案的非业务感知p结点的实施作进一步的详细描述:

1:实现所述ip基础设施模块:

除特殊说明之处以外,本模块与优选实施例2中的同名模块相同。

与优选实施例2中不同,本模块采用ipv4路由和转发技术,转发的是ipv4报文。

2:实现所述熵ip第三插件模块的具体方法如下:

除特殊说明之处以外,本模块与优选实施例2中的同名模块相同。

与优选实施例2不同,在本模块中,所述源ip取熵掩码和目的ip取熵掩码都是ipv4地址格式,且所述源ip取熵掩码,其16进制值为0x0ff,所述目的ip取熵掩码其值为0。

以图1所示的vpn业务为例,网络及业务部署流程部分的处理步骤如下:

除特殊说明之处以外,本步骤与优选实施例1中的对应步骤相同;

同优选实施例1,只除了各vpnrouterid所在的loopback接口均配置了24位子网掩码。同时,需要在网络中部署geneve并应用于所述evpn实例。

以图1所示的vpn拓扑为例,端到端报文转发流程部分的处理步骤如下:

本步骤与优选实施例1中的对应步骤相同。

优选实施例4

下面结合图12对所述在外层ip头中传输和使用内层报文的熵值的方法和装置(系统)的技术方案的pe结点的实施作进一步的详细描述:

1:实现所述vpn基础设施模块:

除特殊说明之处以外,本模块与优选实施例2中的同名模块相同;

与优选实施例2不同,本模将所述第一报文封装为所述第二报文所用的封装格式为vxlangpe封装格式,该格式在draft-ietf-nvo3-vxlan-gpe中定义,该草案中定义了如何在不改变基本业务效果的前提下将报文从vxlan封装转换为vxlangpe封装,这部分转换属于现有技术。是否叠加vxlangpe封装特有的功能(相对于rfc7348),属于vxlangpe技术与本优选实施例的组合,与本优选实施例本身无关,为了简单起见,本优选实施例只考虑vxlangpe封装与rfc7348封装的公共能力范围之内的情况。

2:实现所述熵ip第一插件模块的具体方法如下:

除特殊说明之处以外,本模块与优选实施例2中的同名模块相同;

与优选实施例2不同,本模块当内层报文的以太载荷为ipv6包时,使用五元组<源ip,目的ip,协议类型,源端口号,目的端口号>以及ipv6头的flow-label字段共同进行哈希计算的结果作为所述第一报文的20位熵值;

与优选实施例2不同,本模块使用第二报文的目的ip字段作为熵ip,所述熵ip为用所述熵值与vpn基础设施模块输入的目的ip的低20位进行按位逻辑异或运算,所得结果存入所述目的ip地址的低20位;

值得注意的是,按位逻辑异或运算实际上是一种简单加密算法。

3:实现所述熵ip第二插件模块的具体方法如下:

除特殊说明之处以外,本模块与优选实施例2相同;

与优选实施例2不同,本模块确定的所述第三报文中需要修改的二进制位的位置为目的ip的低20位。进一步地,本模块确定对所述位置的二进制位的修改方法为将其复原为其在被熵ip第一插件修改之前的值。具体地,所述复原方法为:首先用所述熵ip第一插件模块中的算法重新计算所述第三报文的ip头内层所承载的所述第四报文的熵值,然后用该熵值与所述位置的二进制位进行按位逻辑异或运算,结果保存在所述第三报文的目的ip的低20位中。

结合图13对所述在外层ip头中传输和使用内层报文的熵值的方法和装置(系统)的技术方案的非业务感知p结点的实施作进一步的详细描述:

1:实现所述ip基础设施模块:

本模块与优选实施例2中的同名模块相同。

2:实现所述熵ip第三插件模块的具体方法如下:

除特殊说明之处以外,本模块与优选实施例2中的同名模块相同。

与优选实施例2不同,在本模块中,所述源ip取熵掩码和目的ip取熵掩码都是ipv6地址格式,并且,所述源ip取熵掩码,其16进制值为0,所述目的ip取熵掩码,其16进制值为0x0fffff。

以图1所示的vpn业务为例,网络及业务部署流程部分的处理步骤如下:

除特殊说明之处以外,本步骤与优选实施例1中的对应步骤相同;

同优选实施例2,只除了各vpnrouterid所在的loopback接口均配置了108位子网掩码。同时,需要在网络中部署vxlangpe并应用于所述evpn实例。

以图1所示的vpn拓扑为例,端到端报文转发流程部分的处理步骤如下:

本步骤与优选实施例2中的对应步骤相同。

优选实施例5

下面结合图12对所述在外层ip头中传输和使用内层报文的熵值的方法和装置(系统)的技术方案的pe结点的实施作进一步的详细描述:

1:实现所述vpn基础设施模块的具体方法如下:

除特殊说明之处以外,本模块与优选实施例2中同名模块相同;

与优选实施例2中不同,本模块以vpnrouterid结合evpn实例上配置的vni生成一个ip地址,称为vniip地址,所述vniip地址以vpnrouterid的高104位作为高104,以vni作为低24位;其中,所述vni与所述vpnrouterid的低24位不相等。

与优选实施例2不同,本模将所述第一报文封装为所述第二报文所用的封装格式为nvgre(networkvirtualizationusinggenericroutingencapsulation)格式,该格式在rfc7637中定义,draft-ietf-bess-evpn-overlay中定义了如何在不改变基本业务效果的前提下将报文从vxlan封装转换为nvgre封装,这部分转换属于现有技术。是否叠加nvgre封装特有的功能(相对于rfc7348),属于nvgre技术与本优选实施例的组合,与本优选实施例本身无关,为了简单起见,本优选实施例只考虑nvgre封装与rfc7348封装的公共能力范围之内的情况。

2:实现所述熵ip第一插件模块的具体方法如下:

除特殊说明之处以外,本模块与优选实施例2中同名模块相同;

与优选实施例2不同,本模块用所述vniip替换所述vpn基础设施模块输入的报文的最外层目的ip,从而使得最终的最外层目的ip的低24位中包括了evpn实例的vni,此vni即为所述第一报文的上下文熵值,它由所述第二报文承载。

3:实现所述熵ip第二插件模块的具体方法如下:

除特殊说明之处以外,本模块与优选实施例2相同;

与优选实施例2不同,本模块将所述vpn基础设施模块输入的报文原封不动地返回给所述vpn基础设施模块。

值得一提的是,目的ip中的低24位尽管包含了内层报文的上下文熵值,但是却不需要清零的原因在于,该处数值确实与所述第三报文所经由的vxlan隧道的源结点(即所述第一pe)上的某个接口(具体地,是一个evpn实例接口)的ip地址相对应,因而所述目的ip地址确实是ip可达的,而普通包含熵值的ip地址则不符合这个条件。

结合图13对所述在外层ip头中传输和使用内层报文的熵值的方法和装置(系统)的技术方案的非业务感知p结点的实施作进一步的详细描述:

1:实现所述ip基础设施模块:

除特殊说明之处以外,本模块与优选实施例1中的同名模块相同。

与优选实施例1不同,本模块采用ipv6路由和转发技术,可处理ipv6报文。

2:实现所述熵ip第三插件模块的具体方法如下:

与优选实施例1相同,本结点不需要此模块。

以图1所示的vpn业务为例,网络及业务部署流程部分的处理步骤如下:

除特殊说明之处以外,本步骤与优选实施例2中的对应步骤相同;

同优选实施例2,只除了各vpnrouterid所在的loopback接口均配置了104位子网掩码。

以图1所示的vpn拓扑为例,端到端报文转发流程部分的处理步骤如下:

本步骤与优选实施例2中的对应步骤相同。

优选实施例6

下面结合图12对所述在外层ip头中传输和使用内层报文的熵值的方法和装置(系统)的技术方案的pe结点的实施作进一步的详细描述:

1:实现所述vpn基础设施模块的具体方法如下:

除特殊说明之处以外,本模块与优选实施例5中同名模块相同;

与优选实施例5中不同,本模块的evpn实例同时也对应一个同名虚接口,称为evpn实例接口,所述evpn实例接口具有现有loopback接口的所有功能。值得一提的是,这意味着:evpn实例接口的ip地址要作为本地主机路由添加到路由表中,并且,该evpn实例接口上配置的ip地址掩码要作为本地直连路由前缀添加到路由表中,并且,从所述本地主机路由和所述本地直连路由前缀对应的路由条目中均可以知道它是根据哪个接口(必定是evpn实例接口)所生成的路由。

与优选实施例5中不同,本模块的evpn实例上配置的vni只作为一个标识evpn实例的数值来看待,并不具有rfc7348中的vni的作用,取而代之的是直接将优选实施例5中所述的vniip作为相应的evpn实例接口的ip地址配置在所述evpn实例接口上;

与优选实施例5中不同,本优选实施例中每条vxlan隧道都专属于一条业务,每条业务都为该业务中每个远端节点部署一条vxlan隧道;具体地,本优选实施例中每条vxlan隧道的源ip是该vxlan隧道所属evpn实例对应的evpn实例接口的ip地址,目的ip是该vxlan隧道在目的节点上所属evpn实例对应的evpn实例接口的ip地址;

本模块将第一报文封装成第二报文所用的封装与优选实施例5中采用的vxlan封装相比,去掉了udp头和vxlan头,从而与srv6中end.dx2类型的function具有相同的格式;这种封装格式在本发明中称为甲型扩展srv6封装,如图14,图15中的格式b所示,其中图15是图14的展开,包括了从源ip到以太层载荷数据之间的各字段与vxlan封装中的相关字段的详细对比;

相应地,本模块接收第三报文时,若第三报文的目的ip命中一条本地直连路由,且该路由是一个evpn实例接口生成的,则认为所述第三报文为甲型扩展srv6封装,并且,所述第三报文在所述evpn实例接口对应的evpn实例中转发。转发时,除封装解封装之外,图15中格式b中的每个字段,除特殊说明之处以外,均具有与图15中格式a中的同名字段相同的作用。

2:实现所述熵ip第一插件模块的具体方法如下:

除特殊说明之处以外,本模块与优选实施例5中同名模块相同;

与优选实施例5不同,本模块将入口ac上的子接口vlan信息映射为所述第四报文的24位熵值,方法是:熵值的高12位取所述入口ac上配置的外层vlanid,低12位取所述入口ac上配置的内层vlanid,当所述内层vlanid不存在对应配置时,低12位取0x3ff,当所述外层vlanid不存在对应配置时,高12位取0x3ff;

与优选实施例5不同,本模块使用第二报文的源ip字段作为熵ip,所述熵ip为用所述24位熵值取代按rfc7348流程转发将得到的源ip的低24位所得的ip地址;

值得注意的是,本模块并没有修改vpn基础设施模块输入的报文的目的ip字段,但是,该字段中本身已经含有了报文所属的evpn业务信息,dip中与优选实施例5相比自动具有了更多的熵。

值得注意的是,本模块并没有修改所述第二报文的源ip字段的高104位,因此,mac学习流程学到的目的ip的高104位与现有技术并无不同,所述目的ip的高104位就能使所述第二报文到目的pe节点上匹配到所属的evpn实例。

3:实现所述熵ip第二插件模块的具体方法如下:

除特殊说明之处以外,本模块与优选实施例5相同;

与优选实施例5不同,本模块将所述vpn基础设施模块输入的报文原封不动地返回给所述vpn基础设施模块。

值得注意的是,因为所述vpn基础设施模块输入的报文的源ip中包括了远端某条ac对应的vlanid信息,将该信息用于性能统计,能使得来自远端不同ac的报文被统计到不同的计数器上,从而使得性能统计数据更为精确。

结合图13对所述在外层ip头中传输和使用内层报文的熵值的方法和装置(系统)的技术方案的非业务感知p结点的实施作进一步的详细描述:

1:实现所述ip基础设施模块:

本模块与优选实施例5中的同名模块相同。

2:实现所述熵ip第三插件模块的具体方法如下:

本模块与优选实施例5中的同名模块相同。

以图1所示的vpn业务为例,网络及业务部署流程部分的处理步骤如下:

除特殊说明之处以外,本步骤与优选实施例1中的对应步骤相同;

同优选实施例5,除了如下情况之外:每个evpn实例对应一个evpn实例接口,给该接口配置ipv6地址和104位ipv6地址掩码,且任意两个evpn实例接口生成的104位ipv6路由前缀均是不相匹配的。每条vxlan隧道的源ip和目的ip都是某个evpn实例接口的ip地址,除此之外,还必须满足优选实施例5要求。

值得注意的是,每个evpn实例只有一个对应的evpn实例接口,每个evpn实例接口也只有一个对应的evpn实例。

以图1所示的vpn拓扑为例,端到端报文转发流程部分的处理步骤如下:

本步骤与优选实施例5中的对应步骤相同。

显然,在优选实施例6中,给其中的evpn实例接口配置的ipv6地址的低24位是否与对应evpn实例的vni值相等,并不影响所述ipv6地址的作用,因为,无论是否有此关系,所述ipv6地址都已经与evpn实例具有一一对应关系。优选实施例6中之所以采取该种描述方式,只是为了使所述一一对应关系更为直观和明显,并不构成对本优选实施例的不当限定。

优选实施例7

结合图12对所述在外层ip头中传输和使用内层报文的熵值的方法和装置(系统)的技术方案的pe结点的实施作进一步的详细描述:

1:实现所述vpn基础设施模块:

按draft-ietf-bess-evpn-overlay(以下简称“[evpnoverlay]”)实现vxlanevpn业务,则所得vxlanevpn业务的控制面模块即所述vpn基础设施模块的控制面部分。

同理,按[evpnoverlay]实现vxlanevpn业务,则所得vxlanevpn业务的转发面模块即所述vpn基础设施模块的转发面部分。

值得一提的是,按以上方法所得的evpn控制面模块,其中包括mp-bgp协议l2vpnevpn地址族相关配置、evpn实例的配置、ac与evpn实例的绑定配置、esi相关配置等内容,其中,evpn实例以vni为标识,vni来自用户配置。

值得一提的是,本模块中vxlan隧道及其与evpn实例的绑定关系按[evpnoverlay]协议规定由mp-bgp会话动态生成。

本模块对插件机制的要求与优选实施例1相同。

本模块对vpnrouterid和loopback接口的ip地址及其子网掩码的配置要求和功能要求与优选实施例1相同。

此外,不失一般性,在本优选实施例中,设定underlay网络为ipv4网络,因此,vxlan隧道的源ip和目的ip均为ipv4地址。

2:实现所述熵ip第一插件模块的具体方法如下:

除特殊说明之处以外,本模块与优选实施例3相同;

与优选实施例3不同,本模块基于所述第一报文的源mac、vlanid、802.1p优先级、载荷对应的ethertype进行哈希计算得出所述第一报文的5位本征熵值,然后,本模块基于所述第一报文的入口ac所属主接口的接口名进行哈希计算,得出5位上下文熵值,将两者进行按位逻辑异或运算,再与素数29进行按位逻辑异或运算,得出5位综合熵值,然后,将vpn基础设施模块所输入的所述第二报文的目的ip的低5位与所述综合熵值进行按位逻辑异或运算,其结果存储在前者中。

3:实现所述熵ip第二插件模块的具体方法如下:

除特殊说明之处以外,本模块与优选实施例3相同;

本模块确定的所述第三报文中在进行与ip地址相关的处理之前需要清零的二进制位的位置为目的ip的低5位。

结合图13对所述在外层ip头中传输和使用内层报文的熵值的方法和装置(系统)的技术方案的非业务感知p结点的实施作进一步的详细描述:

1:实现所述ip基础设施模块:

本模块与优选实施例3中的同名模块相同。

2:实现所述熵ip第三插件模块的具体方法如下:

除特殊说明之处以外,本模块与优选实施例3中的同名模块相同。

与优选实施例3不同,在本模块中,所述源ip取熵掩码和目的ip取熵掩码都是ipv6地址格式,并且,所述源ip取熵掩码,其16进制值为0,所述目的ip取熵掩码,其16进制值为0x01f。

以图2所示的evpn拓扑为例,网络及业务部署流程包括:

第一步,与优选实施例1中的对应步骤相同,除了underlay网络为ipv4。

第二步,与优选实施例1中的对应步骤相同,除了vpnrouterid所在loopback接口配置了27位子网掩码。

第三步,建立图1所示的vxlanevpn网络。包括,在pe1、pe2、pe3之间两两配置mp-bgp会话,并使能l2vpnevpn地址族的相关配置。为简单起见,通过调整bgp的配置,使得evpnrt-3路由可以将业务所需全部vxlan隧道动态生成。不失一般性,为简单起见,可以通过调整bgp配置使得通过rt-3路由生成的vxlan隧道符合如下规则:在任意两个pe结点之间,只生成一条双向vxlan隧道;任一双向vxlan隧道的两端,均使用所在结点的vpnrouterid作为该vxlan隧道的源ip,并且,在同一双向vxlan隧道的两端,一端的隧道源ip正好是另一端的隧道目的ip,一端的隧道目的ip正好是另一端的隧道源ip。同理,通过调整bgp配置,也可以使得rt-3路由能够将所有vxlan隧道与evpn实例的绑定关系全部生成;这些均属于现有技术,本领域的技术人员应能明白其中涉及的具体方法。

第四步,按图1所示建立一条vxlanevpn业务,并在每个pe结点上为该vxlanevpn业务指定相同的vni。其中,ac1、ac2、ac3、ac4、ac5、ac6等6个接口均作为接入电路绑定所述vxlanevpn业务。完成以上配置以后,所述mp-bgp会话开始按[evpnoverlay]定义的信令流程交流rt-3路由,导致各节点之间的vxlan隧道得以建立并且与所述vxlanevpn业务相绑定。

第五步,消除接入侧环路。给ce1接入到pe1和pe2的物理接口映射到同一个esi(记为esi1)以及esi1相关配置,从而触发所述mp-bgp会话按[evpnoverlay]中所述的rt-4路由进行df协商和rt-1路由发布。同理,给ce2接入到pe1和pe2的物理接口也映射到同一个esi(记为esi2),以及esi2相关的配置。不失一般性,本优选实施例假定df协商的结果是ac1和ac5分别是esi1和esi2在所述业务中的non-df角色的接口。由于本优选实施例的pe结点实现了[evpnoverlay]协议,在配置esi相关配置并完成相关信令流程以后,两个esi相关的环路也均会解除。

第六步,经过以上步骤,所述vxlanevpn业务就建立起来了,可以使用数据报文来验证本优选实施例中定义的pe结点和非业务感知结点上的转发行为和效果了。

以图2所示的evpn拓扑为例,端到端报文转发流程包括:

第一步,与优选实施例1相同,除了转发面流程按[evpnoverlay]执行以外。

第二步,与优选实施例1相同,除了转发面流程按[evpnoverlay]执行以外。

第三步,与优选实施例1相同,除了转发面流程按[evpnoverlay]执行以外。

显然,在端到端报文转发流程的第三步中已经可以证明,本发明没有对p1结点做任何改动,就提高了p1结点上的负荷分担效果。并且,本发明没有使用任何mpls技术。

优选实施例8

结合图12对所述在外层ip头中传输和使用内层报文的熵值的方法和装置(系统)的技术方案的pe结点的实施作进一步的详细描述:

1:实现所述vpn基础设施模块:

除特殊说明之处以外,本模块与优选实施例7相同;

与优选实施例7不同,本模块设定underlay网络为ipv6网络;

值得一提的是,这意味着本模块所动态生成的vxlan隧道的源ip和目的ip均为ipv6地址。

2:实现所述熵ip第一插件模块的具体方法如下:

除特殊说明之处以外,本模块与优选实施例4相同;

与优选实施例4不同,本模块基于所述第一报文的入口ac所属的主接口对应的esi(10字节)进行哈希计算的结果作为所述第一报文的熵值。本模块使用第二报文的源ip字段作为熵ip,所述源ip的低32位与所述熵值进行按位逻辑异或运算,所得结果存储在前者中。

3:实现所述熵ip第二插件模块的具体方法如下:

除特殊说明之处以外,本模块与优选实施例4相同;

与优选实施例4不同,本模块确定的所述第三报文中在进行与ip地址相关的处理之前需要清零的二进制位的位置为源ip的低32位。

结合图13对所述在外层ip头中传输和使用内层报文的熵值的方法和装置(系统)的技术方案的非业务感知p结点的实施作进一步的详细描述:

1:实现所述ip基础设施模块:

本模块与优选实施例5中的同名模块相同。

2:实现所述熵ip第三插件模块的具体方法如下:

本模块与优选实施例5中的同名模块相同。

值得注意的是,虽然所述第三报文的源ip的低32位为被熵值加密后的密文且本结点无法对其解密,但是,由于所述源ip是所述第一pe上的一个loopback接口的ip地址,且所述loopback接口配置了96位掩码,因此,无论所述源ip中的密文部分是什么值,它都是路由可达的ip地址,因此,既使不能对其进行除熵处理,也是不影响转发的。

以图2所示的vpn业务为例,网络及业务部署流程部分的处理步骤如下:

除特殊说明之处以外,本步骤与优选实施例7中的对应步骤相同;

与优选实施例7不同,本优选实施例的underlay网络为ipv6网络,且各vpnrouterid所在的loopback接口均配置了96位子网掩码,且vxlan隧道的源ip和目的ip均为ipv6地址。

以图2所示的vpn拓扑为例,端到端报文转发流程部分的处理步骤如下:

本步骤与优选实施例7中的对应步骤相同。

优选实施例9

结合图12对所述在外层ip头中传输和使用内层报文的熵值的方法和装置(系统)的技术方案的pe结点的实施作进一步的详细描述:

1:实现所述vpn基础设施模块:

按[evpnoverlay]和draft-ietf-bess-evpn-prefix-advertisement(以下简称“[evpnprefix]”)实现vxlanevpn业务,则所得vxlanevpn业务的控制面模块即所述vpn基础设施模块的控制面部分。

同理,按[evpnoverlay]和[evpnprefix]实现vxlanevpn业务,则所得vxlanevpn业务的转发面模块即所述vpn基础设施模块的转发面部分。

值得一提的是,按以上方法所得的evpn控制面模块,其中包括bgp协议l2vpnevpn地址族相关配置、ip-vrf实例的配置、ac与ip-vrf实例的绑定配置等内容,其中,ip-vrf实例以vni为标识,vni来自用户配置。其中,所述vxlan隧道在其源结点上以该结点的vpnrouterid作为源ip,以目的结点的vpnrouterid作为目的ip。其中,所述vpnrouterid是一个loopback接口的ip地址。为描述简便起见,不失一般性,本模块设定一个节点只有一个vpnrouterid。

值得一提的是,为简单起见,在对本专利来说不失一般性的情况下,本模块只需要实现其中ip-vrf到ip-vrf的interface-less模型对应的功能,因此,本模块中ip-vrf的ac接口仍然是普通子接口,而不包括[evpnprefix]中所述的irb接口;

值得一提的是,按以上方法所得的本模块的控制面部分,不需要静态配置vxlan隧道,rt-5路由可以将所需全部vxlan隧道动态生成。不失一般性,为简单起见,可以通过调整bgp配置使得通过rt-5路由生成的vxlan隧道符合如下规则:在任意两个pe结点之间,只生成一条双向vxlan隧道;任一双向vxlan隧道的两端,均使用所在结点的vpnrouterid作为该vxlan隧道的源ip,并且,在同一双向vxlan隧道的两端,一端的隧道源ip正好是另一端的隧道目的ip,一端的隧道目的ip正好是另一端的隧道源ip。同理,通过调整bgp配置,也可以使得rt-5路由能够将所有vxlan隧道与evpn实例的绑定关系全部生成;这些均属于现有技术,本领域的技术人员应能明白其中涉及的具体方法。

本模块作为软件实现,需要实现一种插件机制,用于在本模块按[evpnprefix]流程转发时,完成从第一报文到第二报文的ip封装后,调用该插件对ip封装中的源ip和目的ip进行修改。所述插件可以是函数调用、回调函数、多态函数也可以是独立插件。

除插件机制以外,本模块与[evpnprefix]对应转发模块的转发流程相同。

此外,作为vpnrouterid的ip地址必须是一个loopback接口地址,该loopback接口地址配置了96位掩码,因此,会形成一个96位路由,并且有一个96位路由前缀在underlay网络中发布;并且,本结点在接收到一个目的ip匹配该96位路由的报文时,都认为是该loopback接口的报文,与目的ip为该loopback接口的报文同样处理。

此外,不失一般性,在本优选实施例中,设定underlay网络为ipv6网络,因此,vxlan隧道的源ip和目的ip均为ipv6地址。

2:实现所述熵ip第一插件模块的具体方法如下:

除特殊说明之处以外,本模块与优选实施例8相同;

与优选实施例8不同,本模块以基于所述第一报文的ip五元组字段和ipv4头中的tos字段进行哈希运算得到的哈希值作为最终的32位熵值。

3:实现所述熵ip第二插件模块的具体方法如下:

本模块将所述vpn基础设施模块输入的报文原封不动地返回给所述vpn基础设施模块;

结合图13对所述在外层ip头中传输和使用内层报文的熵值的方法和装置(系统)的技术方案的非业务感知p结点的实施作进一步的详细描述:

1:实现所述ip基础设施模块:

本模块与优选实施例5中的同名模块相同。

2:实现所述熵ip第三插件模块的具体方法如下:

本模块与优选实施例5中的同名模块相同。

以图3所示的evpn拓扑为例,网络及业务部署流程包括:

第一步,与优选实施例7相同,除了本优选实施例选定的underlay网络类型为ipv6网络。

第二步,与优选实施例7相同,除了vpnrouterid所在的loopback接口的子网掩码为96位子网掩码。

第三步,与优选实施例7相同,除了生成vxlan隧道并将所生成的vxlan隧道绑定到evpn实例的路由为rt-5路由而不是rt-3路由。

第四步,按图1所示建立一条vxlanl3evpn业务,并在每个pe结点上为该vxlanl3evpn业务指定相同的vni。其中,ac1、ac2、ac3、等3个接口均作为接入电路绑定所述vxlanl3evpn业务。完成以上配置以后,所述mp-bgp会话开始按[evpnprefix]定义的信令流程交流rt-5路由,导致各节点之间的vxlan隧道得以建立并且与所述vxlanl3evpn业务相绑定。

第五步,配置ac接口的ip地址。给每条ac配置一个ip地址,此ip地址与对应ce的ip地址在同一个子网内,并且与对应ce的ip地址不同。为简单起见,本优选实施例设定各ce为ipv4主机,因此,mp-bgp会话所发布的rt-5路由中的evpnprefix为ipv4前缀,但是,rt-5路由所生成的vxlan隧道的源ip和目的ip均为ipv6地址。

第六步,经过以上步骤,所述vxlanl3evpn业务就建立起来了,可以使用数据报文来验证本优选实施例中定义的pe结点和非业务感知结点上的转发行为和效果了。

以图3所示的evpn拓扑为例,端到端报文转发流程包括:

第一步,当pe1结点从本地ac1收到一个ipv4报文b1时,所述pe结点按[evpnprefix]定义的转发流程转发b1报文,不失一般性,假定根据b1报文的目的ip地址应该将其转发给pe3。将b1封装为b1c并转发给pe3。

第二步,与优选实施例1中的对应步骤相同,除了b1是一个ipv4报文以及所述特征字段为所述b1报文的ipv4五元组之外。

第三步,与优选实施例1相同,除了转发面流程按[evpnprefix]执行以外。

显然,在端到端报文转发流程的第三步中已经可以证明,本发明没有对p1结点做任何改动,就提高了p1结点上的负荷分担效果。并且,本发明没有使用任何mpls技术。

优选实施例10

结合图12对所述在外层ip头中传输和使用内层报文的熵值的方法和装置(系统)的技术方案的pe结点的实施作进一步的详细描述:

1:实现所述vpn基础设施模块:

除特殊说明之处以外,本模块与优选实施例6相同;

与优选实施例6不同,本模块使用的封装格式与其所用封装格式相比,添加了srh头,srh头的位置如图17中格式c所示,该图中格式b即为优选实施例6所用格式。所述srh头为ietf在draft-ietf-6man-segment-routing-header(以下简称“[srh]”)中定义的分段路由头,在[srh]中定义了所述srh头的格式,包括flags字段和segmentlist字段。

2:实现所述熵ip第一插件模块的具体方法如下:

除特殊说明之处以外,本模块与优选实施例6相同;

与优选实施例6不同,本模块直接将所述第一报文的入口ac所属的主接口对应的esi(10字节)作为16字节熵值的低10字节,将所述第一报文的源mac、目的mac、ehertype、vlanid生成的6字节哈希值作为16字节熵值的高6字节。

与优选实施例6不同,本模块使用的封装格式与其所用封装格式相比,添加了srh头,srh头的位置如图17中格式c所示,该图中格式b即为优选实施例6所用格式。所述srh头为ietf在draft-ietf-6man-segment-routing-header(以下简称“[srh]”)中定义的分段路由头,在[srh]中定义了所述srh头的格式,包括flags字段和segmentlist字段。本模块所添加的srh中所述flags字段取值满足如下处件:其与预定常数tbd1进行按位逻辑与运算的结果不为0,其中,tbd1待ietf定义,tbd1的可能取值有1、2、4和128等几种可能。其中,segmentlist字段是一个ipv6地址数组,本模块所添加的srh头中该数组只有一个元素,即segmentlist[0],本模块所添加的srh头中所述segmentlist[0]取值为所述熵值。

3:实现所述熵ip第二插件模块的具体方法如下:

本模块从所述第三报文的srh头的segmentlist[0]字段中读出所述熵值,并将所述srh头剥掉,并将srh头中的下一报头字段的值拷贝到ipv6头中,得到又一报文并将其返回给所述vpn基础设施模块进行处理,所述熵值的低10字节为所述第三报文承载的所述第四报文的入口ac对应的esi,可以用于报文统计,将从远端不同esi过来的报文的统计数据记录到不同的计数器中,从而提高报文统计的精确性;

若所述srh头的所述flags字段与所述预定常数tbd1进行接位逻辑与运算的结果为0,则不对报文进行任何处理,直接交给所述vpn基础设施模块处理。

值得一提的是,所述第三报文的目的ip实际上是配置所述目的ip的pe节点上的一个本地sid,所述本地sid概念即draft-filsfils-spring-srv6-network-programming-01(以下简称[srv6-program])的section4中所述本地sid概念。本模块实际上是定义了对应于该本地sid的一种新型的srv6function,所述srv6function概念即[srv6-program]section4中所述srv6fucntion概念。此新型srv6function表示srh头中的segmentlist[0]字段如果与所述目的ip不同,则segmentlist[0]字段是一个在underlay网络中不可路由的ip地址,并且,不能像其它srv6function那样用segmentlist[0]字段覆盖所述第三报文的目的ip字段。本优选实施例可以与srv6的sr-policy功能结合使用,此时,按照所述sr-policy的报文封装规范,所述第三报文的目的ip起初并不是目的pe结点(即本模块的执行主体)上的所述本地sid,但是,所述第三报文的目的ip在经过各个非业务感知结点或目的pe结点的srv6转发流程的修改,最终会在所述目的pe结点上变为所述本地sid,并按所述新型srv6fuction的规则对所述第三报文进行处理。

结合图13对所述在外层ip头中传输和使用内层报文的熵值的方法和装置(系统)的技术方案的非业务感知p结点的实施作进一步的详细描述:

1:实现所述ip基础设施模块:

除特殊说明之处以外,本模块与优选实施例2中的同名模块相同。

与优选实施例2不同,本模块在对目的ip不是本地接口ip的ip报文进行转发的过程中,在进行负载均衡路径选择时,若ipv6报文头中含有所述srh头,则调用所述熵ip第三插件模块获取所述熵值,并且,以源ip、目的ip和所述熵值进行负载均衡。

与优选实施例2相同,本模块中在所述ip报文不含srh头时,仍然使用所述ip五元组进行负载均衡。

2:实现所述熵ip第三插件模块的具体方法如下:

若所述srh头中的flags字段与所述待定常数tbd1进行按位逻辑与运算的结果不为0,则认为所述srh头中含有熵值,并从所述srh头中将所述熵值读出,否置认为熵值为0。其中,与本优选实施例中所述vpn基础设施模块对应的将所述熵值读出的方法为:读取所述srh头中的segmentlist[0]的值作为所述熵值。

以图1所示的vpn业务为例,网络及业务部署流程部分的处理步骤如下:

除特殊说明之处以外,本步骤与优选实施例6中的对应步骤相同;

与优选实施例6不同,第个evpn实例接口配置的子网掩码为128位。

以图1所示的vpn拓扑为例,端到端报文转发流程部分的处理步骤如下:

本步骤与优选实施例6中的对应步骤相同。

优选实施例11

结合图12对所述在外层ip头中传输和使用内层报文的熵值的方法和装置(系统)的技术方案的pe结点的实施作进一步的详细描述:

1:实现所述vpn基础设施模块:

按rfc8214和[evpnoverlay]实现vxlan封装的evpnvpws业务,则所得evpnvpws业务的控制面模块即所述vpn基础设施模块的控制面部分。其中,[evpnoverlay]主要是对报文的格式提供指导,业务处理流程遵照rfc8214。

同理,按rfc8214和[evpnoverlay]实现vxlan封装的evpnvpws业务,则所得evpnvpws业务的转发面模块即所述vpn基础设施模块的转发面部分。

值得一提的是,按以上方法所得的evpnvpws控制面模块,其中包括bgp协议l2vpnevpn地址族相关配置、evpnvpws对应的evi实例的配置、所述evi实例内的各vpws业务实例的配置,ac与所述vpws业务实例的绑定配置、esi相关配置、vpnrouterid配置等内容。其中,所述vpnrouterid是一个loopback接口的ip地址。为描述简便起见,不失一般性,本模块设定一个节点只有一个vpnrouterid。按以上方法所得的本模块的控制面部分,还会在bgp路由的参与下在每个所述evi实例中建立每个vpws业务实例的转发表项。

尤其值得一提的是,按以上方法所得的本模块的控制面部分,不需要静态配置vxlan隧道,通过调整bgp的配置,rt-1路由可以将所需全部vxlan隧道动态生成。不失一般性,为简单起见,可以通过调整bgp配置使得通过rt-1路由生成的vxlan隧道符合如下规则:在任意两个pe结点之间,只生成一条双向vxlan隧道;任一双向vxlan隧道的两端,均使用所在结点的vpnrouterid作为该vxlan隧道的源ip,并且,在同一双向vxlan隧道的两端,一端的隧道源ip正好是另一端的隧道目的ip,一端的隧道目的ip正好是另一端的隧道源ip。同理,通过调整bgp配置,也可以使得rt-1路由能够将所有vxlan隧道与所述evi实例的绑定关系全部生成;这些均属于现有技术,本领域的技术人员应能明白其中涉及的具体方法。

尤其值得一提的是,按以上方法所得的本模块的转发面部分,所述第一报文只用于确定接收该报文的本地ac,在确定所述本地ac以后,所述第一报文中的字段不再应用于报文转发信息的选择。

本模块作为软件实现,需要实现一种插件机制,用于在本模块按所述evpnvpws业务转发流程转发时,完成从第一报文到第二报文的ip封装后,调用熵ip第一插件对ip封装中的源ip和目的ip进行修改,以及,在接收到所述第三报文并且处理所述第三报文时,调用熵ip第二插件对ip封装中的源ip和目的ip进行修改。所述插件可以是函数调用、回调函数、多态函数也可以是独立插件。

除插件机制以外,本模块与rfc8214和[evpnoverlay]中对应转发模块的转发流程相同。

此外,作为vpnrouterid的ip地址必须是一个loopback接口地址,该loopback接口地址配置了96位掩码,因此,会形成一个96位路由,并且有一个96位路由前缀在underlay网络中发布;并且,本结点在接收到一个目的ip匹配该96位路由的报文时,都认为是该loopback接口的报文,与目的ip为该loopback接口的报文同样处理。

此外,不失一般性,在本优选实施例中,设定underlay网络为ipv6网络,因此,vxlan隧道的源ip和目的ip均为ipv6地址。

2:实现所述熵ip第一插件模块的具体方法如下:

除特殊说明之处以外,本模块与优选实施例10相同;

与优选实施例10不同,本模块基于所述第一报文的入口ac所属的主接口对应的第4类或第5类esi中的localdiscriminatorvalue字段的低16位作为熵值的低16位,采用所述第一报文的源mac的低16位作为熵值的高16位。

与优选实施例10不同,本模块不是在其往所述第三报文插入srh头的位置插入srh头,而是插入一种新的ipv6路由选项头,权且称为erh(entropyrouteheader,熵路由报头)头,并且,为了快速排除ipv6选项头中不带熵值的情况,减少非业务感知结点的对ipv6选项报头的处理负担,定义一个预定常数tbd2,当ipv6头中的下一报头字段的值为所述预定常述tbd2时,表示下一报头是一种路由报头,且该路由报头中可能含有熵值。所述tbd2的值由ietf决定。所述erh报头的一种可能格式如图16所示;其中,entropyvalue字段即用于承载所述熵值。其中,所述erh报头的route-type字段取值为预定常数tbd3,所述tbd3的值由ietf决定,所述erh头中的reserved2字段取值为0xff,reserved3、reserved4和reserved5字段的取值为0,nextheader和hdrextlen字段取值按照rfc2460对路由报头的字段定义填写。

值得注意的是,evpnvpws业务的接入电路ac并不局限于以太类型的接口,当接入电路ac是由帧中继fr数据链路连接标识符dlci标识的接入电路时,或者接入电路ac是由异步传输模式atm虚路径标识符vpi或虚通道标识符vci所标识的接入电路时,所述dlci或vpi或vci也可以用于计算所述第一报文的本征熵值。如何配置这种evpnvpws业务并不是本发明的创新点,因此,本说明书中就不一一举例了,本领域的技术人员应当清楚如何根据本优选实施例将熵值的使用扩充到非以太类型的evpnvpws业务。

3:实现所述熵ip第二插件模块的具体方法如下:

直接剥除所述第三报文的erh报头,并将erh报头中的下一报头字段的值拷贝到ipv6头中,得到又一报文;将得到的该报文返回给所述vpn基础设施模块。

结合图13对所述在外层ip头中传输和使用内层报文的熵值的方法和装置(系统)的技术方案的非业务感知p结点的实施作进一步的详细描述:

1:实现所述ip基础设施模块:

除特殊说明之处以外,本模块与优选实施例2中的同名模块相同。

与优选实施例2不同,本模块在对目的ip不是本地接口ip的ip报文进行转发的过程中,在进行负载均衡路径选择时,若ipv6报文头中的下一个报头字段的值为所述tbd2,则认为第一个ipv6选项报头为路由报头,且其中可能包括熵值,于是调用熵ip第三插件获取所述内层熵值,否则不用调用熵ip第三插件模块获取熵值。

与优选实施例2不同,在成功按上述方法获得熵值的情况下,本模块中以源ip、目的ip和所述熵值进行负载均衡,否则仍以ip五元组进行负载均衡。

2:实现所述熵ip第三插件模块的具体方法如下:

若所述第三报文的第一个路由报头中的route-type字段值与预定常数tbd3相等,表示它是一个erh头,其中,entropyvalue字段之值即为所述熵值。否则,认为所述第三报文的内层熵值为0。

以图4所示的evpnvpws拓扑为例,网络及业务部署流程包括:

第一步,与优选实施例7相同,除了本优选实施例选定的underlay网络类型为ipv6网络。

第二步,与优选实施例7相同,除了vpnrouterid所在的loopback接口的子网掩码为128位子网掩码。

第三步,与优选实施例7相同,除了生成vxlan隧道并将所生成的vxlan隧道绑定到evpn实例的路由为rt-1路由而不是rt-3路由。

第四步,按图4所示建立一条evpnvpws业务,并在每个pe结点上为该evpnvpws业务指定相同的vni。其中,ac1、ac2、ac3、等3个接口均作为接入电路绑定所述evpnvpws业务。完成以上配置以后,所述mp-bgp会话开始按rfc8214定义的信令流程交互rt-1路由,导致各节点之间的vxlan隧道得以建立并且与所述evpnvpws业务相绑定。

第五步,配置esi。与优选实施例7相同,除了信令流程为rfc8214中的流程。

第六步,经过以上步骤,所述evpnvpws业务就建立起来了,可以使用数据报文来验证本优选实施例中定义的pe结点和非业务感知结点上的转发行为和效果了。

以图4所示的evpnvpws拓扑为例,端到端报文转发流程包括:

第一步,当pe1结点从本地ac1收到一个ipv4报文b1时,所述pe结点按rfc8214定义的转发流程转发b1报文,不失一般性,假定根据b1报文的所述的evpn实例应该将其转发给pe3。于是pe1将b1封装为b1c并转发给pe3。

第二步,与优选实施例1中的对应步骤相同,除了b1是一个以太报文以及所述特征字段为所述b1报文的源mac之外。

第三步,与优选实施例1相同,除了转发面流程按rfc8124执行以外。

显然,在端到端报文转发流程的第三步中已经可以证明,本发明没有对p1结点做任何改动,就提高了p1结点上的负荷分担效果。并且,本发明没有使用任何mpls技术。

优选实施例12

结合图12对所述在外层ip头中传输和使用内层报文的熵值的方法和装置(系统)的技术方案的pe结点的实施作进一步的详细描述:

1:实现所述vpn基础设施模块:

除特殊说明之处以外,本模块与优选实施例8相同;

与优选实施例8不同,本模块中每个esi有一个对应的同名接口,称为esi接口,该接口上配置ip地址具有loopback接口地址的全部作用。

2:实现所述熵ip第一插件模块的具体方法如下:

除特殊说明之处以外,本模块与优选实施例8相同;

与优选实施例8不同,本模块直接采用所述第一报文的入口ac所属的主接口对应的esiip的整体作为128位熵值。所述esiip为所述入口ac所属的主接口对应的esi对应的esi接口上配置的ip地址;

与优选实施例8不同,本模块采用源ip的全部128位填写所述esiip作为熵值。

3:实现所述熵ip第二插件模块的具体方法如下:

本模块直接将所述第三报文原封不动返回给所述vpn基础设施模块进行继续处理;

值得注意的是,因为所述第三报文的源ip承载的熵值是所述第四报文的本地ac所属的主接口对应的所述esiip的完整体,且所述esiip在underlay网络中是路由可达的,因此,它虽然具有熵值的全部作用,但同时也具有一个ip地址的完整作用,因此,此处无需将esiip视为零。但是,一般的熵值常常具有伪随机性,不具有一个完整的ip地址的作用,因而非业务感知节点上最好将这类具有伪随机性的熵值视为零。

结合图6对所述在外层ip头中传输和使用内层报文的熵值的方法和装置(系统)的技术方案的非业务感知p结点的实施作进一步的详细描述:

1:实现所述ip基础设施模块:

本模块与优选实施例5中的同名模块相同。

2:实现所述熵ip第三插件模块的具体方法如下:

本模块与优选实施例5中的同名模块相同。

以图2所示的vpn业务为例,网络及业务部署流程部分的处理步骤如下:

除特殊说明之处以外,本步骤与优选实施例8中的对应步骤相同;

与优选实施例8不同,本优选实施例的各vpnrouterid所在的loopback接口均配置了128位子网掩码。

以图2所示的vpn拓扑为例,端到端报文转发流程部分的处理步骤如下:

本步骤与优选实施例8中的对应步骤相同。

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

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

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