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

文档序号:17861568发布日期:2019-06-11 22:54阅读:584来源:国知局
报文的发送、处理方法及装置、PE节点、节点与流程

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



背景技术:

可扩展虚拟局域网(virtualextensiblelan,简称vxlan)封装作为用于数据中心大二层互联的主要技术,国际互联网工程任务组(theinternetengineeringtaskforce,简称ietf)在rfc7348中定义了vxlan封装格式,以及普通vxlan业务的转发流程和控制流程,这种普通vxlan业务基于数据面的媒体访问控制(mediaaccesscontrol,简称mac)学习建立mac表项,但它不能支持以太网分段标识符(ethernetsegmentidentifier,简称esi)功能。

ietf在dratf-ietf-bess-evpn-overlay-08(以下简称[evpnoverlay])中将rfc7432扩展到了vxlan封装,成为vxlanevpn业务,同时,ietf在draft-ietf-bess-evpn-etree中将rfc7432中定义的mplsevpn业务从e-lan扩展到了e-tree形态,但是vxlanevpn由于报文中缺少vni标签栈结构,无法进行同样的扩展。

此外,基于[evpnoverlay]的vxlanevpn业务,从同一pe节点的不同esi收上来的报文在转发给远端节点时,所用vxlan封装是相同的,这样,远端节点在收到这些报文后,就无法将两者区分开来,进一地,如果想统计同一esi经过不同邻接pe节点到达同一远端pe节点时的流量总和,也是不可能的。

此外,rfc7623将rfc7432定义的mplsevpn业务扩展为pbbevpn业务,但是,所述pbbevpn业务仍然离不开mpls封装,而很多场景mpls技术是难以部署的,比如虚拟运营商穿越传统运营商网络建立vpn业务的情况,但pbbevpn确实有一些具有自身特色的技术效果,现有技术中也并没有规定如何在没有pbb和mpls封装条件的环境下继承这些技术效果。

另外,虽然源ip在ip报文转发中不具有必需的作用,ip报文的转发是依据目的ip进行的,但是,在一些场景中,会使用urpf和rpf等技术对源ip的合法性进行检查,这实际上是要求源ip必须能作为目的ip在underlay网络中是可路由的,因而在某些场景下,这将导致underlay网络的ip地址资源比较浪费。针对相关技术中的上述技术问题,目前尚未提出有效的解决方案。



技术实现要素:

本发明实施例提供了一种报文的发送、处理方法及装置、pe节点、节点,以至少解决相关技术中vxlan业务不支持esi的问题。

根据本发明的一个实施例,提供了一种报文的发送方法,包括:从第一接入电路ac接收第一报文;对第一报文进行处理,得到一个或多个第二报文;其中,第二报文中包括第一互联网协议ip,其中,第一ip包括:第二ip或将第二ip的部分位用第一报文的本征熵值加密后得到的ip;第二ip为以下之一:与第一ac对应的以太网分段标识符esi的esiip,将与第一ac对应的esi的esiip的指定位根据第一ac的根叶根叶属性修改后得到的ip,将与第一ac对应的esi的esiip的部分位用与第一ac对应的虚拟局域网标识vlanid值替换后所得的ip,第三ip,将第三ip的指定位根据第一ac的根叶属性修改后得到的ip;其中,与第一ac对应的esi为第一ac所属主接口绑定的esi,esi的esiip为与esi对应的ip地址,与第一ac对应的vlanid值为第一ac上配置的用于匹配第一报文的vlanid值,第三ip为由第一ac所在的pe节点和第一ac对应的esi在pe节点上的本地索引确定的ip或由第一ac所在的边缘节点pe节点所属的虚拟专用网络vpn域和第一ac对应的esi在pe节点上的本地索引确定的ip;发送第二报文。

根据本发明的一个实施例,提供了一种报文的处理方法,包括:接收第一服务提供商边缘设备pe发送的第三报文,其中,第三报文为第一pe对从第一ac接收的第四报文进行处理得到的报文,第三报文中包括第一ip,其中,第一ip包括:第二ip或将第二ip的部分位用第四报文的本征熵值加密后得到的ip;第二ip为以下之一:与第一ac对应的esi的esiip,将与第一ac对应的esi的esiip的指定位根据第一ac的根叶属性修改后得到的ip,将与第一ac对应的esi的esiip的部分位用与第一ac对应的vlanid值替换后所得的ip,第三ip,将第三ip的指定位根据第一ac的根叶属性修改后得到的ip;其中,与第一ac对应的esi为第一ac所属主接口绑定的esi,esi的esiip为与esi对应的ip地址,与第一ac对应的vlanid值为第一ac上配置的用于匹配第四报文的vlanid值,第三ip为由第一ac所在的pe节点和第一ac对应的esi在pe节点上的本地索引确定的ip或由第一ac所在的pe节点所属的vpn域和第一ac对应的esi在pe节点上的本地索引确定的ip;根据与所述第三报文中包含的第一ip对应的esi值对所述第三报文进行处理,或者,根据所述第二ip和接收所述第三报文的接收方上的配置信息对所述第三报文进行esi过滤。

根据本发明的一个实施例,提供了一种报文的发送装置,包括:接收模块,用于从第一接入电路ac接收第一报文;处理模块,用于对第一报文进行处理,得到一个或多个第二报文;其中,第二报文中包括第一ip,其中,第一ip包括:第二ip或将第二ip的部分位用第一报文的本征熵值加密后得到的ip;第二ip为以下之一:与第一ac对应的esi的esiip,将与第一ac对应的esi的esiip的指定位根据第一ac的根叶属性修改后得到的ip,将与第一ac对应的esi的esiip的部分位用与第一ac对应的vlanid值替换后所得的ip,第三ip,将第三ip的指定位根据第一ac的根叶属性修改后得到的ip;其中,与第一ac对应的esi为第一ac所属主接口绑定的esi,esi的esiip为与esi对应的ip地址,与第一ac对应的vlanid值为第一ac上配置的用于匹配第一报文的vlanid值,第三ip为由第一ac所在的pe节点和第一ac对应的esi在pe节点上的本地索引确定的ip或由第一ac所在的pe节点所属的vpn域和第一ac对应的esi在pe节点上的本地索引确定的ip;发送模块,用于发送第二报文。

根据本发明的一个实施例,提供了一种报文的处理装置,包括:接收模块,用于接收第一服务提供商边缘设备pe发送的第三报文,其中,第三报文为第一pe对从第一ac接收的第四报文进行处理得到的报文,第三报文中包括第一ip,其中,第一ip包括:第二ip或将第二ip的部分位用第四报文的本征熵值加密后得到的ip;第二ip为以下之一:与第一ac对应的esi的esiip,将与第一ac对应的esi的esiip的指定位根据第一ac的根叶属性修改后得到的ip,将与第一ac对应的esi的esiip的部分位用与第一ac对应的vlanid值替换后所得的ip,第三ip,将第三ip的指定位根据第一ac的根叶属性修改后得到的ip;其中,与第一ac对应的esi为第一ac所属主接口绑定的esi,esi的esiip为与esi对应的ip地址,与第一ac对应的vlanid值为第一ac上配置的用于匹配第四报文的vlanid值,第三ip为由第一ac所在的pe节点和第一ac对应的esi在pe节点上的本地索引确定的ip或由第一ac所在的pe节点所属的vpn域和第一ac对应的esi在pe节点上的本地索引确定的ip;处理模块,用于根据与所述第三报文中包含的第一ip对应的esi值对所述第三报文进行处理,或者,根据所述第二ip和接收所述第三报文的接收方上的配置信息对所述第三报文进行esi过滤。

根据本发明的一个实施例,提供了一种pe节点,包括:通信接口,用于从第一接入电路ac接收第一报文;处理器,用于对第一报文进行处理,得到一个或多个第二报文;其中,第二报文中包括第一ip,其中,第一ip包括:第二ip或将第二ip的部分位用第一报文的本征熵值加密后得到的ip;第二ip为以下之一:与第一ac对应的esi的esiip,将与第一ac对应的esi的esiip的指定位根据第一ac的根叶属性修改后得到的ip,将与第一ac对应的esi的esiip的部分位用与第一ac对应的vlanid值替换后所得的ip,第三ip,将第三ip的指定位根据第一ac的根叶属性修改后得到的ip;其中,与第一ac对应的esi为第一ac所属主接口绑定的esi,esi的esiip为与esi对应的ip地址,与第一ac对应的vlanid值为第一ac上配置的用于匹配第一报文的vlanid值,第三ip为由第一ac所在的pe节点和第一ac对应的esi在pe节点上的本地索引确定的ip或由第一ac所在的pe节点所属的vpn域和第一ac对应的esi在pe节点上的本地索引确定的ip;通信接口,还用于发送第二报文。

根据本发明的一个实施例,提供了一种节点,包括:通信接口,用于接收第一服务提供商边缘设备pe发送的第三报文,其中,第三报文为第一pe对从第一ac接收的第四报文进行处理得到的报文,第三报文中包括第一ip,其中,第一ip包括:第二ip或将第二ip的部分位用第四报文的本征熵值加密后得到的ip;第二ip为以下之一:与第一ac对应的esi的esiip,将与第一ac对应的esi的esiip的指定位根据第一ac的根叶属性修改后得到的ip,将与第一ac对应的esi的esiip的部分位用与第一ac对应的vlanid值替换后所得的ip,第三ip,将第三ip的指定位根据第一ac的根叶属性修改后得到的ip;其中,与第一ac对应的esi为第一ac所属主接口绑定的esi,esi的esiip为与esi对应的ip地址,与第一ac对应的vlanid值为第一ac上配置的用于匹配第四报文的vlanid值,第三ip为由第一ac所在的pe节点和第一ac对应的esi在pe节点上的本地索引确定的ip或由第一ac所在的pe节点所属的vpn域和第一ac对应的esi在pe节点上的本地索引确定的ip;处理器,用于根据与所述第三报文中包含的第一ip对应的esi值对所述第三报文进行处理,或者,根据所述第二ip和接收所述第三报文的接收方上的配置信息对所述第三报文进行esi过滤。

根据本发明的一个实施例,提供了一种报文的处理系统,包括:第一节点,第二节点;其中,所述第一节点,用于从第一接入电路ac接收第一报文,对所述第一报文进行处理,得到一个或多个第二报文,以及将所述第二报文发送给所述第二节点;其中,所述第二报文中包括第一互联网协议ip,其中,所述第一ip包括:第二ip或将第二ip的部分位用所述第一报文的本征熵值加密后得到的ip;所述第二ip为以下之一:与所述第一ac对应的以太网分段标识符esi的esiip,将与所述第一ac对应的esi的esiip的指定位根据所述第一ac的根叶root/leaf属性修改后得到的ip,将与所述第一ac对应的esi的esiip的部分位用与所述第一ac对应的虚拟局域网标识vlanid值替换后所得的ip,第三ip,将第三ip的指定位根据所述第一ac的根叶属性修改后得到的ip;其中,与所述第一ac对应的esi为所述第一ac所属主接口绑定的esi,所述esi的esiip为与所述esi对应的ip地址,与所述第一ac对应的vlanid值为所述第一ac上配置的用于匹配所述第一报文的vlanid值,所述第三ip为由所述第一ac所在的pe节点和所述第一ac对应的esi在所述pe节点上的本地索引确定的ip或由所述第一ac所在的边缘节点pe节点所属的虚拟专用网络vpn域和所述第一ac对应的esi在所述pe节点上的本地索引确定的ip;所述第二节点,用于根据与所述第二报文中包含的第一ip对应的esi值对所述第二报文进行处理,或者,根据所述第二ip和接收所述第二报文的接收方上的配置信息对所述第二报文进行esi过滤。

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

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

通过本发明,通过第二报文中包括的第一ip中携带了与接收第一报文的第一ac对应的esi相关的信息,使得与该第二报文相关的业务比如vxlan业务等能够支持esi功能,解决了相关技术中vxlan业务不支持esi的问题。

附图说明

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

图1是相关技术中[evpnoverlay]定义的vxlanevpn业务的典型拓扑图;

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

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

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

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

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

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

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

图9是根据本发明优选实施例6提供的esi格式的示意图;

图10是根据本发明优选实施例4提供的srv6封装格式的示意图一;

图11是根据本发明优选实施例4提供的srv6封装格式的示意图二;

图12是根据本发明优选实施例11提供的shr头在srv6封装中的位置的示意图;

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

具体实施方式

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

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

实施例1

本发明提供了一种报文的发送方法,该方法可以适用于图1所示的拓扑,但并不限于此;其中,图1是是相关技术中[evpnoverlay]定义的vxlanevpn业务的拓扑图。该发送方法的执行主体可以是pe节点,以图1所示的拓扑为例,该发送方法的执行主体可以是图1所示的pe1节点、pe2节点或pe3节点,并不限于此。

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

步骤s202,pe1从第一接入电路ac接收第一报文;

步骤s204,pe1对第一报文进行处理和封装,得到一个或多个第二报文;其中,第二报文中包括第一互联网协议ip,其中,第一ip包括:第二ip或将第二ip的部分位用第一报文的本征熵值加密后得到的ip(具体解释参见优选实施例5);第二ip为以下之一:与第一ac对应的以太网分段标识符esi的esiip,将与第一ac对应的esi的esiip的指定位根据第一ac的根叶root/leaf属性修改后得到的ip(具体解释参见优选实施例12),将与第一ac对应的esi的esiip的部分位用与第一ac对应的虚拟局域网标识vlanid值替换后所得的ip(具体解释参见优选实施例4),第三ip,将第三ip的指定位根据第一ac的根叶属性修改后得到的ip;其中,与第一ac对应的esi为第一ac所属主接口绑定的esi,esi的esiip为与esi对应的ip地址,与第一ac对应的vlanid值为第一ac上配置的用于匹配第一报文的vlanid值,第三ip为由第一ac所在的pe节点和第一ac对应的esi在pe节点上的本地索引确定的ip或由第一ac所在的边缘节点pe节点所属的虚拟专用网络vpn域和第一ac对应的esi在pe节点上的本地索引确定的ip;

步骤s206,pe1发送第二报文。

通过上述步骤,通过第二报文中包括的第一ip中携带了与接收第一报文的第一ac对应的esi相关的信息,使得与该第二报文相关的业务比如vxlan业务等能够支持esi功能,解决了相关技术中vxlan业务不支持esi的问题。

需要说明的是,所述本征熵值为由所述第一报文中的一个或多个特征字段经过指定算法计算得到的值,比如优选实施例5中,所述特征字段就是源mac的低32位,所述指定算法就是函数f(x)=x,按位逻辑异或运算就是一种简单加密算法,因为,用数值a对字段b施加两次按位逻辑异或运算之后,所得结果仍为b被修改之前的值,其中,第一次运算相当于加密,第二次运算相当于解密。

需要说明的是,通过在第一ip中携带上述esi相关的信息,即从同一pe的不同esi处发送的报文中都包括各自的esi相关的信息,因而在远端接收到这些报文时可以通过各自的esi相关的信息实现对这些报文的区分,因此,可以解决相关技术中从同一pe的不同esi接收到的报文转发给远端时这些报文无法被区分的问题,同时也能够统计同一esi经过不同邻接pe节点到达同一远端pe节点时的流量总和。

需要说明的是,上述封装可以是ip封装,通过这种方式可以实现在不使用pbb和mpls封装的情况下,仍然能够实现pbbevpn具有的一些效果(具体解释参见优选实施例6,7,13-16,18)。

另外,通过上述方法的一种实施例,即在第一ip中携带第一ac的根叶属性,进而可以在报文中不需要vni标签栈结构也能够实现将vxlanevpn业务从e-lan扩展到了e-tree形态。需要说明的是,所述根叶属性本身是一个属性,其取值有根root和叶leaf两种情况。

需要说明的是,在所述第一ac的根叶属性的值为根root的情况下根据所述root对所述esiip的指定位修改得到的ip与在所述第一ac的根叶属性的值为叶leaf的情况下根据所述leaf对所述esiip的指定位修改得到的ip不同;在所述第一ac的根叶属性的值为根root的情况下根据所述root对所述第三ip的指定位修改得到的ip与在所述第一ac的根叶属性的值为leaf的情况下根据所述leaf对所述第三ip的指定位修改得到的ip不同。。

需要说明的是,上述第三ip可以包括:第一部分和第二部分,其中,所述第一部分包括所述本地索引,所述第二部分包括以下至少之一:在所述第一ac所在pe节点上配置的指定ip地址的指定部分(具体解释参见优选实施例1);其中,所述pe节点上的所有ac的第三ip中均包含所述指定部分;通过同一条配置命令在所述第一ac所在pe节点上逐个esi分别配置的指定属性值中共同的二进制位部分(具体解释参见优选实施例6);通过同一条配置命令在所述第二报文所属的vpn域的每个pe点上配置的指定ip地址的共同二进制位部分(具体解释参见优选实施例1),其中,所述vpn域为发送或接收所述第二报文的pe节点的集合。

需要说明的是,上述本地索引在esi所在的pe节点上针对esi是唯一的,即该本地索引在pe节点上唯一标识与该本地索引对应的esi,但并不限于此。

需要说明的是,上述本地索引可以包括以下至少之一:esi本身的值(具体解释参见优选实施例11);esi别名值(具体解释参见优选实施例2),其中,所述esi别名值为给所述第一ac对应的esi配置的用于在所述第一ac所在的节点上区别于所述节点上其它esi的属性的值;esi本地区分值(具体解释参见优选实施例5),其中,所述esi本地区分值为所述第一ac对应的esi中的第一指定字段的取值;在所述第一ac所在的pe节点中,不同esi对应的所述第一指定字段的值不同;esi域内区分值(具体解释参见优选实施例6),其中,所述esi域内区分值为所述第一ac对应的esi中的第二指定字段的取值,其中,在所述第一ac所在的pe节点所属的vpn域中,不同的esi对应的所述第二指定字段的值不同。

需要说明的是,在上述第三ip为ipv6的情况下,上述本地索引可以是esi本身的值,但并不限于此。

在本发明的一个实施例中,上述第一ip位于所述第二报文的以下之一位置:源ip中,互联网协议第6版ipv6选项头中(具体解释参见优选实施例11)。

在本发明的一个实施例中,上述步骤s204可以体现为:基于以下至少之一控制面对所述第一报文进行处理:第一以太网虚拟专用网络evpn控制面,其中,所述第一evpn控制面为既通过路由发布所述esiip与所述esi的对应关系或所述第三ip中的信息与所述esi的对应关系,又通过路由发布由与所述第一ac绑定的evpn实例所绑定的ac学习的媒体访问控制mac条目的控制面;第二evpn控制面(具体解释参见优选实施例2),其中,所述第二evpn控制面为不通过路由发布所述esiip与所述esi的对应关系或所述第三ip中的信息与所述esi的对应关系,但通过路由发布由与所述第一ac绑定的evpn实例所绑定的ac学习的mac条目的控制面;第三evpn控制面(具体解释参见优选实施例7),其中,所述第三evpn控制面为通过路由发布所述esiip与所述esi的对应关系或所述第三ip中的信息与所述esi的对应关系,但不通过路由发布由与所述第一ac绑定的evpn实例所绑定的ac学习的mac条目的控制面;第四evpn控制面(具体解释参见优选实施例6),其中,所述第四evpn控制面为不通过路由发布所述esiip与所述esi的对应关系或所述第三ip中的信息与所述esi的对应关系,并且不通过路由发布由与所述第一ac绑定的evpn实例所绑定的ac学习的mac条目的控制面;第五evpn控制面,其中,所述第五evpn控制面为在骨干ip虚拟路由和转发实例(ip-virtualroutingandforwarding,简称ip-vrf)中发布所述esiip与所述esi的对应关系或所述第三ip中的信息与所述esi的对应关系的控制面;所述骨干ip-vrf为所述第一ac所绑定的evpn实例绑定的ip-vrf;第六evpn控制面,其中,所述第六evpn控制面为在骨干mac虚拟路由和转发实例(mac-virtualroutingandforwarding,简称mac-vrf)中发布所述esiip与所述esi的对应关系或所述第三ip中的信息与所述esi的对应关系的控制面;所述骨干mac-vrf为所述第一ac所绑定的evpn实例绑定的二层虚拟专用网络l2vpn实例。

需要说明的是,在基于上述第二evpn控制面,第四evpn控制面对第一报文进行处理时,其可以不依赖于所述esiip与所述esi的对应关系或所述第三ip中的信息与所述esi的对应关系。

需要说明的是,在基于所述第五evpn控制面对所述第一报文进行处理,得到的所述第二报文中不包括所述骨干ip-vrf的私网标签(具体解释参见优选实施例14,16)或包括所述骨干ip-vrf的私网标签(具体解释参见优选实施例18);在基于所述第六evpn控制面对所述第一报文进行处理,得到的所述第二报文中不包括所述骨干mac-vrf的私网标签(具体解释参见优选实施例15)或包括所述骨干mac-vrf的私网标签。

在本发明的一个实施例中,所述第二报文的源ip在下层网络underlay网络中可路由或在underlay网络中不可路由(具体解释参见优选实施例1,2,7-18)。

需要说明的是,通过采用在underlay网络中不可路由的源ip能够节省underlay网络的ip地址资源。

需要说明的是,当所述第二报文的源ip在underlay网络中不可路由时,在上述步骤s206之前,上述方法还包括以下至少之一:在所述第二报文的所述源ip的外层添加与所述源ip在同一个ip头中的目的ip所对应的多协议标签交换mpls封装(具体解释参见优选实施例13);其中,所述源ip不在所述目的ip所在的路由表中;将所述第二报文的互联网协议第4版ipv4头中的协议类型字段的值设置为第一指定值(具体解释参见优选实施例8);将所述第二报文的ipv6头中的下一报头字段的值设置为第二指定值(具体解释参见优选实施例9);将所述第二报文的ip头对应的外层以太头中的以太网类型ethertype字段的值设置为第三指定值(具体解释参见优选实施例10)。

本发明实施例还提供了一种报文的处理方法,该方法可以应用于上述图1所示的拓扑中,上述报文的处理方法的执行主体可以是pe节点,以下以发送方法的执行主体为图1所示的pe2节点,并且报文的发送流程从ce1经由pe1节点向pe2发送为例进行说明。图3是根据本发明实施例提供的报文的处理方法的流程示意图,如图3所示,该方法包括:

s302,pe2节点接收第一服务提供商边缘设备pe发送的第三报文,其中,所述第三报文为所述第一pe对从第一ac接收的第四报文进行处理得到的报文,所述第三报文中包括第一ip,其中,所述第一ip包括:第二ip或将第二ip的部分位用所述第四报文的本征熵值加密后得到的ip;所述第二ip为以下之一:与所述第一ac对应的esi的esiip,将与所述第一ac对应的esi的esiip的指定位根据所述第一ac的根叶属性修改后得到的ip,将与所述第一ac对应的esi的esiip的部分位用与所述第一ac对应的vlanid值替换后所得的ip,第三ip,将第三ip的指定位根据所述第一ac的根叶属性修改后得到的ip;其中,与所述第一ac对应的esi为所述第一ac所属主接口绑定的esi,所述esi的esiip为与所述esi对应的ip地址,与所述第一ac对应的vlanid值为所述第一ac上配置的用于匹配所述第四报文的vlanid值,所述第三ip为由所述第一ac所在的pe节点和所述第一ac对应的esi在所述pe节点上的本地索引确定的ip或由所述第一ac所在的pe节点所属的vpn域和所述第一ac对应的esi在所述pe节点上的本地索引确定的ip;

步骤s304,根据与所述第三报文中包含的第一ip对应的esi值对所述第三报文进行处理,或者,根据所述第二ip和接收所述第三报文的接收方上的配置信息对所述第三报文进行esi过滤。

通过上述步骤,通过第二报文中包括的第一ip中携带了与接收第一报文的第一ac对应的esi相关的信息,使得与该第二报文相关的业务比如vxlan业务等能够支持esi功能,解决了相关技术中vxlan业务不支持esi的问题。

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

需要说明的是,上述步骤s304中的根据与所述第三报文中包含的第一ip对应的esi值对所述第三报文进行处理可以表现为:当与所述第三报文中包含的第一ip对应的esi为第一指定值时,将所述第三报文镜向到指定服务器;当与所述第三报文中包含的第一ip对应的esi为第二指定值时,对所述第三报文进行指定的服务质量qos处理;当与所述第三报文中包含的第一ip对应的esi为指定值时,采用与所述指定值绑定的性能统计计数器对所述第三报文进行性能统计。

需要说明的是,上述步骤s304中的根据所述第二ip和接收所述第三报文的接收方上的配置信息对所述第三报文进行esi过滤可以表现为:根据所述第三报文确定一个或多个指定报文;分别确定用于发送一个或多个所述指定报文的第二ac;根据所述第二ip和所述配置信息过滤所述指定报文;其中,所述配置信息包括以下至少之一:所述第二ac的根叶属性,所述第二ac对应的ip。

需要说明的是,第二ac对应的第二ip可以包括以下至少之一:与所述第二ac对应的esi的esiip,将与所述第二ac对应的esi的esiip的指定位根据所述第二ac的根叶属性修改后得到的ip,将与所述第二ac对应的esi的esiip的部分位用与所述第二ac对应的vlanid值替换后所得的ip,第三ip,将第三ip的指定位根据所述第二ac的根叶属性修改后得到的ip;其中,与所述第二ac对应的esi为所述第二ac所属主接口绑定的esi,所述esi的esiip为与所述esi对应的ip地址,与所述第二ac对应的vlanid值为所述第二ac上配置的用于匹配所述第一报文的vlanid值,所述第三ip为由所述第二ac所在的pe节点和所述第二ac对应的esi在所述pe节点上的本地索引确定的ip或由所述第二ac所在的pe节点所属的vpn域和所述第二ac对应的esi在所述pe节点上的本地索引确定的ip。

需要说明的是,上述根据所述第二ip和所述配置信息过滤所述指定报文可以包括:在所述第二ac所属主接口绑定的esi为非零或所述第二ac的根叶属性的值为leaf的情况下,在所述第二ip与所述第二ac满足第一预定条件的情况下,丢弃所述指定报文;其中,所述第二ip为所述第二ip或将所述第二ip的部分位的值经由所述第四报文的本征熵值解密后得到的ip。

上述第一预定条件包括以下至少之一:所述第二ip与所述第二ac对应的ip相等(具体解释参见优选实施例1);所述第二ip中指定二进制位的值为1且所述第二ac的根叶属性的值为leaf(具体解释参见优选实施例12);所述第二ip中指定二进制位的值为0且所述第二ac的根叶属性的值为leaf(具体解释参见优选实施例12);ip1^ip2<(m+1)(具体解释参见优选实施例2),其中,^是按位逻辑异或运算符;(ip1&ip2)&flag=flag(具体解释参见优选实施例12),其中,&是按位逻辑与运算符,flag为预定数值,且flag中只有一个二进制位的值为1;其中,ip1为所述第二ip,ip2为所述第二ac对应的ip,m是ip地址反掩码,其中,所述ip地址反掩码为所述第二ac所属主接口绑定的esi对应的esiip的ip地址掩码经按位取反运算后所得的。

需要说明的是,上述第三ip可以包括:第一部分和第二部分,其中,所述第一部分包括所述本地索引,所述第二部分包括以下至少之一:在所述第一pe节点上配置的指定ip地址的指定部分;其中,所述第一pe节点上的所有ac的第三ip中均包含所述指定部分;通过同一条配置命令在所述第一pe节点上逐个esi分别配置的属性值中共同的二进制位部分;通过同一条配置命令在所述第二报文所属的vpn域的每个pe点上配置的指定ip地址的共同二进制位部分,其中,所述vpn域为发送或接收所述第二报文的pe节点的集合。

需要说明的是,所述本地索引包括以下至少之一:esi本身的值;esi别名值,其中,所述esi别名值为给所述第一ac对应的esi配置的用于在所述第一ac所在的节点上区别于所述节点上其它esi的属性的值;esi本地区分值,其中,所述esi本地区分值为所述第一ac对应的esi中的第一指定字段的取值;在所述第一pe节点中,不同esi对应的所述第一指定字段的值不同;esi域内区分值,其中,所述esi域内区分值为所述第一ac对应的esi中的第二指定字段的取值,其中,在所述第一pe节点所属的vpn域中,不同的esi对应的所述第二指定字段的值不同。

在本发明的一个实施例中,所述第一ip位于所述第三报文的以下之一位置:源ip中,ipv6选项头中。

需要说明的是,所述第一pe基于以下至少之一控制面对所述第四报文进行处理:第一evpn控制面,其中,所述第一evpn控制面为既通过路由发布所述esiip与所述esi的对应关系或所述第三ip中的信息与所述esi的对应关系,又通过路由发布由与所述第一ac绑定的evpn实例所绑定的ac学习的mac条目的控制面;第二evpn控制面,其中,所述第二evpn控制面为不通过路由发布所述esiip与所述esi的对应关系或所述第三ip中的信息与所述esi的对应关系,但通过路由发布由与所述第一ac绑定的evpn实例所绑定的ac学习的mac条目的控制面;第三evpn控制面,其中,所述第三evpn控制面为通过路由发布所述esiip与所述esi的对应关系或所述第三ip中的信息与所述esi的对应关系,但不通过路由发布由与所述第一ac绑定的evpn实例所绑定的ac学习的mac条目的控制面;第四evpn控制面,其中,所述第四evpn控制面为不通过路由发布所述esiip与所述esi的对应关系或所述第三ip中的信息与所述esi的对应关系,并且不通过路由发布由与所述第一ac绑定的evpn实例所绑定的ac学习的mac条目的控制面;第五evpn控制面,其中,所述第五evpn控制面为在骨干ip-vrf中发布所述esiip与所述esi的对应关系或所述第三ip中的信息与所述esi的对应关系的控制面;所述骨干ip-vrf为所述第一ac所绑定的evpn实例绑定的ip-vrf;第六evpn控制面,其中,所述第六evpn控制面为在骨干mac-vrf中发布所述esiip与所述esi的对应关系或所述第三ip中的信息与所述esi的对应关系的控制面;所述骨干mac-vrf为所述第一ac所绑定的evpn实例绑定的l2vpn实例。

在本发明的一个实施例中,所述第三报文的源ip在underlay网络中可路由或在underlay网络中不可路由。

需要说明的是,当所述第三报文的源ip满足以下之一条件时,所述第三报文的源ip在underlay网络中路由不可达:所述第三报文的ipv4头中的协议类型字段的值为第一指定值;所述第三报文的ipv6头中的下一报头字段的值为第二指定值;所述第三报文的ip头对应的外层以太头中的ethertype字段的值为第三指定值;所述第三报文的源ip的指定位为第四指定值;所述第三报文的目的ip的指定位为第五指定值并且源ip的指定位为第六指定值。

需要说明的是,第一指定值,第二指定值,第三指定值,第四指定值,第五指定值和第六指定值,可以根据实际需要进行设定,但并不限于此。

需要说明的是,当所述第三报文的源ip在underlay网络中不可路由时,上述步骤s404可以表现为以下至少之一:不进行单播逆向路径转发(unicastreversepathforwarding,简称urpf)检查(具体参见优选实施例1中的非业务感知节点的解释);根据指定路由表(具体解释参见优选实施例8)和所述第三报文的源ip进行urpf检查;不发送第五报文(具体解释参见优选实施例1);根据指定路由表发送第五报文(具体解释参见优选实施例1);当所述第三报文的目的ip为组播ip时,不进行逆向路径转发(reversepathforwarding,简称rpf)检查(具体解释参见优选实施例10);当所述第三报文的目的ip为组播ip时,根据指定路由表和所述第三报文的源ip进行rpf检查(具体解释参见优选实施例10);其中,所述指定路由表与用于根据所述第三报文的目的ip转发所述第三报文的路由表不同;所述第五报文为在所述第三报文满足预定条件的情况下生成的报文。

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

实施例2

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

图4是根据本发明实施例的报文的发送装置的结构框图,该发送装置可以位于图1所示的架构中的pe节点中,以位于图1所示的pe1节点为例,上述发送装置包括:

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

处理模块44,与上述接收模块42连接,用于对所述第一报文进行处理,得到一个或多个第二报文;其中,所述第二报文中包括第一ip,其中,所述第一ip包括:第二ip或将第二ip的部分位用所述第一报文的本征熵值加密后得到的ip;所述第二ip为以下之一:与所述第一ac对应的esi的esiip,将与所述第一ac对应的esi的esiip的指定位根据所述第一ac的根叶属性修改后得到的ip,将与所述第一ac对应的esi的esiip的部分位用与所述第一ac对应的vlanid值替换后所得的ip,第三ip,将第三ip的指定位根据所述第一ac的根叶属性修改后得到的ip;其中,与所述第一ac对应的esi为所述第一ac所属主接口绑定的esi,所述esi的esiip为与所述esi对应的ip地址,与所述第一ac对应的vlanid值为所述第一ac上配置的用于匹配所述第一报文的vlanid值,所述第三ip为由所述第一ac所在的pe节点和所述第一ac对应的esi在所述pe节点上的本地索引确定的ip或由所述第一ac所在的pe节点所属的vpn域和所述第一ac对应的esi在所述pe节点上的本地索引确定的ip;

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

通过上述装置,通过第二报文中包括的第一ip中携带了与接收第一报文的第一ac对应的esi相关的信息,使得与该第二报文相关的业务比如vxlan业务等能够支持esi功能,解决了相关技术中vxlan业务不支持esi的问题。

需要说明的是,通过在第一ip中携带上述esi相关的信息,即从同一pe的不同esi处发送的报文中都包括各自的esi相关的信息,因而在远端接收到这些报文时可以通过各自的esi相关的信息实现对这些报文的区分,因此,可以解决相关技术中从同一pe的不同esi接收到的报文转发给远端时这些报文无法被区分的问题,同时也能够统计同一esi经过不同邻接pe节点到达同一远端pe节点时的流量总和。

需要说明的是,上述封装可以是ip封装,通过这种方式可以实现在不使用pbb和mpls封装的情况下,仍然能够实现pbbevpn具有的一些效果。

另外,通过上述方法的一种实施例,即在第一ip中携带第一ac的根叶属性,进而可以在报文中不需要vni标签栈结构也能够实现mplsevpn业务从e-lan扩展到了e-tree形态。

需要说明的是,在所述第一ac的根叶属性的值为根root的情况下根据所述root对所述esiip的指定位修改得到的ip与在所述第一ac的根叶属性的值为叶leaf的情况下根据所述leaf对所述esiip的指定位修改得到的ip不同;在所述第一ac的根叶属性的值为根root的情况下根据所述root对所述第三ip的指定位修改得到的ip与在所述第一ac的根叶属性的值为leaf的情况下根据所述leaf对所述第三ip的指定位修改得到的ip不同。

需要说明的是,上述第三ip可以包括:第一部分和第二部分,其中,所述第一部分包括所述本地索引,所述第二部分包括以下至少之一:在所述第一ac所在pe节点上配置的指定ip地址的指定部分;其中,所述pe节点上的所有ac的第三ip中均包含所述指定部分;通过同一条配置命令在所述第一ac所在pe节点上逐个esi分别配置的指定属性值中共同的二进制位部分;通过同一条配置命令在所述第二报文所属的vpn域的每个pe点上配置的指定ip地址的共同二进制位部分,其中,所述vpn域为发送或接收所述第二报文的pe节点的集合。

需要说明的是,上述本地索引在esi所在的pe节点上针对esi是唯一的,即该本地索引在pe节点上唯一标识与该本地索引对应的esi,但并不限于此。

需要说明的是,上述本地索引可以包括以下至少之一:esi本身的值;esi别名值,其中,所述esi别名值为给所述第一ac对应的esi配置的用于在所述第一ac所在的节点上区别于所述节点上其它esi的属性的值;esi本地区分值,其中,所述esi本地区分值为所述第一ac对应的esi中的第一指定字段的取值;在所述第一ac所在的pe节点中,不同esi对应的所述第一指定字段的值不同;esi域内区分值,其中,所述esi域内区分值为所述第一ac对应的esi中的第二指定字段的取值,其中,在所述第一ac所在的pe节点所属的vpn域中,不同的esi对应的所述第二指定字段的值不同。

需要说明的是,在上述第三ip为ipv6的情况下,上述本地索引可以是esi本身的值,但并不限于此。

在本发明的一个实施例中,上述第一ip位于所述第二报文的以下之一位置:源ip中,互联网协议第6版ipv6选项头中。

在本发明的一个实施例中,上述处理模块54还用于基于以下至少之一控制面对所述第一报文进行处理:第一以太网虚拟专用网络evpn控制面,其中,所述第一evpn控制面为既通过路由发布所述esiip与所述esi的对应关系或所述第三ip中的信息与所述esi的对应关系,又通过路由发布由与所述第一ac绑定的evpn实例所绑定的ac学习的媒体访问控制mac条目的控制面;第二evpn控制面,其中,所述第二evpn控制面为不通过路由发布所述esiip与所述esi的对应关系或所述第三ip中的信息与所述esi的对应关系,但通过路由发布由与所述第一ac绑定的evpn实例所绑定的ac学习的mac条目的控制面;第三evpn控制面,其中,所述第三evpn控制面为通过路由发布所述esiip与所述esi的对应关系或所述第三ip中的信息与所述esi的对应关系,但不通过路由发布由与所述第一ac绑定的evpn实例所绑定的ac学习的mac条目的控制面;第四evpn控制面,其中,所述第四evpn控制面为不通过路由发布所述esiip与所述esi的对应关系或所述第三ip中的信息与所述esi的对应关系,并且不通过路由发布由与所述第一ac绑定的evpn实例所绑定的ac学习的mac条目的控制面;第五evpn控制面,其中,所述第五evpn控制面为在骨干ip-vrf中发布所述esiip与所述esi的对应关系或所述第三ip中的信息与所述esi的对应关系的控制面;所述骨干ip-vrf为所述第一ac所绑定的evpn实例绑定的ip-vrf;第六evpn控制面,其中,所述第六evpn控制面为在骨干mac-vrf中发布所述esiip与所述esi的对应关系或所述第三ip中的信息与所述esi的对应关系的控制面;所述骨干mac-vrf为所述第一ac所绑定的evpn实例绑定的二层虚拟专用网络l2vpn实例。

需要说明的是,在上述处理模块44基于上述第二evpn控制面,第四evpn控制面,第五evpn控制面,第六evpn控制面对第一报文进行处理时,其可以不依赖于上述两种对应关系。

需要说明的是,在上述处理模块44基于所述第五evpn控制面对所述第一报文进行处理,得到的所述第二报文中不包括所述骨干ip-vrf的私网标签或包括所述骨干ip-vrf的私网标签;在基于所述第六evpn控制面对所述第一报文进行处理,得到的所述第二报文中不包括所述骨干mac-vrf的私网标签或包括所述骨干mac-vrf的私网标签。

在本发明的一个实施例中,所述第二报文的源ip作为目的ip的情况下,所述源ip在下层网络underlay网络中可路由或在underlay网络中不可路由。

需要说明的是,通过采用在underlay网络中不可路由的源ip能够节省underlay网络的ip地址资源。

需要说明的是,当所述第二报文的源ip在underlay网络中不可路由时,上述处理模块54还用于以下至少之一:在所述第二报文的所述源ip的外层添加与所述源ip在同一个ip头中的目的ip所对应的多协议标签交换mpls封装;其中,所述源ip不在所述目的ip所在的路由表中;将所述第二报文的互联网协议第6版ipv4头中的协议类型字段的值设置为第一指定值;将所述第二报文的ipv6头中的下一报头字段的值设置为第二指定值;将所述第二报文的ip头对应的外层以太头中的以太网类型ethertype字段的值设置为第三指定值。

本发明实施例还提供了一种报文的处理装置,该装置可以位于图1所示的pe节点,以位于图1所示的pe2节点。图5是根据本发明实施例提供的报文的处理装置的结构框图,如图5所示,该装置包括:

接收模块52,用于接收第一服务提供商边缘设备pe发送的第三报文,其中,所述第三报文为所述第一pe对从第一ac接收的第四报文进行处理得到的报文,所述第三报文中包括第一ip,其中,所述第一ip包括:第二ip或将第二ip的部分位用所述第四报文的本征熵值加密后得到的ip;所述第二ip为以下之一:与所述第一ac对应的esi的esiip,将与所述第一ac对应的esi的esiip的指定位根据所述第一ac的根叶属性修改后得到的ip,将与所述第一ac对应的esi的esiip的部分位用与所述第一ac对应的vlanid值替换后所得的ip,第三ip,将第三ip的指定位根据所述第一ac的根叶属性修改后得到的ip;其中,与所述第一ac对应的esi为所述第一ac所属主接口绑定的esi,所述esi的esiip为与所述esi对应的ip地址,与所述第一ac对应的vlanid值为所述第一ac上配置的用于匹配所述第四报文的vlanid值,所述第三ip为由所述第一ac所在的pe节点和所述第一ac对应的esi在所述pe节点上的本地索引确定的ip或由所述第一ac所在的pe节点所属的vpn域和所述第一ac对应的esi在所述pe节点上的本地索引确定的ip;

处理模块54,与上述接收模块52连接,用于根据与所述第三报文中包含的第一ip对应的esi值对所述第三报文进行处理,或者,根据所述第二ip和接收所述第三报文的接收方上的配置信息对所述第三报文进行esi过滤。

通过上述装置,通过第二报文中包括的第一ip中携带了与接收第一报文的第一ac对应的esi相关的信息,使得与该第二报文相关的业务比如vxlan业务等能够支持esi功能,解决了相关技术中vxlan业务不支持esi的问题。

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

需要说明的是,上述处理模块54还用于以下至少之一:当与所述第三报文中包含的第一ip对应的esi为第一指定值时,将所述第三报文镜向到指定服务器;当与所述第三报文中包含的第一ip对应的esi为第二指定值时,对所述第三报文进行指定的服务质量qos处理;当与所述第三报文中包含的第一ip对应的esi为指定值时,采用与所述指定值绑定的性能统计计数器对所述第三报文进行性能统计。

需要说明的是,上述处理模块54还用于:根据所述第三报文确定一个或多个指定报文;分别确定用于发送一个或多个所述指定报文的第二ac;根据所述第二ip和所述配置信息过滤所述指定报文;其中,所述配置信息包括以下至少之一:所述第二ac的根叶属性,所述第二ac对应的ip。

需要说明的是,上述处理模块54还用于:在所述第二ac所属主接口绑定的esi为非零或所述第二ac的根叶属性的值为leaf的情况下,在所述第二ip与所述第二ac满足第一预定条件的情况下,丢弃所述指定报文。

上述第一预定条件包括以下至少之一:所述第二ip与所述第二ac对应的ip相等;所述第二ip中指定二进制位的值为1且所述第二ac的根叶属性的值为leaf;所述第二ip中指定二进制位的值为0且所述第二ac的根叶属性的值为leaf;ip1^ip2<(m+1),其中,^是按位逻辑异或运算符;(ip1&ip2)&flag=flag,其中,&是按位逻辑与运算符,flag为预定数值,且flag中只有一个二进制位的值为1;其中,ip1为所述第二ip,ip2为所述第二ac对应的ip,m是ip地址反掩码,其中,所述ip地址反掩码为所述第二ac所属主接口绑定的esi对应的esiip的ip地址掩码经按位取反运算后所得的。

需要说明的是,上述第三ip可以包括:第一部分和第二部分,其中,所述第一部分包括所述本地索引,所述第二部分包括以下至少之一:在所述第一pe节点上配置的指定ip地址的指定部分;其中,所述第一pe节点上的所有ac的第三ip中均包含所述指定部分;通过同一条配置命令在所述第一pe节点上逐个esi分别配置的属性值中共同的二进制位部分;通过同一条配置命令在所述第二报文所属的vpn域的每个pe点上配置的指定ip地址的共同二进制位部分,其中,所述vpn域为发送或接收所述第二报文的pe节点的集合。

需要说明的是,所述本地索引包括以下至少之一:esi本身的值;esi别名值,其中,所述esi别名值为给所述第一ac对应的esi配置的用于在所述第一ac所在的节点上区别于所述节点上其它esi的属性的值;esi本地区分值,其中,所述esi本地区分值为所述第一ac对应的esi中的第一指定字段的取值;在所述第一pe节点中,不同esi对应的所述第一指定字段的值不同;esi域内区分值,其中,所述esi域内区分值为所述第一ac对应的esi中的第二指定字段的取值,其中,在所述第一pe节点所属的vpn域中,不同的esi对应的所述第二指定字段的值不同。

在本发明的一个实施例中,所述第一ip位于所述第三报文的以下之一位置:最外层源ip中,ipv6选项头中。

需要说明的是,所述第一pe基于以下至少之一控制面对所述第四报文进行处理:第一evpn控制面,其中,所述第一evpn控制面为既通过路由发布所述esiip与所述esi的对应关系或所述第三ip中的信息与所述esi的对应关系,又通过路由发布由与所述第一ac绑定的evpn实例所绑定的ac学习的mac条目的控制面;第二evpn控制面,其中,所述第二evpn控制面为不通过路由发布所述esiip与所述esi的对应关系或所述第三ip中的信息与所述esi的对应关系,但通过路由发布由与所述第一ac绑定的evpn实例所绑定的ac学习的mac条目的控制面;第三evpn控制面,其中,所述第三evpn控制面为通过路由发布所述esiip与所述esi的对应关系或所述第三ip中的信息与所述esi的对应关系,但不通过路由发布由与所述第一ac绑定的evpn实例所绑定的ac学习的mac条目的控制面;第四evpn控制面,其中,所述第四evpn控制面为不通过路由发布所述esiip与所述esi的对应关系或所述第三ip中的信息与所述esi的对应关系,并且不通过路由发布由与所述第一ac绑定的evpn实例所绑定的ac学习的mac条目的控制面;第五evpn控制面,其中,所述第五evpn控制面为在骨干ip-vrf中发布所述esiip与所述esi的对应关系或所述第三ip中的信息与所述esi的对应关系的控制面;所述骨干ip-vrf为所述第一ac所绑定的evpn实例绑定的ip-vrf;第六evpn控制面,其中,所述第六evpn控制面为在骨干mac-vrf中发布所述esiip与所述esi的对应关系或所述第三ip中的信息与所述esi的对应关系的控制面;所述骨干mac-vrf为所述第一ac所绑定的evpn实例绑定的l2vpn实例。

在本发明的一个实施例中,所述第三报文的源ip作为目的ip的情况下,所述源ip在underlay网络中可路由或在underlay网络中不可路由。

需要说明的是,当所述第三报文的源ip满足以下之一条件时,所述第三报文的源ip在underlay网络中路由不可达:所述第三报文的ipv4头中的协议类型字段的值为第一指定值;所述第三报文的ipv6头中的下一报头字段的值为第二指定值;所述第三报文的ip头对应的外层以太头中的ethertype字段的值为第三指定值;所述第三报文的源ip的指定位为第四指定值;所述第三报文的目的ip的指定位为第五指定值并且源ip的指定位为第六指定值。

需要说明的是,第一指定值,第二指定值,第三指定值,第四指定值,第五指定值和第六指定值,可以根据实际需要进行设定,但并不限于此。

需要说明的是,当所述第三报文的源ip在underlay网络中不可路由时,上述处理模块还用于以下至少之一:不进行单播逆向路径转发(unicastreversepathforwarding,简称urpf)检查;根据指定路由表和所述第三报文的源ip进行urpf检查;不发送第五报文;根据指定路由表发送第五报文;当所述第三报文的目的ip为组播ip时,不进行逆向路径转发(reversepathforwarding,简称rpf)检查;当所述第三报文的目的ip为组播ip时,根据指定路由表和所述第三报文的源ip进行rpf检查;其中,所述指定路由表与用于根据所述第三报文的目的ip转发所述第三报文的路由表不同;所述第五报文为在所述第三报文满足预定条件的情况下生成的报文。

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

实施例3

在本实施例中还提供了一种pe节点,该pe节点可以是上述图1所示的架构中的pe节点,但并不限于此,图6是根据本发明实施例提供的pe节点的示意图,如图6所示,该pe节点包括:

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

处理器64,与上述通信接口72连接,用于对所述第一报文进行处理,得到一个或多个第二报文;其中,所述第二报文中包括第一ip,其中,所述第一ip包括:第二ip或将第二ip的部分位用所述第一报文的本征熵值加密后得到的ip;所述第二ip为以下之一:与所述第一ac对应的esi的esiip,将与所述第一ac对应的esi的esiip的指定位根据所述第一ac的根叶属性修改后得到的ip,将与所述第一ac对应的esi的esiip的部分位用与所述第一ac对应的vlanid值替换后所得的ip,第三ip,将第三ip的指定位根据所述第一ac的根叶属性修改后得到的ip;其中,与所述第一ac对应的esi为所述第一ac所属主接口绑定的esi,所述esi的esiip为与所述esi对应的ip地址,与所述第一ac对应的vlanid值为所述第一ac上配置的用于匹配所述第一报文的vlanid值,所述第三ip为由所述第一ac所在的pe节点和所述第一ac对应的esi在所述pe节点上的本地索引确定的ip或由所述第一ac所在的pe节点所属的vpn域和所述第一ac对应的esi在所述pe节点上的本地索引确定的ip;

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

通过上述pe节点,通过第二报文中包括的第一ip中携带了与接收第一报文的第一ac对应的esi相关的信息,使得与该第二报文相关的业务比如vxlan业务等能够支持esi功能,解决了相关技术中vxlan业务不支持esi的问题。

需要说明的是,通过在第一ip中携带上述esi相关的信息,即从同一pe的不同esi处发送的报文中都包括各自的esi相关的信息,因而在远端接收到这些报文时可以通过各自的esi相关的信息实现对这些报文的区分,因此,可以解决相关技术中从同一pe的不同esi接收到的报文转发给远端时这些报文无法被区分的问题,同时也能够统计同一esi经过不同邻接pe节点到达同一远端pe节点时的流量总和。

需要说明的是,上述封装可以是ip封装,通过这种方式可以实现在不使用pbb和mpls封装的情况下,仍然能够实现pbbevpn具有的一些效果。

另外,通过上述方法的一种实施例,即在第一ip中携带第一ac的根叶属性,进而可以在报文中不需要vni标签栈结构也能够实现mplsevpn业务从e-lan扩展到了e-tree形态。

需要说明的是,在所述第一ac的根叶属性的值为根root的情况下根据所述root对所述esiip的指定位修改得到的ip与在所述第一ac的根叶属性的值为叶leaf的情况下根据所述leaf对所述esiip的指定位修改得到的ip不同;在所述第一ac的根叶属性的值为根root的情况下根据所述root对所述第三ip的指定位修改得到的ip与在所述第一ac的根叶属性的值为leaf的情况下根据所述leaf对所述第三ip的指定位修改得到的ip不同。

需要说明的是,上述第三ip可以包括:第一部分和第二部分,其中,所述第一部分包括所述本地索引,所述第二部分包括以下至少之一:在所述第一ac所在pe节点上配置的指定ip地址的指定部分;其中,所述pe节点上的所有ac的第三ip中均包含所述指定部分;通过同一条配置命令在所述第一ac所在pe节点上逐个esi分别配置的指定属性值中共同的二进制位部分;通过同一条配置命令在所述第二报文所属的vpn域的每个pe点上配置的指定ip地址的共同二进制位部分,其中,所述vpn域为发送或接收所述第二报文的pe节点的集合。

需要说明的是,上述本地索引在esi所在的pe节点上针对esi是唯一的,即该本地索引在pe节点上唯一标识与该本地索引对应的esi,但并不限于此。

需要说明的是,上述本地索引可以包括以下至少之一:esi本身的值;esi别名值,其中,所述esi别名值为给所述第一ac对应的esi配置的用于在所述第一ac所在的节点上区别于所述节点上其它esi的属性的值;esi本地区分值,其中,所述esi本地区分值为所述第一ac对应的esi中的第一指定字段的取值;在所述第一ac所在的pe节点中,不同esi对应的所述第一指定字段的值不同;esi域内区分值,其中,所述esi域内区分值为所述第一ac对应的esi中的第二指定字段的取值,其中,在所述第一ac所在的pe节点所属的vpn域中,不同的esi对应的所述第二指定字段的值不同。

需要说明的是,在上述第三ip为ipv6的情况下,上述本地索引可以是esi本身的值,但并不限于此。

在本发明的一个实施例中,上述第一ip位于所述第二报文的以下之一位置:源ip中,互联网协议第6版ipv6选项头中。

在本发明的一个实施例中,上述处理器64还用于基于以下至少之一控制面对所述第一报文进行处理:第一以太网虚拟专用网络evpn控制面,其中,所述第一evpn控制面为既通过路由发布所述esiip与所述esi的对应关系或所述第三ip中的信息与所述esi的对应关系,又通过路由发布由与所述第一ac绑定的evpn实例所绑定的ac学习的媒体访问控制mac条目的控制面;第二evpn控制面,其中,所述第二evpn控制面为不通过路由发布所述esiip与所述esi的对应关系或所述第三ip中的信息与所述esi的对应关系,但通过路由发布由与所述第一ac绑定的evpn实例所绑定的ac学习的mac条目的控制面;第三evpn控制面,其中,所述第三evpn控制面为通过路由发布所述esiip与所述esi的对应关系或所述第三ip中的信息与所述esi的对应关系,但不通过路由发布由与所述第一ac绑定的evpn实例所绑定的ac学习的mac条目的控制面;第四evpn控制面,其中,所述第四evpn控制面为不通过路由发布所述esiip与所述esi的对应关系或所述第三ip中的信息与所述esi的对应关系,并且不通过路由发布由与所述第一ac绑定的evpn实例所绑定的ac学习的mac条目的控制面;第五evpn控制面,其中,所述第五evpn控制面为在骨干ip-vrf中发布所述esiip与所述esi的对应关系或所述第三ip中的信息与所述esi的对应关系的控制面;所述骨干ip-vrf为所述第一ac所绑定的evpn实例绑定的ip-vrf;第六evpn控制面,其中,所述第六evpn控制面为在骨干mac-vrf中发布所述esiip与所述esi的对应关系或所述第三ip中的信息与所述esi的对应关系的控制面;所述骨干mac-vrf为所述第一ac所绑定的evpn实例绑定的二层虚拟专用网络l2vpn实例。

需要说明的是,在上述处理器64基于上述第二evpn控制面,第四evpn控制面,第五evpn控制面,第六evpn控制面对第一报文进行处理时,其可以不依赖于上述两种对应关系。

需要说明的是,在上述处理器64基于所述第五evpn控制面对所述第一报文进行处理,得到的所述第二报文中不包括所述骨干ip-vrf的私网标签或包括所述骨干ip-vrf的私网标签;在基于所述第六evpn控制面对所述第一报文进行处理,得到的所述第二报文中不包括所述骨干mac-vrf的私网标签或包括所述骨干mac-vrf的私网标签。

在本发明的一个实施例中,所述第二报文的源ip作为目的ip的情况下,所述源ip在下层网络underlay网络中可路由或在underlay网络中不可路由。

需要说明的是,通过采用在underlay网络中不可路由的源ip能够节省underlay网络的ip地址资源。

需要说明的是,当所述第二报文的源ip在underlay网络中不可路由时,上述处理器64还用于以下至少之一:在所述第二报文的所述源ip的外层添加与所述源ip在同一个ip头中的目的ip所对应的多协议标签交换mpls封装;其中,所述源ip不在所述目的ip所在的路由表中;将所述第二报文的互联网协议第6版ipv4头中的协议类型字段的值设置为第一指定值;将所述第二报文的ipv6头中的下一报头字段的值设置为第二指定值;将所述第二报文的ip头对应的外层以太头中的以太网类型ethertype字段的值设置为第三指定值。

本发明实施例还提供了另一种节点,该节点可以位于图1所示的pe节点。该实施例中的pe节点的结构与上述图6类似,此处不再赘述,该节点包括:

通信接口,用于接收第一服务提供商边缘设备pe发送的第三报文,其中,所述第三报文为所述第一pe对从第一ac接收的第四报文进行处理得到的报文,所述第三报文中包括第一ip,其中,所述第一ip包括:第二ip或将第二ip的部分位用所述第四报文的本征熵值加密后得到的ip;所述第二ip为以下之一:与所述第一ac对应的esi的esiip,将与所述第一ac对应的esi的esiip的指定位根据所述第一ac的根叶属性修改后得到的ip,将与所述第一ac对应的esi的esiip的部分位用与所述第一ac对应的vlanid值替换后所得的ip,第三ip,将第三ip的指定位根据所述第一ac的根叶属性修改后得到的ip;其中,与所述第一ac对应的esi为所述第一ac所属主接口绑定的esi,所述esi的esiip为与所述esi对应的ip地址,与所述第一ac对应的vlanid值为所述第一ac上配置的用于匹配所述第四报文的vlanid值,所述第三ip为由所述第一ac所在的pe节点和所述第一ac对应的esi在所述pe节点上的本地索引确定的ip或由所述第一ac所在的pe节点所属的vpn域和所述第一ac对应的esi在所述pe节点上的本地索引确定的ip;

处理器,与上述通信接口连接,用于根据与所述第三报文中包含的第一ip对应的esi值对所述第三报文进行处理,或者,根据所述第二ip和接收所述第三报文的接收方上的配置信息对所述第三报文进行esi过滤。

通过上述装置,通过第二报文中包括的第一ip中携带了与接收第一报文的第一ac对应的esi相关的信息,使得与该第二报文相关的业务比如vxlan业务等能够支持esi功能,解决了相关技术中vxlan业务不支持esi的问题。

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

需要说明的是,上述处理器还用于以下至少之一:当与所述第三报文中包含的第一ip对应的esi为第一指定值时,将所述第三报文镜向到指定服务器;当与所述第三报文中包含的第一ip对应的esi为第二指定值时,对所述第三报文进行指定的服务质量qos处理;当与所述第三报文中包含的第一ip对应的esi为指定值时,采用与所述指定值绑定的性能统计计数器对所述第三报文进行性能统计。

需要说明的是,上述处理器还用于:根据所述第三报文确定一个或多个指定报文;分别确定用于发送一个或多个所述指定报文的第二ac;根据所述第二ip和所述配置信息过滤所述指定报文;其中,所述配置信息包括以下至少之一:所述第二ac的根叶属性,所述第二ac对应的ip。

需要说明的是,上述处理器还可以用于:在所述第二ac所属主接口绑定的esi为非零或所述第二ac的根叶属性的值为leaf的情况下,在所述第二ip与所述第二ac满足第一预定条件的情况下,丢弃所述指定报文;其中,所述第二ip为所述第二ip或将所述第二ip的部分位的值经由所述第四报文的本征熵值解密后得到的ip。

上述第一预定条件包括以下至少之一:所述第二ip与所述第二ac对应的ip相等;所述第二ip中指定二进制位的值为1且所述第二ac的根叶属性的值为leaf;所述第二ip中指定二进制位的值为0且所述第二ac的根叶属性的值为leaf;ip1^ip2<(m+1),其中,^是按位逻辑异或运算符;(ip1&ip2)&flag=flag,其中,&是按位逻辑与运算符,flag为预定数值,且flag中只有一个二进制位的值为1;其中,ip1为所述第二ip,ip2为所述第二ac对应的ip,m是ip地址反掩码,其中,所述ip地址反掩码为所述第二ac所属主接口绑定的esi对应的esiip的ip地址掩码经按位取反运算后所得的。

需要说明的是,上述第三ip可以包括:第一部分和第二部分,其中,所述第一部分包括所述本地索引,所述第二部分包括以下至少之一:在所述第一pe节点上配置的指定ip地址的指定部分;其中,所述第一pe节点上的所有ac的第三ip中均包含所述指定部分;通过同一条配置命令在所述第一pe节点上逐个esi分别配置的属性值中共同的二进制位部分;通过同一条配置命令在所述第二报文所属的vpn域的每个pe点上配置的指定ip地址的共同二进制位部分,其中,所述vpn域为发送或接收所述第二报文的pe节点的集合。

需要说明的是,所述本地索引包括以下至少之一:esi本身的值;esi别名值,其中,所述esi别名值为给所述第一ac对应的esi配置的用于在所述第一ac所在的节点上区别于所述节点上其它esi的属性的值;esi本地区分值,其中,所述esi本地区分值为所述第一ac对应的esi中的第一指定字段的取值;在所述第一pe节点中,不同esi对应的所述第一指定字段的值不同;esi域内区分值,其中,所述esi域内区分值为所述第一ac对应的esi中的第二指定字段的取值,其中,在所述第一pe节点所属的vpn域中,不同的esi对应的所述第二指定字段的值不同。

在本发明的一个实施例中,所述第一ip位于所述第三报文的以下之一位置:最外层源ip中,ipv6选项头中。

需要说明的是,所述第一pe基于以下至少之一控制面对所述第四报文进行处理:第一evpn控制面,其中,所述第一evpn控制面为既通过路由发布所述esiip与所述esi的对应关系或所述第三ip中的信息与所述esi的对应关系,又通过路由发布由与所述第一ac绑定的evpn实例所绑定的ac学习的mac条目的控制面;第二evpn控制面,其中,所述第二evpn控制面为不通过路由发布所述esiip与所述esi的对应关系或所述第三ip中的信息与所述esi的对应关系,但通过路由发布由与所述第一ac绑定的evpn实例所绑定的ac学习的mac条目的控制面;第三evpn控制面,其中,所述第三evpn控制面为通过路由发布所述esiip与所述esi的对应关系或所述第三ip中的信息与所述esi的对应关系,但不通过路由发布由与所述第一ac绑定的evpn实例所绑定的ac学习的mac条目的控制面;第四evpn控制面,其中,所述第四evpn控制面为不通过路由发布所述esiip与所述esi的对应关系或所述第三ip中的信息与所述esi的对应关系,并且不通过路由发布由与所述第一ac绑定的evpn实例所绑定的ac学习的mac条目的控制面;第五evpn控制面,其中,所述第五evpn控制面为在骨干ip-vrf中发布所述esiip与所述esi的对应关系或所述第三ip中的信息与所述esi的对应关系的控制面;所述骨干ip-vrf为所述第一ac所绑定的evpn实例绑定的ip-vrf;第六evpn控制面,其中,所述第六evpn控制面为在骨干mac-vrf中发布所述esiip与所述esi的对应关系或所述第三ip中的信息与所述esi的对应关系的控制面;所述骨干mac-vrf为所述第一ac所绑定的evpn实例绑定的l2vpn实例。

在本发明的一个实施例中,所述第三报文的源ip作为目的ip的情况下,所述源ip在underlay网络中可路由或在underlay网络中不可路由。

需要说明的是,当所述第三报文的源ip满足以下之一条件时,所述第三报文的源ip在underlay网络中路由不可达:所述第三报文的ipv4头中的协议类型字段的值为第一指定值;所述第三报文的ipv6头中的下一报头字段的值为第二指定值;所述第三报文的ip头对应的外层以太头中的ethertype字段的值为第三指定值;所述第三报文的源ip的指定位为第四指定值;所述第三报文的目的ip的指定位为第五指定值并且源ip的指定位为第六指定值。

需要说明的是,第一指定值,第二指定值,第三指定值,第四指定值,第五指定值和第六指定值,可以根据实际需要进行设定,但并不限于此。

需要说明的是,当所述第三报文的源ip在underlay网络中不可路由时,上述处理模块还用于以下至少之一:不进行单播逆向路径转发(unicastreversepathforwarding,简称urpf)检查;根据指定路由表和所述第三报文的源ip进行urpf检查;不发送第五报文;根据指定路由表发送第五报文;当所述第三报文的目的ip为组播ip时,不进行逆向路径转发(reversepathforwarding,简称rpf)检查;当所述第三报文的目的ip为组播ip时,根据指定路由表和所述第三报文的源ip进行rpf检查;其中,所述指定路由表与用于根据所述第三报文的目的ip转发所述第三报文的路由表不同;所述第五报文为在所述第三报文满足预定条件的情况下生成的报文。

实施例4

本发明实施例还提供了一种报文的处理系统,包括:第一节点,第二节点;其中,所述第一节点,用于从第一接入电路ac接收第一报文,对所述第一报文进行处理,得到一个或多个第二报文,以及将所述第二报文发送给所述第二节点;其中,所述第二报文中包括第一互联网协议ip,其中,所述第一ip包括:第二ip或将第二ip的部分位用所述第一报文的本征熵值加密后得到的ip;所述第二ip为以下之一:与所述第一ac对应的以太网分段标识符esi的esiip,将与所述第一ac对应的esi的esiip的指定位根据所述第一ac的根叶root/leaf属性修改后得到的ip,将与所述第一ac对应的esi的esiip的部分位用与所述第一ac对应的虚拟局域网标识vlanid值替换后所得的ip,第三ip,将第三ip的指定位根据所述第一ac的根叶属性修改后得到的ip;其中,与所述第一ac对应的esi为所述第一ac所属主接口绑定的esi,所述esi的esiip为与所述esi对应的ip地址,与所述第一ac对应的vlanid值为所述第一ac上配置的用于匹配所述第一报文的vlanid值,所述第三ip为由所述第一ac所在的pe节点和所述第一ac对应的esi在所述pe节点上的本地索引确定的ip或由所述第一ac所在的边缘节点pe节点所属的虚拟专用网络vpn域和所述第一ac对应的esi在所述pe节点上的本地索引确定的ip;所述第二节点,用于根据与所述第二报文中包含的第一ip对应的esi值对所述第二报文进行处理,或者,根据所述第二ip和接收所述第二报文的接收方上的配置信息对所述第二报文进行esi过滤。

需要说明的是,上述第一节点可以是上述实施例3中的图6所示的pe节点,即上述实施例3中发送第二报文的pe节点,上述第二节点可以是上述实施例3中的另一种节点,即接收第三报文的节点。对于第一节点和第二节点的解释,详见实施例3,此处不再赘述。

实施例5

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

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

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

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

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

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

需要说明的是,上述evpn基础设施模块可以与上述接收模块42,发送模块46完成的功能类似,并且也可以完成上述处理模块44的部分功能,或者可以完成与上述通信接口62的功能以及处理器64的部分功能,但并不限于此。

上述ip第一插件模块,ip第二插件模块,ip第三插件模块,ip第四插件模块可以结合,部分结合或单独可以完成上述处理模块44或处理器64的部分功能,但并不限于此。

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

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

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

本发明优选实施例提供了一种evpn业务esi内部环路避免的装置(系统),其中,本优选实施例提供的pe节点包括以下模块:

标准evpn控制面模块:按rfc7348的规定对vxlan的控制面进行管理;也包括部署vxlan必须的underlay网络的路由、转发管理,比如mp-bgp会话等;

标准evpn转发表管理模块:按rfc7348的规定对vxlan的各种转发表进行管理;

该装置还包括:

esialias映射模块:本模块给指定esi确定一个esi别名值,esi别名值可以是显式指定,也可以是从esi的某个字段中提取。并且,本模块还要将用户配置的esi与esi别名值的映射关系下发到新型evpn转发模块。esialias映射模块还要确定每个esi对应的每个ac的df/non-df角色,其中df/non-df角色在转发流程中所起的作用如rfc7432所定义,但确定每个ac是df还是non-df角色的方法,不局限于rfc7432。

新型evpn转发模块:按rfc7348规定实现vxlan的所有功能,除了如下不同之外:本模块能读取一个ac接口所属的esi对应的esi别名值,记为该ac的esi别名值;本模块能读取vxlan封装的bum报文的underlay源ip地址,记为该报文的esi别名值;本模块能将bum报文的esi别名值与其转发出口ac的esi别名值进行比较,如果两者相同,则丢弃该报文,如果两者不同,则允许该报文执行后续的转发;为描述方便起见,本申请中将此规则称为vxlan数据报文的esiip校验规则,将按此规则校验esiip的过程称为esiip校验过程。相比rfc7348,本模块还可以识别srv6end.dx2封装的报文,并由一个end.dx2类型的srv6sid同时充当rfc7348中的vni和vtepip对于一个vxlan实例所起的作用。详情参见优选实施例5。

本发明优选实施例提供的所述evpn业务esi内环路避免的方法包括以下基本步骤:

第一步,按照部署rfc7348中定义的vxlan业务的方式,将vxlan业务部署起来,所用pe节点,均为实现了所述esialias映射模块和所述新型evpn转发模块的pe节点。这样,经过此步骤,此vxlan业务就已经具有了rfc7348中定义的vxlan业务的基本功能;

第二步,给evpn网络中每个esi(非0)映射一个esi别名值,不同esi(非0)应当映射到不同esi别名值;给evpn网络中每个pe节点映射一个esi别名值,作为该pe节点上的所有esi为0的ac共用的esi别名值。同一esi(非0)在不同pe节点上应该被映射到同一esi别名值。为描述方便起见,以上规则称为esi别名映射规则(相当于上述映射关系)。

第三步,在每个节点上,通过esialias映射模块提供的配置接口,将该节点上的每个本地esi与其esi别名值的映射关系配置上去。包括esi为0和esi不为0两种情况。

有益效果:采用本发明优选实施例提供的所述vxlanevpn增强节点,解决了rfc7348定义的基本vxlan业务不支持esi功能的缺点,避开了[evpnoverlay]定义的localbias机制对esi的组网限制,并且使得对vxlan封装报文的流量统计具备了精确到esi的必要条件。

优选实施例1

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

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

按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会话动态生成。

本模块作为软件实现时,需要实现一种插件机制,具体为:按[evpnoverlay]转发流程将所述第一报文封装成一个或多个第x报文,所述第x报文是一个不带对应链路层封装(比如mac头)的ip报文;然后,对于每一个所述第x报文分别进行如下处理:具体地,先调用ip第一插件修改所述第x报文,再调用ip第二插件修改所述第x报文,在ip第二插件返回后,再继续按[evpnoverlay]流程转发所述第x报文,包括根据目的ip给所述第x报文添加相应的外层各种封装(包括链路层封装)得到所述第二报文,以及发送所述第二报文。在作为接收端接收所述第三报文,并确定为含有待终结的vxlan封装的报文后,剥掉所述vxlan封装的外层ip头外面的所有其它报文头,得到第y报文(所述外层ip头仍然保留在其中),由第y报文中的vni确定第y报文所属的evpn实例,然后,在对所述第y报文进行所述evpn实例中的处理之前,先调用ip第三插件修改所述第y报文,以所得报文在evpn实例中继续按[evpnoverlay]中定义的流程处理,得到一个或者多个第z报文,以及发送每个第z报文的出口ac,以所述第z报文及其出口ac为参数,调用所述ip第四插件,若所述ip第四插件没有将所述第z报文丢弃,则继续按[evpnoverlay]中的流程处理。

与所述evpn基础设施模块不同,在从ac收到一个bum报文时,本模块无视[evpnoverlay]section8.3.1中对实现“localbias”机制的建议,仍然按rfc7432规定,不能往non-df角色的ac转发该bum报文。

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

与所述vpn基础设施模块不同,本模块当所述第y报文的目的ip匹配所述evpn隧道的源ip所在的接口所对应的直连路由前缀时,就认为所述第y报文匹配该隧道,而不检查所述第y报文的源ip是否匹配所述evpn隧道的目的ip。

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

本模块通过配置来指定当收到的所述第y报文的源ip的高16位与指定16位路由前缀prefix1/16的高16位相同时,对该报文的处理必须同时满足如下规则:1)在所述第三报文触发被动回包时,必须回包到指定ip地址s1;2)并且,在所述第三报文触发源ip可达性检查时,忽略检查。

当所述prefix1/16被指定具有以上所述作用时,在本说明书中,就称所述prefix1为本结点的一个源ip专用黑洞路由前缀。源ip专用黑洞路由前缀可以有多个,为描述简单起见,这里设定一个节点只有一个源ip专用黑洞路由前缀。

本模块在收到所述evpn基础设施的回调时,以所述源ip专用黑洞路由前缀的高16位覆盖所述第x报文的源ip的高16位,然后将修改后的报文返回给evpn基础设施模块。

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

本模块通过配置来给每个本地esi指定一个对应的本地唯一的16位esi别名值,并在收到所述evpn基础设施的回调时,以被所述第x报文封装的所述第一报文的入口ac所属的主接口对应的esi对应的esi别名值覆盖所述第二报文的源ip的低16位,然后将修改后的报文返回给evpn基础设施模块。

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

本模块将所述第y报文原封不动地返回给所述evpn基础设施模块。

5:实现所述ip第四插件模块的具体方法如下:

若所述第z报文的出口ac的esi为0,则将所述第z报文直接返回给所述evpn基础设施模块。

否则,本模块将所述第z报文的源ip的低16位与所述出口ac所属的主接口对应的esi对应的esi别名值进行比较,如果相等,则将报文丢弃,否则,将报文返回给所述evpn基础设施模块继续处理。

值得注意的是,所述esi别名值由于在所述第二报文所属的vpn域中的所有esi的esi别名值之间具有唯一性,因此,可以用于报文统计,将从远端不同esi过来的报文的统计数据记录到不同的计数器中,从而提高报文统计的精确性,这是本优选实施例的一个有益效果。

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

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

按现有技术实现基本的ipv4路由和ipv4转发功能,所述ipv4转发功能中包括基于mc-lag的负载均衡功能,负载均衡采用ip五元组作为算熵因子。

本模块只基于所述第x报文的ip头(包括ipv6选项头)进行转发。

本模块对目的ip不是本节点的本地直连ip地址的所述第x报文进行ip转发,所述根据目的ip对所述第x报文进行ip转发的流程相对现有技术没有改变。

本模块通过配置指定当对源ip的高16位为指定值prefix2的ip报文的源ip进行路由可达性检查时,调用熵ip第三插件模块进行所述源ip路由可达性检查。

并且,当所述第x报文的源ip满足所述条件,并且触发被动回包时,则调用熵ip第三插件进行处理,获取回包所用的目的ip地址。现有技术中则是直接用所述第x报文的源ip地址作为回包的目的ip地址。

值得注意的是,本模块也可以在触发被动回包时放弃进行被动回包,此时,不需要调用熵ip第三插件。

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

本模块通过配置来指定当收到的所述第x报文的源ip的高16位为指定值prefix2时,对该报文的处理必须同时满足如下规则:1)在所述第三报文触发被动回包时,必须回包到指定ip地址s1;2)并且,在所述第三报文触发源ip路由可达性检查时,忽略检查。

本模块返回的ip地址即所述源ip专用黑洞路由前缀对应的指定ip地址s1。

以图1所示的evpn拓扑为例,网络及业务部署部分的处理步骤包括:

第一步,选定各结点所采取的实现。选取本优选实施例所定义的pe结点作为pe1、pe2和pe3结点,选取本优选实施例所定义的非业务感知结点作为p1和p2结点(图1中未示出)。本发明的每个优选实施例中的网络及业务部署流程部分均使用该优选实施例中定义的结点作为pe1、pe2、pe3、p1和p2结点,此后不再赘述。由于本优选实施例所定义的pe结点和非业务感知结点都是ipv4节点,因此,这也就意味着本优选实施例选定的underlay网络类型为ipv4网络。

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

第三步,建立图1所示的vxlanevpn网络。包括,在pe1、pe2、pe3之间两两配置mp-bgp会话,并使能l2vpnevpn地址族的相关配置。为简单起见,通过调整bgp的配置,使得evpnrt-3路由可以将业务所需全部vxlan隧道动态生成。不失一般性,为简单起见,可以通过调整bgp配置使得通过rt-3路由生成的vxlan隧道符合如下规则:在任意两个pe结点之间,只生成一条双向vxlan隧道;任一双向vxlan隧道的两端,均使用所在结点的evpnrouterid作为该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业务相绑定。

第五步,配置esi基础配置。给ce1接入到pe1和pe2的物理接口映射到同一个esi(记为esi1)以及esi1相关配置,从而触发所述mp-bgp会话按[evpnoverlay]中所述的rt-4路由进行df协商和rt-1路由发布。同理,给ce2接入到pe1和pe2的物理接口也映射到同一个esi(记为esi2),以及esi2相关的配置。不失一般性,本优选实施例假定所述df协商的结果是ac1和ac4分别是esi1和esi2在所述业务中的non-df角色的接口。

第六步,配置esi过滤配置。在每台pe结点上配置同一个源ip专用黑洞路由前缀,并给每个pe上的每个非零esi配置一个esi别名值,使得同一非零esi在不同pe上的esi别名值均相同,且任意两个不同的非零esi的esi别名值均不同,无论两者是否位于同一pe上。

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

以图1所示的evpn拓扑为例,端到端报文转发部分的处理步骤包括:

第一步,当pe1结点从本地ac1收到一个arp报文b1(相当于上述第一报文)时,所述evpn基础设施模块转发b1报文,包括往远端pe2和pe3和本地ac4转发报文,但是,ac4由于被协商为non-df角色,该份拷贝被丢弃。为描述方便起见,将pe1发往pe2的那个b1报文的拷贝记为b1b(相当于上述第二报文),将pe1发往pe3的那个b1报文的拷贝记为b1c。其中,b1b和b1c两份拷贝的vxlan封装的外层源ip是相同的,记为esi_ip1,其中esi_ip1的高16位为所述源ip专用黑洞路由前缀的高16位,esi_ip1的低16位为所述esi别名值的值;

第二步,当pe2结点收到所述b1b报文时,所述evpn基础设施模块转发b1b报文,只是,由于它是bum报文,且报文的源ip为esi_ip1,在往ac2转发该报文的一份拷贝时,因为ac2所属物理口对应的esi对应的esi别名值与esi_ip1的低16位相等,因此不能转发该拷贝到ac2;在往ac5转发该报文的另一份拷贝时,因为ac5所属物理口对应的esi对应的esi别名值与esi_ip1的低16位不相等,因此可转发该拷贝到ac5,往ac6转发时,因为ac6的esi为0,跳过按esi别名值过滤的流程,将报文直接从ac6转发出去。

第三步,当pe3结点收到所述b1c报文时,所述evpn基础设施模块转发b1c报文到ac3时,虽然b1c报文是bum报文,但由于ac3的esi为0,也无需进行esi过滤。

第四步,当pe1从ac4收到一个bum报文b4时,按与b1类似的转发流程,vxlan封装的外层源ip会填成esi_ip2,b4的一个拷贝b4c转发到pe3时,由于b4c和b1c的外层源ip不同,pe3就会将其统计到两条记录中去,而完全按标准的[evpnoverlay]流程,b4c和b1c由于vxlan封装及其外层ip封装完全相同,只能被统计到一条记录中去。因此,本实施例能够实现比标准的[evpnoverlay]更细致的流量统计。

显然,综合第一步和第二步,已经可以证明,本优选实施例对于从esi1(ac1)收到的bum报文完全不可能再从esi1的其它邻接链路(ac2)转发出去;同时,本发明对于从esi1(ac1)收到的bum报文转发到esi2(ac4和ac5)时,最多只会转发一份出去(因为其中只有一条ac是df角色)。

优选实施例2

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

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

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

与优选实施例1不同,本模块不调用所述ip第一插件模块和所述ip第三插件模块。

与优选实施例1不同,本模块不实现[evpnoverlay]中rt-1路由的相关功能,这意味着本模块发布的rt-2路由的esi字段的值均为0。

值得注意的是,现有[evpnoverlay]技术在去掉rt-1路由之后,无法完成同一es内的环路避免,但是本发明可以,这是本发明的一个重要的有益效果。

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

本模块不对报文进行任何修改。

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

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

与优选实施例1不同,本模块通过配置来给每个本地esi指定一个esiip和相应的esiip掩码,所述esiip的高16位与所述源ip专用黑洞路由前缀的高16位相同,所述esiip掩码的高16位为0x0ffff。

与优选实施例1不同,本模块以所述esiip覆盖所述第二报文的源ip,然后将修改后的报文返回给evpn基础设施模块。

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

本模块不对报文进行任何修改。

5:实现所述ip第四插件模块的具体方法如下:

若所述第z报文的出口ac的esi为0,则将所述第z报文直接返回给所述evpn基础设施模块。

否则,本模块将所述第三报文的源ip与所述第z报文的出口ac所属的主接口对应的esi对应的esiip及其掩码进行匹配,如果所属源ip能够匹配所述esiip及其掩码,则将报文丢弃,否则,将报文返回给所述evpn基础设施模块继续处理。

值得注意的是,将所述第三报文的源ip记为ip1,将所述esiip记为ip2,将所述掩码记为m,则上述丢弃所述报文的规则实际上相当于当ip1^ip2<(m+1)时丢弃报文。

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

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

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

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

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

以图1所示的evpn拓扑为例,网络及业务部署部分的处理步骤包括:

第一步,选定各结点所采取的实现。与优选实施例1相同,只是各pe结点和p结点均为本优选实施例中所定义的结点。

第二步,配置并发布各pe结点的evpnrouterid。与优选实施例1相同。

第三步,建立图1所示的vxlanevpn网络。与优选实施例1相同。

第四步,按图1所示建立一条vxlanevpn业务,并在每个pe结点上为该vxlanevpn业务指定相同的vni。与优选实施例1相同。

第五步,配置esi基础配置。与优选实施例1相同。

第六步,配置esi过滤配置。与优选实施例1相同,只除了给每个esi配置一个esiip和一个与该esiip对应的28位ip地址掩码,所述esiip的高16位与所述源ip专用黑洞路由前缀的高16位相同。同一esi在不同pe上esiip高28位均相同,不同esi的esiip的高28位均不同。

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

以图1所示的evpn拓扑为例,端到端报文转发部分的处理步骤包括:

第一步,当pe1结点从本地ac1收到一个arp报文b1时,所述evpn基础设施模块转发b1报文的两份拷贝b1b、b1c的过程与优选实施例1是一样的,只是所述b1b和b1c的vxlan封装外层的源ip变为esi_ip2,所述esi_ip2为ac1所属物理口对应的esi上配置的esiip;

第二步,当pe2结点收到所述b1b报文时,所述evpn基础设施模块转发b1b报文的过程与优选实施例1是一样的,esi过滤的结果也是一样的,只是esi过滤规则变为比较b1b报文的源ip与各出口ac所属物理口对应的esi上配置的esiip。

第三步至第四步,除vxlan封装外层源ip的值以外,与优选实施例1均相同。

值得注意的是,由于rt-2路由的bgp下一跳为路由源节点的evpnrouterid,因此从同一esi的不同邻接pe上学到的mac发布的rt-2路由的bgp下一跳是不同的,导致本模块对于转发到同一远端esi的不同邻接pe的vxlan报文的外层目的ip是不同的,因而也就无法支持逐流的负荷分担模式,但是,它仍然支持perserviceload-balance,只要ce上可以进行负荷分担;此时pe3上相当于按照由ce1发出的报文w所经过的pe节点决定转发ce3给报文w回应的报文u经过哪些pe节点,从而实现当w经过的pe结点改变时,u经过的pe结点也改变,并且,不同的w报文走不同pe结点时,不同的u也走不同的pe结点,从而实现一种perserviceload-balance效果。

此外,值得一提的是,作为所述b1c报文源ip的esiip,实际上是所述b1报文的一个上下文熵值,因此,当同样的所述b1报文从pe1节点不同的ac进入pe1节点并生成b1c报文时,所述b1c报文在这两种情况下在p1结点上经过负载均衡流程处理所选择的转发路径是不相同的。

需要说明的是,所述上下文熵值为由接收所述b1报文的ac接口对应的一个或多个特征配置信息经过映射得到的熵值。在本例中,所述特征配置信息包括所述ac接口所属主接口对应的esi信息,所述esiip就代表了所述esi的熵,当与b1报文具有相同的字节序例的x1报文从另一个ac接口接收到时,换句话说,x1报文与b1报文唯一的不同是具有不同的上下文,所述上下文熵值就标识了所述上下文。

优选实施例3

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

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

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

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

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

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

本模块作为软件实现,需要实现一种插件机制,具体为:在按rfc7348转发流程将所述第一报文封装成所述第x报文,所述第x报文是一个不带链路层封装(比如mac头)的ip报文;然后,以第x报文作为参数,先调用ip第一插件,以所得结果作为参数,再调用ip第二插件。在接收所述第y报文并确定第y报文所属的evpn实例之后,在对所述第y报文进行所述evpn实例中的处理之前,以所述第y报文为参数,调用ip第三插件,以所得报文在evpn实例中继续按rfc7348中定义的流程处理,得到一个或者多个第z报文,以及每个第z报文的出口ac,以所述第z报文及其出口ac为参数,调用所述ip第四插件,若所述ip第四插件没有将所述第z报文丢弃,则继续按[evpnoverlay]中的流程处理,包括根据目的ip给所述第z报文添加链路层封装。

需要说明的是,所述插件机制可以是函数调用、回调函数、多态函数也可以是独立插件。

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

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

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

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

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

与优选实施例1不同,本模块不需要配置所述源ip专用黑洞路由前缀。

与优选实施例1不同,本模块的每个esi具有一个同名虚接口,称为esi虚接口,该虚接口具有loopback接口的所有功能。

与优选实施例1不同,本模块的esiip配置在所述esi虚接口上,且配置为128位ipv6掩码。

与优选实施例1不同,本模块以所述esiip覆盖所述第x报文的源ip,然后将修改后的报文返回给evpn基础设施模块继续处理。

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

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

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

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

5:实现所述ip第四插件模块的具体方法如下:

若所述第z报文的出口ac的esi为0,则将所述第z报文直接返回给所述evpn基础设施模块。

否则,本模块将所述第z报文的源ip与所述第z报文的出口ac所属的主接口对应的esi对应的esi虚接口的esiip进行比较,如果所述源ip与所述esiip相等,则将报文丢弃,否则,将报文返回给所述evpn基础设施模块继续处理。

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

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

按现有技术实现基本的ipv6路由和ipv6转发功能,所述ipv4转发功能中包括基于mc-lag的负载均衡功能,负载均衡采用ip五元组作为算熵因子。

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

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

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

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

以图1所示的evpn拓扑为例,网络及业务部署部分的处理步骤包括:

第一步,选定各结点所采取的实现。与优选实施例1相同,只是各pe结点和p结点均为本优选实施例中所定义的结点。

第二步,配置并发布各pe结点的evpnrouterid。与优选实施例1相同。

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

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

第五步,配置esi基础配置。与优选实施例1中的对应步骤相同,只除了本优选实施例中pe结点只发布rt-4路由以外。

第六步,配置esi过滤配置。与优选实施例1中的对应步骤相同,只除了用esiip取代了优选实施例1中的esi别名值以外,此外,还要保证esiip在underlay网络上是路由可达的。

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

以图1所示的evpn拓扑为例,端到端报文转发部分的处理步骤包括:

第一步,当pe1结点从本地ac1收到一个arp报文b1时,所述evpn基础设施模块转发b1报文的两份拷贝b1b、b1c的过程与优选实施例1是一样的,只是所述b1b和b1c的vxlan封装外层的源ip变为esi_ip3,所述esi_ip3为ac1所属物理口对应的esi上配置的esiip;

第二步,当pe2结点收到所述b1b报文时,所述evpn基础设施模块转发b1b报文的过程与优选实施例1是一样的,esi过滤的结果也是一样的,只是esi过滤规则变为比较b1b报文的源ip与各出口ac所属物理口对应的esi上配置的esiip。

第三步至第四步,除vxlan封装的外层源ip的值之外,与优选实施例1均相同。

显然,综合第一步和第二步,已经可以证明,本优选实施例对于从esi1(ac1)收到的bum报文完全不可能再从esi1的其它邻接链路(ac2)转发出去;同时,本发明对于从esi1(ac1)收到的bum报文转发到esi2(ac4和ac5)时,最多只会转发一份出去(因为其中只有一条ac是df角色)。并且,rfc7348本来是不支持esi特性的,要支持esi特性必须引入[evpnoverlay]控制面,至少引入其中的rt-4以及“localbias”机制(包括rt-1路由),而本优选实施例只引入rt-4路由,就使rfc7348具有了esi特性。

此外,值得注意的是,与优选实施例1中不同,在pe2和pe3转发b1b和b1c两个报文的同时,还会按rfc7348进行数据面的mac学习,虽然mac学习流程是标准的rfc7348流程,但是,由于b1b和b1c的vxlan封装的外层源ip的值与标准的rfc7348中的vxlan封装的外层源ip的值是不同的,因而mac学习的结果也是不同的,但都是能正常进行vxlan业务的单播转发的,因此,本优选实施例没有详细列出单播报文的转发步骤。

优选实施例4

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

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

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

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

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

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

本模块将第一报文封装成第二报文所用的封装与优选实施例3中采用的vxlan封装相比,去掉了udp头和vxlan头,从而与srv6中目的ip为具有end.dx2类型的srv6功能function的分段标识符sid的报文具有相同的格式;这种封装格式在本发明中称为甲型扩展srv6封装,如图10,图11中的格式b所示,其中图11是图10的展开,包括了从源ip到以太层载荷数据之间的各字段的详细对比;需要说明的是,其中,所述srv6、end.dx2、sid和function等概念即draft-filsfils-spring-srv6-network-programming-01(以下简称[srv6-program])的section4中所述srv6、end.dx2、sid和function概念。

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

与优选实施例3不同,当所述第三报文的目的ip命中所述esi虚接口的直连网段路由时,以报文目的ip的低12字节作为内层vlanid,以报文目的ip的低24字节中的高12字节作为外层vlanid,以<所述内层vlanid,所述外层vlanid,所述esi虚接口>查找对应的子接口,以该子接口绑定的evpn实例作为报文所属的evpn实例,以该实例的evpn实例接口的ip地址对应的对所述第三报文解码的格式作为对所述第三报文解码的格式。值得注意的是,若内外层vlanid均为0x3ff,则ac为主接口,若内层vlanid为0x3ff,则ac为配置了单层vlanid的子接口,否则ac为配置了双层vlan的子接口。

与所述vpn基础设施模块不同,本模块所实现的插件机制与优选实施例3中相同。

值得一提的是,所述第三报文的目的ip实际上是配置所述目的ip的pe节点上的一个带参数的本地sid,所述带参数的本地sid概念即[srv6-program]的section3中所述“loc:funct:args”格式的本地sid概念。本模块实际上是定义了一种新型的srv6args以及其对应的srv6function,所述srv6function概念即[srv6-program]section4中所述srv6fucntion概念。此新型srv6function表示对应的本地sid中的低24位中包含的args用于查找该sid对应的esi上的匹配对应vlanid信息的子接口,并将所述第三报文在该子接口所属的evpn实例中转发。本优选实施例可以与srv6的sr-policy功能结合使用,此时,按照所述sr-policy的报文封装规范,所述第三报文的目的ip起初并不是目的pe结点(即本模块的执行主体)上的所述带参数的本地sid,但是,所述第三报文的目的ip在经过各个非业务感知结点或目的pe结点的srv6转发流程的修改,最终会在所述目的pe结点上变为所述本地sid,并按所述新型srv6fuction的规则对所述第三报文进行处理。

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

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

与优选实施例2不同,本模块的esiip配置在所述esi虚接口上,且配置为104位ipv6掩码。

与优选实施例2相同,本模块以所述esiip覆盖所述第二报文的源ip,然后将修改后的报文返回给evpn基础设施模块继续处理。

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

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

与优选实施例3不同,本模块以所述第一报文的入口ac的内层vlanid作为evpn基础设施模块输入的报文的源ip的低12位,以所述第一报文的入口ac的外层vlanid作为所述源ip的低24位中的高12位,其中,当所述入口ac不是子接口时,所述内外层vlanid均视为0x3ff,当所述入口ac是只配置了单层vlanid的子接口时,所述内层vlanid视为0x3ff。然后本模块将修改后的报文返回给所述evpn基础设施模块。

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

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

5:实现所述ip第四插件模块的具体方法如下:

若所述第z报文的出口ac的esi为0,则将所述第z报文直接返回给所述evpn基础设施模块。

否则,本模块将所述第z报文的源ip与所述第z报文的出口ac所属的主接口对应的esi对应的esi虚接口的esiip及其掩码进行匹配,如果所述源ip能够匹配所述esiip及其掩码,则将报文丢弃,否则,将报文返回给所述evpn基础设施模块继续处理。

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

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

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

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

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

以图1所示的evpn拓扑为例,网络及业务部署部分的处理步骤包括:

第一步,选定各结点所采取的实现。与优选实施例3相同,只是各pe结点和p结点均为本优选实施例中所定义的结点。

第二步,配置并发布各pe结点的evpnrouterid。与优选实施例3相同。

第三步,建立图1所示的普通vxlan网络并配置各vxlan隧道。与优选实施例3中的对应步骤相同。

第四步,按图1所示建立一条vxlan业务。与优选实施例3中的对应步骤相同。

第五步,配置esi基础配置。与优选实施例3中的对应步骤相同。

第六步,配置esi过滤配置。与优选实施例3中的对应步骤相同,只除了所述esiip对应的ip地址掩码为104位掩码以外,此外,还要由配置保证所述esiip对应的104位路由前缀在underlay网络中是可路由的,并且,同一esi在不同pe上发布的所述104位路由前缀是相同的,并且,不同esi发布的所述104位路由前缀均不同。

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

以图1所示的evpn拓扑为例,端到端报文转发部分的处理步骤包括:

第一步,当pe1结点从本地ac1收到一个arp报文b1时,所述evpn基础设施模块转发b1报文的两份拷贝b1b、b1c的过程与优选实施例3是一样的,只是所述b1b和b1c采用所述扩展srv6封装且其外层的源ip的高104位为esi_ip4的高104位,所述esi_ip4为ac1所属物理口对应的esi上配置的esiip;

第二步,当pe2结点收到所述b1b报文时,所述evpn基础设施模块转发b1b报文的过程与优选实施例3是一样的,esi过滤的结果也是一样的,只是esi过滤规则变为比较b1b报文的源ip的高104位与各出口ac所属物理口对应的esi上配置的esiip的高104位。

第三步至第四步,除报文封装格式采用扩展srv6格式以及外层源ip的值不同之外,与优选实施例3均相同。

值得注意的是,在本优选实例中,esiip既在源ip中,又可能在目的ip中。当所述第一报文为广播报文时,目的ip中不会有esiip,但当所述第一报文为单播报文且为已知单播报文时,目的ip中也会包含esiip的高位部分。

优选实施例5

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

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

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

与优选实施例4中不同,本模块按[evpnoverlay]实现信令和转发流程。

与优选实施例4中不同,本模块在对所述evpn实例发布evpn路由时,均以所述evpn实例对应的evpn实例接口的ip地址作为相应路由的bgp下一跳。所述evpn路由包括rt-4路由、rt-3路由、rt-2路由和rt-1perevi路由。

与优选实施例4中不同,本模块当接收的所述第y报文的目的ip为某个evpn实例接口的ip地址时,确定所述y报文属于所述evpn实例接口对应的evpn实例。

与优选实施例4中不同,本模块设定所配置的esi必须选用满足如下要求的esi格式:该esi中存在一个字段,本节点上不同esi中该字段的值必须是不同的,为描述简便起见,所述字段称为特选字段。

值得一提的是,在rfc7432section5中定义的type3、type4和type5中都存在一个这样的特选字段,而且所述特选字段都叫ldv(localdiscriminatorvalue)。

与优选实施例4中不同,本模块设定所配置的esi中的所述特选字段的位宽如果大于32位,则本模块限定只使用其中的低32位。

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

本模块支持配置一个loopback接口地址,该loopback接口地址配置96位子网掩码,并将该loopback接口的ip地址的高96位称为中灶前缀。该loopback接口将在ip路由表中形成一个对应于该中灶前缀的96位路由前缀,并在underlay网络中发布该路由前缀;并且,本结点在接收到一个目的ip匹配该路由前缀的报文时,都认为是该loopback接口的报文,与目的ip为该loopback接口的ip地址的报文进行同样的处理。

本模块以所述中灶前缀覆盖所述evpn基础设施模块输入进来的报文的源ip的高96位,然后将修改后的报文返回给evpn基础设施模块。

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

本模块以被所述evpn基础设施模块输入的报文封装的所述第一报文的入口ac所属的主接口对应的esi中的所述特选字段的值与所述第一报文的源mac的低32位进行接位逻辑异或运算,并以其结果作为所述源ip的低32位,然后将修改后的报文返回给evpn基础设施模块。

值得注意的是,所述源mac的低32位就是所述第一报文的本征熵值,所述特选字段以及所述源ip的高96位就是报文的上下文熵值。用所述本征熵值对源ip进行加密,可以使得当所述第一报文的源mac发生变化时,对应的所述第二报文在p1结点上能选择不同的负载均衡路径。

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

本模块确定的所述第y报文中在进行与ip地址相关的处理之前需要复原的二进制位的位置为所述源ip地址的低32位。复原采用如下方法:先用与所述ip第二插件模块相同的算法计算出所述第y报文内层承载的所述第四报文的本征熵值,然后,用所述本征熵值与所述源ip地址的低32位进行接位逻辑异或运算,所得结果保存在所述源ip地址的低32位中,则新的源ip地址的低32位中就保存了在所述ip第二插件模块对所述源ip地址加密之前的值,即所述特选字段的值。

然后,将修改后的报文返回给所述evpn基础设施模块。

5:实现所述ip第四插件模块的具体方法如下:

若所述第z报文的出口ac的esi为0,则将所述第z报文直接返回给所述evpn基础设施模块。

否则,本模块将所述第z报文的源ip的低32位与所述第z报文的出口ac所属的主接口对应的esi中的所述特选字段进行比较,将所述第z报文的源ip的高96位与所述中灶前缀的高96位进行比较,如果均相等,则将报文丢弃,否则,将报文返回给所述evpn基础设施模块继续处理。

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

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

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

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

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

以图1所示的evpn拓扑为例,网络及业务部署部分的处理步骤包括:

第一步,选定各结点所采取的实现。与优选实施例4相同,只是各pe结点和p结点均为本优选实施例中所定义的结点。

第二步,配置并发布各pe结点的evpnrouterid。与优选实施例4相同。

第三步,建立图1所示的vxlanevpn网络。与优选实施例4相同。

第四步,按图1所示建立一条vxlanevpn业务,并在每个pe结点上为该vxlanevpn业务指定相同的vni。与优选实施例4相同。

第五步,配置esi基础配置。与优选实施例4相同。

第六步,配置esi过滤配置。与优选实施例4相同,只除了每结点配置一个96位掩码的loopback接口,并指定以该loopback接口的ip地址的高96位(称为中灶前缀)作为本地任何esi的esiip的高96位,以esi中的本地区分值字段作为esiip的低32位。同一vpn域中不同pe结点上所述中灶前缀是不同的。

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

以图1所示的evpn拓扑为例,端到端报文转发部分的处理步骤包括:

第一步,当pe1结点从本地ac1收到一个arp报文b1时,所述evpn基础设施模块转发b1报文的两份拷贝b1b、b1c的过程与优选实施例4是一样的,只是所述b1b和b1c的vxlan封装外层的源ip变为esi_ip5,所述esi_ip5为ac1所属物理口对应的esi上配置的esiip;

第二步,当pe2结点收到所述b1b报文时,所述evpn基础设施模块转发b1b报文的过程与优选实施例4是一样的,esi过滤的结果也是一样的,只是esi过滤规则变为比较b1b报文的源ip的低32位与各出口ac所属物理口对应的esi的本地区分值字段。

第三步至第四步,除扩展srv6封装外层源ip的值以外,与优选实施例4均相同。

优选实施例6

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

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

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

与优选实施例1中不同,本模块没有实现[evpnoverlay]中的rt-1路由和rt-2路由对应的功能。

值得一提的是,这意味着本模块基于rfc7348的mac学习流程来学习远端的mac条目,而不是通过rt-2路由来获知远端的mac条目。

与优选实施例1中不同,本模块中esiip不仅作为所述第x报文的源ip地址,还作为其目的ip地址,这是由rfc7348中的mac学习流程决定的。因此,本模块中的esiip必须在underlay网络中是路由可达的。

与优选实施例1中不同,本模块设定所配置的esi必须选用一种新的esi格式,它由三元组<esitype,vpndomain,gdv>来标识,其中,esitype为tbd1(具体值可能需由iana定义,tbd2、tbd3、tbd4与此同,后不赘述),vpndomain为一个vpn域的标识符,gdv即globaldiscriminatorvalue为esi在该vpn域中的标识符。图9所示即所述新esi格式的一种可能实现,但不限于此。为实现方便起见,不失一般性,本模块限定vpndomain的值不大于0x0ffffff,gdv的值不大于0x0ff。并且,以vpndomain的值作为高24位,以esialias的值作为低24位可以得到一个ipv4地址,此ip地址记为<domain:gdv>。

与优选实施例1中不同,本模块中每个esi具有一个同名虚接口,称为esi接口,所述<domain:gdv>即为所述esi接口的ip地址,称为esiip,且所述vpndomain中的其它各esi对应的esiip,均与所述esiip不同,且所述vpndomain中的其它各esi对应的esiip的高24位,均与所述esiip的高24位相同。

与优选实施例1中不同,本模块不调用所述ip第二插件模块和所述ip第三插件模块。

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

本模块以所述<domain:gdv>作为源ip地址覆盖所述evpn基础设施模块输入进来的报文的源ip,然后将修改后的报文返回给evpn基础设施模块。

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

本优选实施例中不存在此模块。

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

本优选实施例中不存在此模块。

5:实现所述ip第四插件模块的具体方法如下:

若所述第z报文的出口ac的esi为0,则将所述第z报文直接返回给所述evpn基础设施模块。

否则,本模块将所述第z报文的源ip的低8位与所述第z报文的出口ac所属的主接口对应的esi的gdv字段进行比较,如果相等,则将报文丢弃,否则,将报文返回给所述evpn基础设施模块继续处理。

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

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

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

与优选实施例3中不同,本模块基于ipv4路由和转发技术并处理ipv4报文。

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

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

以图1所示的evpn拓扑为例,网络及业务部署部分的处理步骤包括:

第一步,选定各结点所采取的实现。与优选实施例1相同,只是各pe结点和p结点均为本优选实施例中所定义的结点。

第二步,配置并发布各pe结点的evpnrouterid。与优选实施例1相同。

第三步,建立图1所示的vxlanevpn网络。与优选实施例1相同。

第四步,按图1所示建立一条vxlanevpn业务,并在每个pe结点上为该vxlanevpn业务指定相同的vni。与优选实施例1相同,只除了关闭rt-2路由和rt-1路由的发布,并打开数据面的mac学习以外。

第五步,配置esi基础配置。与优选实施例1相同。

第六步,配置esi过滤配置。与优选实施例1相同,只除了每个esi采用一种类型为tbd1的esi格式以外。所述类型为tbd1的esi格式由一个在同一vpn域中各esi取统一的值的字段(记为a),和一个在vpn域中每个esi取不同值的字段(记为b)组成。值得一提的是,所述esi的esiip就由a的低24位和b的低8位组成。

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

以图1所示的evpn拓扑为例,端到端报文转发部分的处理步骤包括:

第一步,当pe1结点从本地ac1收到一个arp报文b1时,所述evpn基础设施模块转发b1报文的两份拷贝b1b、b1c的过程与优选实施例1是一样的,只是所述b1b和b1c的vxlan封装外层的源ip变为esi_ip6,所述esi_ip6为ac1所属物理口对应的esi上配置的esiip;

第二步,当pe2结点收到所述b1b报文时,所述evpn基础设施模块转发b1b报文的过程与优选实施例1是一样的,esi过滤的结果也是一样的,只是esi过滤规则变为比较b1b报文的源ip与各出口ac所属物理口对应的esi上配置的esiip。

第三步至第四步,除vxlan封装外层源ip的值以外,与优选实施例1均相同。

值得注意的是,在去掉rt-1路由和rt-2路由之后,由于远端mac条目采用数据面的mac学习获得,这意味着,只有实际存在数据流来刷新mac条目的pe结点上,mac条目才会稳定存在,否则的话,很快就老化掉了,相比[evpnoverlay]等evpn控制面来说,本优选实施例大大节约了mac条目所占用的内存资源以及cpu处理资源,这本来是rfc7623定义的pbbevpn的优点,本优选实施例也一并具有了。同时,本优选实施例相比rfc7348来说,还能支持esi等特性。这是本优选实施例的一项重要的有益效果。

优选实施例7

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

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

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

与优选实施例6中不同,本模块还实现了[evpnoverlay]中的rt-1路由对应的功能。值得一提的是,由于本模块与优选实施例6中同样没有实现rt-2路由对应的功能,因此,数据面的远端mac学习流程仍然是存在的,并且,该远端mac学习流程仍然同优选实施例6一样,试图使用远端esi的esiip作为所述第x报文的目的ip。

与优选实施例6中不同,本模块中esi接口的ip地址<domain:gdv>在underlay网络中是不发布的,因而esiip不再作为所述第x报文的目的ip。

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

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

与优选实施例6中不同,本模块还要替换所述第x报文的目的ip,方法为:以所述目的ip的高24位作为目标esi的vpndomain字段的值,以所述目的ip的低8位的值作为目标esi的gdv的值,然后找到所述目标esi对应的rt-1路由以所述rt-1路由的bgpnexthop的值作为所述目的ip的新的值,形成第y报文。但是,只有当所述第一报文是已知单播报文时,才需要替换目的ip,当所述第一报文是bum报文时,不需要替换目的ip。

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

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

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

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

5:实现所述ip第四插件模块的具体方法如下:

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

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

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

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

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

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

以图1所示的evpn拓扑为例,网络及业务部署部分的处理步骤包括:

第一步,选定各结点所采取的实现。与优选实施例6相同,只是各pe结点和p结点均为本优选实施例中所定义的结点。

第二步,配置并发布各pe结点的evpnrouterid。与优选实施例6相同。

第三步,建立图1所示的vxlanevpn网络。与优选实施例6相同。

第四步,按图1所示建立一条vxlanevpn业务,并在每个pe结点上为该vxlanevpn业务指定相同的vni。与优选实施例6相同,只除了关闭rt-2路由的发布并打开数据面的mac学习之外。

第五步,配置esi基础配置。与优选实施例6相同。

第六步,配置esi过滤配置。与优选实施例6相同,只除了esiip在underlay网络上不是可路由的以外。

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

以图1所示的evpn拓扑为例,端到端报文转发部分的处理步骤包括:

第一步,当pe1结点从本地ac1收到一个arp报文b1时,所述evpn基础设施模块转发b1报文的两份拷贝b1b、b1c的过程与优选实施例1是一样的,只是所述b1b和b1c的vxlan封装外层的源ip变为esi_ip7,所述esi_ip7为ac1所属物理口对应的esi上配置的esiip;

第二步,当pe2结点收到所述b1b报文时,所述evpn基础设施模块转发b1b报文的过程与优选实施例1是一样的,esi过滤的结果也是一样的,只是esi过滤规则变为比较b1b报文的源ip与各出口ac所属物理口对应的esi上配置的esiip。

第三步至第四步,除vxlan封装外层源ip的值以外,与优选实施例1均相同。

值得注意的是,本优选实施例实际上解决了优选实施例6中要求所述第三报文的第一ip必须在underlay网络中路由可达的问题,这是因为优选实施例6的远端mac条目是基于rfc7348中的数据面mac学习流程而获知的,这意味着,对于ce1和ce3之间的一个双向通信会话来说,在该会话的一个通信方向上作为第三报文的源ip的ip地址,在同一会话的另一个通信方向上必然会作为目的ip,作为目的ip就必须在underlay网络中可路由。但是,在引入本方案后,虽然mac学习流程没有变,但是,在转发流程中,所述第三报文的目的ip被替换成相应rt-1路由的bgp下一跳ip地址,所述bgp下一跳ip地址本身就是在underlay网络中可路由的ip地址,并且,作为一个通信方向上的第三报文的源ip的ip地址不会再被作为相反通信方向上的目的ip,因此,所述第一ip就具有了不占用underlay网络ip地址资源的必要条件。这是本优选实施例的一个重要的有益效果。

优选实施例8

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

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

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

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

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

与优选实施例7不同,本模块将所述第x报文的ipv4头中的协议类型字段改为tbd2。

与优选实施例7不同,本模块若接收到的第y报文的ipv4头中的协议类型字段为tbd2,则本模块认为所述第y报文的ipv4头内层承载的是udp报文,并且,所述第y报文的源ip不在目的ip所查的路由表中,而是在第二路由表中。对报文的进一步解析根据udp以内的报文头按照与优选实施例7相同的方法进行。值得注意的是,即使所述目的ip所查的路由表中有一条路由在形式上能匹配所述源ip,它也跟所述源ip无关,因为它们不在同一个路由空间。

与优选实施例7不同,本模块对所述第y报文的处理,如果涉及源ip的路由,则以第二路由表为准。值得注意的是,正常转发中一般不会有这样的处理,这样的处理一般是目的ip不可达、ttl耗尽等异常情况,此时所述第y报文本身已经无法正常处理了,才会进入这些处理流程,因此,第二路由表不会影响所述第y报文的正常转发性能;此外,还有一种情况需要用到第二路由表,那就是在underlay网络中开启了源ip可达性检查时,需要对所述ipv4头中协议类型为tbd2的ip报文忽略源ip可达性检查,或者,在第二路由表中进行源ip可达性检查。

与优选实施例7不同,本模块要将所述esi接口的esiip在underlay网络中发布,但是,发布时需要指明所述路由是第二路由表中的路由。

与优选实施例7不同,本模块的underlay路由协议在收到一条第二路由表中的路由时,需要将其加入到第二路由表中,在相应的第二路由表条目中表示它的下一跳是一个第一路由表中的ip地址还是第二路由表中的ip地址。

与优选实施例7不同,本模块在以所述第y报文的源ip查所述第二路由表时,若所得下一跳还是一个在第二路由表中的ip地址,则以所述下一跳地址继续在所述第二路由表中迭代,直到找到一个在所述目的ip所查的路由表中的下一跳地址为止。

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

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

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

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

5:实现所述ip第四插件模块的具体方法如下:

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

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

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

本模块实现本优选实施例中所述evpn基础设施模块中与接收ipv4头中协议类型为tbd2的ip报文的处理流程相关的所有underlay路由、转发、处理流程。

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

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

以图1所示的evpn拓扑为例,网络及业务部署部分的处理步骤包括:

第一步,选定各结点所采取的实现。与优选实施例7相同,只是各pe结点和p结点均为本优选实施例中所定义的结点。

第二步,配置并发布各pe结点的evpnrouterid。与优选实施例7相同。

第三步,建立图1所示的vxlanevpn网络。与优选实施例7相同。

第四步,按图1所示建立一条vxlanevpn业务,并在每个pe结点上为该vxlanevpn业务指定相同的vni。与优选实施例7相同。

第五步,配置esi基础配置。与优选实施例7相同。

第六步,配置esi过滤配置。与优选实施例7相同,只除了esiip需要在第二路由表中发布以外,这意味着需要使能igp路由发布第二路由表中的路由的能力。

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

以图1所示的evpn拓扑为例,端到端报文转发部分的处理步骤包括:

第一步,当pe1结点从本地ac1收到一个arp报文b1时,所述evpn基础设施模块转发b1报文的两份拷贝b1b、b1c的过程与优选实施例1是一样的,只是所述b1b和b1c的vxlan封装外层的源ip变为esi_ip8,所述esi_ip8为ac1所属物理口对应的esi上配置的esiip;

第二步,当pe2结点收到所述b1b报文时,所述evpn基础设施模块转发b1b报文的过程与优选实施例1是一样的,esi过滤的结果也是一样的,只是esi过滤规则变为比较b1b报文的源ip与各出口ac所属物理口对应的esi上配置的esiip。

第三步至第四步,除vxlan封装外层源ip的值以外,与优选实施例1均相同。

优选实施例9

除了underlay使用ipv6并且以ipv6报文头的下一报头字段的值为tbd3表示所述第x报文或所述第y报文ip头内层承载的是udp报文且所述x报文或第y报文的源ip在第二路由表中之外,与优选实施例8中相同。

优选实施例10

除了以太头中的ethertype字段的值为tbd4表示以太头内层所承载的报文为ip报文且所述ip报文的源ip在所述第二路由表中之外,与优选实施例8中相同。

值得注意的是,通过将ipv4头中的协议类型字段或ipv6头中的下一报头字段或以太头的ethertype字段设置为指定值的办法来表示对应ip头中的源ip与目的ip不在同一路由表中,这是一个具有通用性的做法,并不受源ip中是否含有所述第一ip的限制,只是说,当源ip中含有所述第一ip时,这三个方案可以使得本发明的第一ip不消耗underlay网络中的ip地址资源,具有更好的效果,因此记载在这里。

值得注意的是,在优选实施例8中当所述第一报文为bum报文时,转发依靠的是入口复制隧道,但其实也可以采用ip组播组,在vxlanevpn中如何采用ip组播组,属于现有技术,将此现有技术与优选实施例8进行组合,对于本领域的技术人员来说是显而易见的,此时,当所述第三报文又具备所述ethertype字段的值为tbd4的条件时,可以不进行urpf检查,或者,在指定路由表中进行urpf检查。

优选实施例11

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

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

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

与优选实施例5不同,本模块所发出的所述第x报文使用的封装格式与该优选实施例所用封装格式相比,增加了srh头,srh头的位置图12中的格式a所示,该图中格式b即为优选实施例5所用格式。所述srh头为ietf在draft-ietf-6man-segment-routing-header(以下简称“[srh]”)中定义的分段路由头,在[srh]中定义了所述srh头的格式,包括segmentlist字段。

与优选实施例5不同,本模块所接收的所述第y报文也采用与所述第x报文相同的封装格式。

值得注意的是,所述srh的添加和剥离均不由本模块进行,但本模块需要识别[srh]封装并能收发具有[srh]封装的报文。

与优选实施例5中不同,本模块不限定所配置esi的类型和格式。

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

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

与优选实施例5中不同,不需要配置所述中灶前缀。

与优选实施例5不同,本模块直接将所述第一报文的入口ac所属的主接口对应的esi(10字节)作为16字节熵值的低10字节,将evpnrouterid的高6字节作为16字节熵值的高6字节。

与优选实施例5不同,本模块使用了所述[srh]封装,并在其中的srh头的segmentlist数组字段的segmentlist[0]中填写所述熵值。

然后,本模块将修改后的报文返回给evpn基础设施模块。

值得注意的是,本模块并没有修改所述第x报文的源ip字段。

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

本模块直接将所述evpn基础设施模块输入的报文原封不动地返回给evpn基础设施模块。

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

本模块直接将所述evpn基础设施模块输入的报文原封不动地返回给evpn基础设施模块。

5:实现所述ip第四插件模块的具体方法如下:

若所述第z报文的出口ac的esi为0,则将所述第z报文直接返回给所述evpn基础设施模块。

否则,本模块以从所述第z报文的srh头的segmentlist[0]字段的低10字节中读出的值作为一个esi的值,若所述esi的值与所述第z报文的出口ac所属主接口对应的esi的值相同,则将所述第z报文丢弃。否则将所述srh头剥掉后,将修改后的报文返回给所述vpn基础设施模块继续进行处理。

值得注意的是,所述esi值可以用于报文统计,将从远端不同esi过来的报文的统计数据记录到不同的计数器中,从而提高报文统计的精确性,另外,出口pe上可以配置将指定入口esi的报文镜像到监控服务器上分析,或者,出口pe上可以配置对从指定入口esi过来的所述第三报文进行指定的qos处理,这是本优选实施例的一个有益效果,现有rfc7348或vxlanepvn中由于报文中不含有与入口esi有关的信息,因而无法进行类似处理。

值得一提的是,所述第三报文的目的ip实际上是配置所述目的ip的pe节点上的一个本地sid(所述本地sid概念参见优选实施例4)。本模块实际上是定义了对应于该本地sid的一种新型的srv6function(所述srv6function概念参见优选实施例4),此新型srv6function表示srh头中的segmentlist[0]字段如果与所述目的ip不同,则segmentlist[0]字段的低10字节是一个esi值,并且,当该esi值与该srh所属报文的出口ac所属主接口对应的esi值相同时,该srh所在的报文将被丢弃。本优选实施例也可以与srv6的sr-policy功能结合使用,具体原理参见优选实施例4。

此外,值得注意的是,与vxlan封装类似的evpn封装除srv6封装外,还有nvgre、geneve、vxlangpe封装,如何用它们完成与vxlan封装完成的指定功能在一定意义上等价的功能,在现有技术中都有定义,而如何用srv6封装完成与vxlan封装完成的指定功能在一定意义上等价的功能,在本说明书中的几个实施例中已经有了比较充分的体现,综合这些,本领域的技术人员不难得到用所述nvgre、geneve、vxlangpe封装完成与本优选实施例在一定意义上等价的功能的办法。比如,geneve封装中的variablelengthoptions可以用于承载本实施例中srh头所承载的内容,vxlan-gpe封装的nextprotocol可以指示内层报文中是否含有本优选实施例中srh头所承载的内容,nvgre封装的protocoltype可以指示内层报文中是否含有本优选实施例中srh头所承载的内容。其中,geneve的基础标准为draft-ietf-nvo3-geneve,vxlan-gpe的基础标准为draft-ietf-nvo3-vxlan-gpe,nvgre的基础标准为rfc7637,可资参考。

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

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

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

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

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

以图1所示的evpn拓扑为例,网络及业务部署部分的处理步骤包括:

第一步,选定各结点所采取的实现。与优选实施例5相同,只是各pe结点和p结点均为本优选实施例中所定义的结点。

第二步,配置并发布各pe结点的evpnrouterid。与优选实施例5相同。

第三步,建立图1所示的vxlanevpn网络。与优选实施例5相同。

第四步,按图1所示建立一条vxlanevpn业务,并在每个pe结点上为该vxlanevpn业务指定相同的vni。与优选实施例5相同。

第五步,配置esi基础配置。与优选实施例65相同。

第六步,配置esi过滤配置。与优选实施例5相同,只除了使能srh编解码能力,以及指定将esi整体的值存入srh中。

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

以图1所示的evpn拓扑为例,端到端报文转发部分的处理步骤包括:

第一步,当pe1结点从本地ac1收到一个arp报文b1时,所述evpn基础设施模块转发b1报文的两份拷贝b1b、b1c的过程与优选实施例5是一样的,只是所述b1b和b1c的采用的扩展srv6封装增加了srh头,所述srh头的所述segmentlist[0]的低10字节的值为10字节esi的值;

第二步,当pe2结点收到所述b1b报文时,所述evpn基础设施模块转发b1b报文的过程与优选实施例5是一样的,esi过滤的结果也是一样的,只是esi过滤规则变为比较b1b报文的srh头中所述segmentlist[0]的低10字节的值与各出口ac所属物理口对应的10字节esi的值。

第三步至第四步,除外层源ip的值不同以及用srh头进行esi过滤以外,与优选实施例6均相同。

优选实施例12

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

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

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

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

本模块与优选实施例2中的ip第二插件模块相同。

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

本模块根据所述第一ac的根叶属性修改所述evpn基础设施模块输入的报文的源ip的最低位。方法是:当所述第一ac的根叶属性的值为leaf的ac时,本模块将所述源ip的最低位的值置为1,当所述第一ac为root属性的ac时,本模块将所述源ip的最低位的值置为0。

本模块将修改后的报文返回给所述evpn基础设施模块。

值得注意的是,同一es上可以有很多子接口,这些子接口可能有的是root属性,有的是leaf属性,因此,从同一es上的不同子接口接收到所述第一报文时所发出的对应的所述第二报文的源ip是可能不相同的。

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

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

5:实现所述ip第四插件模块的具体方法如下:

本模块当所述第三报文的源ip的最低位为1且所述第z报文的出口ac的根叶属性的值为leaf时,直接丢弃所述第z报文。否则,若所述出口ac的esi为0,则将报文原封不动地返回所述evpn基础设施模块继续转发。需要说明的是,不失一般性,本模块以所述第三报文的源ip的最低位为1表示该源ip在其入口pe上对应的所述第一ac为的根叶属性的值为leaf,实际上,以所述源ip的最低位为0表示所述根叶属性的值为leaf,以1表示其值为root,在技术上也是可以仿照本优选实施例实现的,此处并非限定,并且,所述源ip中表示根叶属性的位也不一定是最低位,此处选择最低位来表示,仅仅是为了简单起见。

值得注意的是,当所述第z报文的出口ac对应的esi非零且其根叶属性的值为leaf时,将所述第三报文的源ip记为ip3,将所述出口ac对应的第二ip记为ip4,将0x01记为flag,则上述丢弃所述第z报文的条件实际上相当于当(ip3&ip4)&flag=flag时丢弃报文。

否则,本模块将所述第三报文的源ip与所述出口ac所属的主接口对应的esi对应的esiip及其掩码进行路由匹配,如果所述源ip能够匹配所述esiip及其掩码,则将报文丢弃,否则,将报文返回给所述evpn基础设施模块继续处理。

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

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

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

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

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

以图1所示的evpn拓扑为例,网络及业务部署部分的处理步骤包括:

第一步,选定各结点所采取的实现。与优选实施例2相同,只是各pe结点和p结点均为本优选实施例中所定义的结点。

第二步,配置并发布各pe结点的evpnrouterid。与优选实施例2相同,只除了每个evpnrouterid都必须是偶数。

第三步,建立图1所示的vxlanevpn网络。与优选实施例2相同。

第四步,按图1所示建立一条vxlanevpn业务,并在每个pe结点上为该vxlanevpn业务指定相同的vni。与优选实施例2相同,除了将ac1和ac2指定为leaf属性,将ac4和ac5指定为root属性,将ac6指定为leaf属性以外,将ac7指定为root属性

第五步,配置esi基础配置。与优选实施例2相同。

第六步,配置esi过滤配置。与优选实施例2相同,只除了所配置的每个esiip都必须是偶数。

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

以图1所示的evpn拓扑为例,端到端报文转发部分的处理步骤包括:

第一步,当pe1结点从本地ac1收到一个arp报文b1时,所述evpn基础设施模块转发b1报文的两份拷贝b1b、b1c的过程与优选实施例2是一样的,只是所述b1b和b1c的vxlan封装外层的源ip的高31位变为esi_ip12的高31位,所述esi_ip12为ac1所属物理口对应的esi上配置的esiip,所述esi_ip12的最低位由ac1的根叶属性决定,leaf为1,root为0;

第二步,当pe2结点收到所述b1b报文时,所述evpn基础设施模块转发b1b报文的过程与优选实施例2是一样的,esi过滤的结果也是一样的,只是增加了判断b1b报文的源ip最低位为1且出口ac的根叶属性的值为leaf时丢弃相应b1b副本的过程,作为此过程的结果,b1b报文将要转发到ac6的那份拷贝将被丢弃。

第三步至第四步,除vxlan封装外层源ip的值以外,与优选实施例1均相同。

值得注意的是,由于rt-2路由的bgp下一跳为路由源节点的evpnrouterid,因此从同一esi的不同邻接pe上学到的mac发布的rt-2路由的bgp下一跳是不同的,导致本模块对于转发到同一远端esi的不同邻接pe的vxlan报文的外层目的ip是不同的,因而也就无法支持逐流的负荷分担模式,但是,它仍然支持perserviceload-balance,只要ce上可以进行负荷分担。

优选实施例13

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

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

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

与优选实施例7中不同,本模块的underlay网络支持mpls,这意味着:underlay网络路由表中可能有出标签,并且,本模块接收的所述第三报文中可能有mpls标签;

与优选实施例7中不同,当ip第四插件模块返回时,本模块以其返回的报文的目的ip查underlay路由表,若所命中的路由条目中有mpls标签,则按mpls转发流程封装出标签栈以及出标签栈外层的转发信息,并将所述最终报文发出。

与优选实施例7中不同,所述第三报文在mpls层终结,ip层终结,udp层为vxlan数据报文对应的端口号时,再进行evpn转发流程。

值得注意的是,通过添加上述underlay网络的lsp标签,在underlay网络上就不用再担心源ip在underlay网络中不可路由的问题,因为,这种情况下,underlay网络中的非业务感知结点的转发流程仅仅是一个普通的标签交换,并不涉及所述urpf检查等处理流程。因此,后续的优选实施例14、15、16全部继承了这一思想。

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

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

值得注意的是,本模块既替换所述第x报文的源ip,也替换所述第x报文的目的ip,具体情况参考优选实施例7。

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

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

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

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

5:实现所述ip第四插件模块的具体方法如下:

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

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

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

按现有技术实现基本的将ipv4路由映射为lsp并进行相应的mpls转发的功能。

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

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

本优选实施例不需要此模块。

以图1所示的evpn拓扑为例,网络及业务部署部分的处理步骤包括:

除需要额外部署underlay网络的mpls功能以外,与优选实施例7相同。

以图1所示的evpn拓扑为例,端到端报文转发部分的处理步骤包括:

除evpn网络侧报文在外层ip头外面添加了mpls标签之外,与优选实施例7相同。

优选实施例14

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

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

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

与优选实施例13不同,本模块给每个evpn实例绑定一个ip-vrf,此ip-vrf称为所述evpn实例的骨干ip-vrf;

与优选实施例13不同,本模块不发布rt-1perevi路由,只发布rt-1peres路由,且本模块所发布的rt-1peres路由也与优选实施例13不同,具体是:若某个ac绑定了evpn实例vni_i,vni_i的骨干ip-vrf为vrf_b,该ac对应的esi为e1,e1的esiip为ip_e,则将ip_e作为vrf_b中的一条本地主机ip地址。对于vrf_b中的每一条本地主机ip地址t1,发布一条rt-1peres路由,其esi为t1对应的esi,其eti为0xffffffff,其路由区分符rd为vrf_b的rd,其路由目标携带所述ip-vrf的export路由目标,其bgp下一跳为路由源结点的evpnrouterid,其标签值为mpls隐式空标签。

本模块在收到所述rt-1peres路由时,将rt-1peres路由按照路由目标导入到对应的骨干ip-vrf中,形成一条32位路由t2,其中,以rt-1peresi路由的esi的vpndomain字段的低24位作为t2的高24位,以所述esi的gdv字段的低8位作为t2的低8位,t2路由的下一跳为rt-1peres路由的下一跳,也就是路由源节点的evpnrouterid。

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

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

与优选实施例13中不同,本模块替换所述第x报文的目的ip采取的具体方法为如下方法:以所述目的ip在所述evpn实例绑定的骨干ip-vrf的路由表中查表,以所命中的路由条目的bgp下一跳的值作为所述目的ip的新的值,形成第y报文,返回给所述evpn基础设施模块继续转发。

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

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

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

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

5:实现所述ip第四插件模块的具体方法如下:

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

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

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

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

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

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

以图1所示的evpn拓扑为例,网络及业务部署部分的处理步骤包括:

第一步,选定各结点所采取的实现。与优选实施例7相同,只是各pe结点和p结点均为本优选实施例中所定义的结点。

第二步,配置并发布各pe结点的evpnrouterid。与优选实施例13相同。

第三步,建立图1所示的vxlanevpn网络。与优选实施例13相同。

第四步,按图1所示建立一条vxlanevpn业务,并在每个pe结点上为该vxlanevpn业务指定相同的vni。与优选实施例13相同。

第五步,配置esi基础配置。与优选实施例13相同。

第六步,配置esi过滤配置。与优选实施例13相同,只除了需要配置骨干ip-vrf以及为evpn实例指定对应的骨干ip-vrf之外。

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

以图1所示的evpn拓扑为例,端到端报文转发部分的处理步骤包括:

第一步,当pe1结点从本地ac1收到一个arp报文b1时,所述evpn基础设施模块转发b1报文的两份拷贝b1b、b1c的过程与优选实施例13是一样的,只是所述b1b和b1c的vxlan封装外层的源ip变为esi_ip8,所述esi_ip8为ac1所属物理口对应的esi上配置的esiip;

第二步,当pe2结点收到所述b1b报文时,所述evpn基础设施模块转发b1b报文的过程与优选实施例13是一样的,esi过滤的结果也是一样的,只是esi过滤规则变为比较b1b报文的源ip与各出口ac所属物理口对应的esi上配置的esiip。

第三步至第四步,除vxlan封装外层源ip的值以外,与优选实施例1均相同。

优选实施例15

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

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

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

与优选实施例14不同,本模块underlay为ipv6。

与优选实施例14不同,本模块为每个esi配置一个单播mac地址作为esi别名值,同一结点上不同esi的所述esi别名值各不相同。

与优选实施例14不同,本模块配置一个80位ipv6单播前缀,并以该ipv6单播前缀的高80位作为本结点上所有esi对应的esiip的高80位。

与优选实施例14不同,本模块中esi对应的esiip的低48位由所述单播mac地址格式的esi别名值组成。

与优选实施例14不同,本模块用rfc7623中的rt-2路由取代优选实施例14中的rt-1peres路由,具体方法为:若某个ac绑定了evpn实例vni_i,vni_i的骨干mac-vrf为vpls_b,该ac对应的esi为e1,e1的esi别名值为mac_e,则将mac_e作为vrf_b中的一条本地主机mac地址。对于vpls_b中的每一条本地主机mac地址m1,发布一条rt-2路由,其中,esi字段取值为0,macaddress字段取值为所述esi别名值,rd和路由目标取值与优选实施例16中相同,ethernettagid字段取值为0,mpls-label1字段取值为mpls显式空标签,ipaddress字段和mpls-label2字段空缺(不出现在路由中)。

与优选实施例14不同,本模块在收到所述rt-2路由时,将所述rt-2路由按照路由目标导入到对应的骨干mac-vrf中,形成一条骨干mac条目m2,其中,以所述rt-2路由的macaddress字段的值作为m2的值,m2条目的下一跳为所述rt-2路由的bgp下一跳,也就是路由源节点的evpnrouterid。

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

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

与优选实施例14中不同,本模块替换所述第x报文的目的ip采取的具体方法为如下方法:以所述目的ip的低48位在所述evpn实例绑定的骨干mac-vrf的路由表中查表,以所命中的mac条目的下一跳的值作为所述目的ip的新的值,形成第y报文,返回给所述evpn基础设施模块继续转发。

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

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

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

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

5:实现所述ip第四插件模块的具体方法如下:

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

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

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

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

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

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

以图1所示的evpn拓扑为例,网络及业务部署部分的处理步骤包括:

第一步,选定各结点所采取的实现。与优选实施例13相同,只是各pe结点和p结点均为本优选实施例中所定义的结点。

第二步,配置并发布各pe结点的evpnrouterid。与优选实施例13相同。

第三步,建立图1所示的vxlanevpn网络。与优选实施例13相同。

第四步,按图1所示建立一条vxlanevpn业务,并在每个pe结点上为该vxlanevpn业务指定相同的vni。与优选实施例13相同。

第五步,配置esi基础配置。与优选实施例13相同。

第六步,配置esi过滤配置。与优选实施例13相同,只除了需要配置骨干mac-vrf以及为evpn实例指定对应的骨干mac-vrf以及为esi配置6字节esi别名值之外。

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

以图1所示的evpn拓扑为例,端到端报文转发部分的处理步骤包括:

第一步,当pe1结点从本地ac1收到一个arp报文b1时,所述evpn基础设施模块转发b1报文的两份拷贝b1b、b1c的过程与优选实施例13是一样的,只是所述b1b和b1c的vxlan封装外层的源ip变为esi_ip15,所述esi_ip15的低48位为ac1所属物理口对应的esi上配置的6字节esi别名;

第二步,当pe2结点收到所述b1b报文时,所述evpn基础设施模块转发b1b报文的过程与优选实施例13是一样的,esi过滤的结果也是一样的,只是esi过滤规则变为比较b1b报文的源ip的低48位与各出口ac所属物理口对应的esi上配置的6字节esi别名值。

第三步至第四步,除vxlan封装外层源ip的值以外,与优选实施例1均相同。

优选实施例16

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

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

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

与优选实施例15不同,本模块直接为每个esi配置一个ipv6地址作为其esiip,不再配置esi别名值。

与优选实施例15不同,本模块用骨干ip-vrf代替骨干mac-vrf,相应地,本模块所发布的rt-2路由也是在ip-vrf中发布。具体地,本模块所发布的rt-2路由,格式如rfc7432section7.2所示,其中,ipaddress字段取值为所述esiip,esi字段取值为所述esiip对应的esi,macaddress字段取值为0或0x0ffffffffffff(其中,all-active模式取0,single-active模式取0x0ffffffffffff),rd和路由目标取值与优选实施例14中所述rt-1peres路由相同,ethernettagid字段取值为0,mpls-label1字段取值为本地一个能唯一确定所述rd所标识的ip-vrf实例的mpls标签的值,mpls-label2字段取值与所述rt-1peres路由的mplslabel字段相同。

与优选实施例15不同,本模块在收到所述rt-2路由时,将所述rt-2路由按照路由目标导入到对应的骨干ip-vrf中,形成一条128位路由ip_f,其中,以rt-2路由的esiip字段的值作为ip_f的值,ip_f路由的下一跳为rt-2路由的下一跳,也就是路由源节点的evpnrouterid。当同一骨干ip-vrf中收到的两条rt-2路由具有相同esiip和不同esi时,所述相同esiip暂时不用于转发,直到其中一条路由被撤销为止。

值得注意的是,所述骨干ip-vrf可以绑定自己的ac,当其从自己的ac收到一个ip报文时,可以采用该报文的目的ip在该ip-vrf中查表,并以查表所命中的路由条目所对应的rt-2路由的mpls-label2字段对应的mpls标签作为私网出标签,除此之外的转发流程与普通基于mpls的ip-vrf没有区别,当其在ip-vrf中发起一个主动ping远端esiip的过程时,除了私网出标签来自所述rt-2路由以外,转发流程与普通基于mplsevpn的ip-vrf没有区别。

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

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

与优选实施例14中不同,本模块的骨干ip-vrf的路由表中均为ipv6路由,查表所用的目的ip也是ipv6地址。

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

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

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

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

5:实现所述ip第四插件模块的具体方法如下:

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

与优选实施例14中不同,可选地,本模块还可以在所述骨干ip-vrf中对所述第y报文的源ip进行合法性效验,具体方法为如下方法:以所述源ip在所述evpn实例绑定的骨干ip-vrf的路由表中查表,如果存在对应的路由条目,则为合法报文,否则为非法报文,对于非法报文可以采取告警等措施。

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

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

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

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

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

以图1所示的evpn拓扑为例,网络及业务部署部分的处理步骤包括:

第一步,选定各结点所采取的实现。与优选实施例14相同,只是各pe结点和p结点均为本优选实施例中所定义的结点。

第二步,配置并发布各pe结点的evpnrouterid。与优选实施例14相同,除了underlay为ipv6网络。

第三步,建立图1所示的vxlanevpn网络。与优选实施例14相同。

第四步,按图1所示建立一条vxlanevpn业务,并在每个pe结点上为该vxlanevpn业务指定相同的vni。与优选实施例1相同。

第五步,配置esi基础配置。与优选实施例14相同。

第六步,配置esi过滤配置。与优选实施例14相同,只除了每个esi配置一个ipv6地址作为esiip之外。

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

以图1所示的evpn拓扑为例,端到端报文转发部分的处理步骤包括:

第一步,当pe1结点从本地ac1收到一个arp报文b1时,所述evpn基础设施模块转发b1报文的两份拷贝b1b、b1c的过程与优选实施例14是一样的,只是所述b1b和b1c的vxlan封装外层的源ip变为esi_ip16,所述esi_ip16为ac1所属物理口对应的esi上配置的esiip;

第二步,当pe2结点收到所述b1b报文时,所述evpn基础设施模块转发b1b报文的过程与优选实施例14是一样的,esi过滤的结果也是一样的,只是esi过滤规则变为比较b1b报文的源ip与各出口ac所属物理口对应的esi上配置的esiip。

第三步至第四步,除vxlan封装外层源ip的值以外,与优选实施例1均相同。

优选实施例17

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

同优选实施例1。

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

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

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

与优选实施例1中不同,只有当所述第三报文的目的ip的高24位与本结点的evpnrouterid的高24位相同并且所述第三报文的源ip的高16位与所述源ip专用黑洞路由前缀的高16位相同时,才调用所述ip第三插件模块进行源ip路由检查以及确定被动回包的目的ip地址。

值得注意的是,通过对所述第三报文的目的ip和源ip的双重校验,解决了优选实施例1中所述第三报文的源ip实际上很难在underlay网络中再作为目的ip的问题(这实际上相当于所述源ip还是在一定程度上消耗了underlay网络中的ip地址资源),因为,网络通信一般是有双向会话的,在一个通信方向上作为目的ip的ip地址,在同一会话的另一个通信方向上就会作为源ip,也就是说,源ip即使匹配优选实施例1中所述源ip专用黑洞路由前缀,也不一定是所述第一ip,而很可能是underlay网络中正常通信的ip。但是,在引入本方案以后,由于所述第三报文的目的ip全部是高位部分为指定值的ip地址,并且,只有目的ip的高位部分为所述指定值并且源ip匹配所述源ip专用黑洞路由前缀的报文才会被认为是源ip在underlay网络中不可路由的报文,这样一类,所述第三报文的源ip就可以是除了与目的ip的指定高位部分相同的ip地址以外的任意ip地址,不用管underlay网络中有没有使用与所述源ip具有相等数值的ip地址作为目的ip,因为,即使两者相等,它也不是同一ip地址,因为两者不在同一路由表中,不属于同一个ip地址空间。这样一类,本方案对underlay网络中的ip地址规划只有一个限制,那就是,凡是实现本优选实施例的pe结点,其evpnrouterid的指定高位部分必须相同,除此之外,没有任何限制,甚至于underlay网络可以与互联网联通,互联网中的通信可以经由所述underlay网络。本方案是使所述第一ip不消耗underlay网络中的ip地址资源(当underlay网络为ipv4网络时,这一点尤为重要)的另一办法,与优选实施例13相比,本方案的优点在于,它不需要采用mpls技术。这是本优选实施例的一个很重要的有益效果。

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

本模块通过配置来指定当收到的所述第x报文的源ip的高16位为prefix2时,对该报文的处理必须同时满足如下规则:1)在所述第三报文触发被动回包时,必须回包到指定ip地址s1;2)并且,在所述第三报文触发源ip可达性检查时,忽略检查。

本模块返回的ip地址即所述源ip专用黑洞路由前缀对应的指定ip地址s1。

以图1所示的evpn拓扑为例,网络及业务部署部分的处理步骤包括:

第一步,选定各结点所采取的实现。与优选实施例1相同,只是各pe结点和p结点均为本优选实施例中所定义的结点。

第二步,配置并发布各结点的evpnrouterid。pe结点与p结点均要配置32位evpnrouterid,且各pe结点、p结点的evpnrouterid的高24位均相同。除此之外,与优选实施例1相同。

第三步至第六步,与优选实施例1相同。

以图1所示的evpn拓扑为例,端到端报文转发部分的处理步骤包括:

与优选实施例1相同。

优选实施例18

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

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

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

与优选实施例16不同,本模块所实现的插件机制如图13所示:按[evpnoverlay]转发流程将所述第一报文封装成第x报文,所述第x报文是一个不带对应的链路层封装(比如mac头)的ip报文;然后,以第x报文作为参数,先调用ip第一插件,在ip第一插件中修改所述第x报文的源ip并返回后,再调用ip第二插件,在ip第二插件中在所述第x报文外面添加一层mpls标签并返回一个ip地址t,然后,以所述ip地址t查underlay路由表,若所命中的路由条目中有mpls标签,则按mpls转发流程封装出标签栈以及出标签栈外层的转发信息,得到第二报文,并将所述第二报文发出。在接收所述第三报文并以所述第三报文中的私网标签确定所述第三报文所属的骨干ip-vrf实例之后,剥掉所述第三报文的mpls标签以及外层链路层封装,得到第q报文,以所述第q报文为参数,调用ip第三插件获得0个、一个或多个第z报文以及每个所述第z报文对应的出口ac,对于每个所述第z报文及其对应的出口ac,继续按rfc7348中的剩余流程和rfc7432中的df过滤流程处理。

与优选实施例16不同,本模块还要将每个evpn实例的evpn实例接口的ip地址在对应的骨干ip-vrf中形成一条主机路由条目。

与优选实施例16不同,本模块所发布的rt-3路由还要携带draft-dawra-idr-srv6-vpn-01中定义的srv6-vpntlv,所述srv6-vpntlv中携带所述rt-3路由所属evpn实例的evpn实例接口的ip地址。

相应地,本模块在收到所述rt-3路由之后,在进行优选实施例16中的相应处理时,要用所述srv6-vpntlv中携带的所述ip地址代替原来originatingrouter'sipaddress字段和bgp下一跳的作用,此外,还要将所述rt-3路由通过所述srv6-vpntlv携带的所述ip地址添加到所述rt-3路由所属evpn实例对应的骨干ip-vrf实例中,形成一个路由条目i,所述路由条目i的转发信息即所述rt-3路由的转发信息,其中包括rt-3路由的pmsitunnelattribute中携带的私网mpls标签,所述mpls标签作为路由条目i的ip-vrf私网出标签,所述rt-3路由的bgp下一跳作为所述路由条目i的bgp下一跳。

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

本模块以所述第一ac所属主接口对应的esi的esiip替换所述第x报文的源ip。

值得注意的是,本模块并不替换所述第x报文的目的ip。

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

本模块以所述第x报文的目的ip在所述evpn实例绑定的骨干ip-vrf的路由表中查表,命中一个路由条目r,但是,本模块并不根据所述路由条目r来替换所述第x报文的目的ip,取而代之的是,本模块直接在所述第x报文的目的ip所在的ip头外面添加一层mpls标签,所述mpls标签就是以路由条目r的私网出标签,然后,返回所述路由条目r的bgp下一跳的值给所述evpn基础设施模块。

值得注意的是,这里无论所述第一报文是单播报文还是bum报文,都会进行上述转发流程,但其为单播报文时所获取到的转发信息与其为bum报文时所获取到的转发信息是不同的,比如,前者获取的bgp下一跳来自rt-2路由,后者获取的bgp下一跳来自rt-3路由。

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

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

若所述第q报文的目的ip是所述骨干ip-vrf中的一个本地主机ip地址,且udp端口为vxlan数据报文对应的端口号,则所述第q报文属于所述第q报文的vni字段所标识的evpn实例。

以所述第q报文在所述evpn实例中继续按rfc7348中定义的流程处理,得到一个或者多个第z报文,以及每个第z报文的出口ac,以每个所述第z报文及其出口ac为参数,分别调用所述ip第四插件,最后将所有没有被所述ip第四插件丢弃的所述第z报文及其出口ac返回给所述evpn基础设施模块。

5:实现所述ip第四插件模块的具体方法如下:

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

与优选实施例16中不同,本模块将未丢弃的报文返回给所述ip第三插件模块,而不是返回给所述evpn基础设施模块。

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

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

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

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

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

以图1所示的evpn拓扑为例,网络及业务部署部分的处理步骤包括:

第一步,选定各结点所采取的实现。与优选实施例16相同,只是各pe结点和p结点均为本优选实施例中所定义的结点。

第二步,配置并发布各pe结点的evpnrouterid。与优选实施例16相同。

第三步,建立图1所示的vxlanevpn网络。与优选实施例16相同。

第四步,按图1所示建立一条vxlanevpn业务,并在每个pe结点上为该vxlanevpn业务指定相同的vni。与优选实施例16相同。

第五步,配置esi基础配置。与优选实施例16相同。

第六步,配置esi过滤配置。与优选实施例16相同,只除了需要配置骨干ip-vrf以及为evpn实例指定对应的骨干ip-vrf之外。

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

以图1所示的evpn拓扑为例,端到端报文转发部分的处理步骤包括:

第一步,当pe1结点从本地ac1收到一个arp报文b1时,所述evpn基础设施模块转发b1报文的两份拷贝b1b、b1c的过程与优选实施例16是一样的,只是所述b1b和b1c的vxlan封装外层的源ip变为esi_ip18,所述esi_ip18为ac1所属物理口对应的esi上配置的esiip;

第二步,当pe2结点收到所述b1b报文时,所述evpn基础设施模块转发b1b报文的过程与优选实施例16是一样的,esi过滤的结果也是一样的,只是esi过滤规则变为比较b1b报文的源ip与各出口ac所属物理口对应的esi上配置的esiip。

第三步至第四步,除vxlan封装外层ip头外面添加了一层骨干ip-vrf对应的私网出mpls标签以外,与优选实施例16均相同。

值得注意的是,本优选实施例中定义的pe结点与优选实施例14、15、16中定义的结点最大的不同在于,其对应的所述b1b和b1c报文真正地带有骨干ip-vrf对应的私网标签封装,这使得本优选实施例中定义的pe结点可以用于一种类似于h-vpls的分层架构,边缘结点(类似h-vpls中的upe或pbb中的beb)采用本优选实施例中定义的结点,而汇聚结点(类似h-vpls中npe或pbb中的bcb)采用只支持骨干ip-vrf转发功能的结点。

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

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

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