发明内容
本发明要解决的技术问题是简化设备及网络运维复杂度,实现EVPN业务的快速开通。
根据本发明一方面,提出一种实现基于以太网的二层虚拟专用网络的方法,包括:集中控制器接收各提供商边缘设备PE发送的本地客户MAC路由、所属EVPN成员标识及下一跳信息,并向属于同一EVPN成员的PE通告远端客户MAC路由、下一跳及EVPN标签信息;属于同一EVPN成员的PE接收集中控制器发送的信息,并根据集中控制器发送的信息构建携带两层MPLS标签的EVPN报文,并向目标PE转发EVPN报文;目标PE将EVPN报文转发到正确的EVPN站点。
进一步地,集中控制器接收各PE发送的本地客户MAC路由、所属EVPN成员及下一跳信息的步骤包括:各PE配置MAC-VRF,并为MAC-VRF分配EVPN成员归属关系;各PE通过绑定的客户边缘设备CE的接口获知本地客户MAC路由,并将本地客户MAC路由、所属EVPN成员标识及下一跳信息发送至集中控制器。
进一步地,集中控制器向属于同一EVPN成员的PE通告远端客户MAC路由、下一跳及EVPN标签信息的步骤包括:集中控制器接收各PE发送的本地客户MAC路由、所属EVPN成员标识及下一跳信息;集中控制器根据本地客户MAC路由、所属EVPN成员及下一跳信息获知PE与EVPN成员的对应关系,动态维护全网客户MAC路由被通告的下一跳、以及客户MAC路由所属的EVPN成员的对应关系,为属于同一EVPN成员的客户MAC路由分配全局唯一的EVPN标签;并向属于同一EVPN成员的PE通告远端客户MAC路由、下一跳及EVPN标签信息。
进一步地,各PE将本地客户MAC路由、所属EVPN成员及下一跳信息通过改进的MP-IBGP报文格式发送至集中控制器;其中所述改进的MP-IBGP报文包含本发明定义的EVPNNLRI(网络层可达信息)路径属性,包括:4字节的EVPN标识字段填入全局唯一的EVPN成员标识,可重复的6字节的MAC地址字段填入一个或多个本地学习的客户MAC地址,3字节的MPLS标签字段为空;MP-IBGP消息不再携带路由目标RT的扩展团体属性列表。
进一步地,集中控制器通过改进的MP-IBGP报文格式向属于同一EVPN成员的PE通告远端客户MAC路由、下一跳及EVPN标签信息;其中所述改进的MP-IBGP报文包含本发明定义的EVPN NLRI路径属性,包括:4字节的EVPN标识字段填入全局唯一的EVPN成员标识,可重复的6字节的MAC地址字段填入一个或多个远端客户MAC地址,3字节的MPLS标签字段填入由所述集中控制器为特定EVPN成员分配的EVPN 标签;MP-IBGP消息不再携带路由目标RT的扩展团体属性列表。
进一步地,属于同一EVPN成员的PE接收集中控制器发送的信息,并根据集中控制器发送的信息构建携带两层MPLS标签的EVPN报文,并向目标PE转发EVPN报文的步骤包括:属于同一EVPN成员的PE将来自集中控制器的属于同一EVPN成员的远端客户MAC路由安装到相对应的EVPN成员的MAC-VRF中;根据远端客户MAC路由对应的下一跳信息在本地MPLS标签转发表查找MPLS转发标签;根据MPLS转发标签和EVPN标签构建携带两层MPLS标签的EVPN报文,并向目标PE转发EVPN报文。
进一步地,EVPN报文包括:外层标签用于报文转发,内层标签用于标识将报文转发到的EVPN站点。
进一步地,目标PE将EVPN报文转发到正确的EVPN站点的步骤包括:目标PE将EVPN报文的外层标签剥离,检测内层标签以确定接收EVPN站点所对应的外出接口;剥离内层标签,根据内层标签对应的EVPN成员标识将EVPN报文转发到正确的EVPN站点。
根据本发明的另一方面,还提出一种实现基于以太网的二层虚拟专用网络的系统,包括:集中控制器,用于接收各提供商边缘设备PE发送的本地客户MAC路由、所属EVPN成员及下一跳信息,并向属于同一EVPN成员的PE通告远端客户MAC路由、下一跳及EVPN标签信息;属于同一EVPN成员的PE,用于接收集中控制器发送的信息,并根据集中控制器发送的信息构建携带两层MPLS标签的EVPN报文,并向目标PE转发EVPN报文;目标PE,用于将EVPN报文转发到正确的EVPN站点。
与现有技术相比,本发明集中控制器接收各PE发送的本地客户MAC路由、所属EVPN成员标识及下一跳信息,并向属于同一EVPN成员的PE通告远端客户MAC路由、下一跳及EVPN标签信息。属于同一EVPN成员的PE根据集中控制器发送的信息构建携带两层MPLS标签的EVPN报文,并向目标PE转发EVPN报文;目标PE将EVPN报文转发到正确的EVPN站点。即通过集中控制器实现对EVPN成员的自动发现以及客户MAC路由及EVPN标签通告,极大地简化设备及网络运维复杂度。
另外,本发明PE设备之间无需运行MP-IBGP,无需规划全网RT/RD参数,解决现有技术的局限性问题。
通过以下参照附图对本发明的示例性实施例的详细描述,本发明的其它特征及其优点将会变得清楚。
具体实施方式
现在将参照附图来详细描述本发明的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。
同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,技术、方法和设备应当被视为授权说明书的一部分。
在这里示出和讨论的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它示例可以具有不同的值。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进一步详细说明。
图2为一种实现EVPN的方法的一个实施例的流程示意图。该方法包括以下步骤:
在步骤210,集中控制器接收各PE发送的本地客户MAC路由、所属EVPN成员标识及下一跳信息。
其中,PE把通过CE(Customer Edge,客户边缘设备)学到的本地客户MAC路由、所属的具有全局唯一性的EVPN成员标识及下一跳(PE自身的loopback地址)信息通过改进的MP-IBGP协议封装通告给集中控制器。
如图3所示,300为集中控制器,集中控制器可以是一台安装控制软件的普通服务器。参与客户路由交换的PE与集中控制器建立IBGP连接。PE和CE通过以太网接口相连,形成二层以太网桥接关系,实现本地MAC地址学习。在PE上配置MAC-VRF并绑定与CE相连的接口,同时为该MAC-VRF分配EVPN成员归属关系。例如,CE1与PE的接口1相连,绑定接口1属于MAC-VRF1,并为MAC-VRF1分配的EVPN成员为EVPN1; CE2与PE的接口2相连,绑定接口2属于MAC-VRF2,并为MAC-VRF2分配的EVPN成员为EVPN2。PE从CE1转发的以太网帧中学习到的源MAC地址存放在MAC-VRF1的路由表里,PE从CE2转发的以太网帧中学习到的源MAC地址存放在MAC-VRF2的路由表里,分别被称为EVPN1路由和EVPN2路由。
在步骤220,集中控制器向属于同一EVPN成员的PE通告远端客户MAC路由、下一跳及EVPN标签信息。
其中,集中控制器根据收集到的全网PE通告信息做如下操作:
1、自动发现PE与EVPN成员的对应关系,如图4所示,假设PE1连接了两个分属于EVPN A、EVPN B的客户站点,PE2连接了三个分属于EVPN A、EVPNB、EVPN C的客户站点,PE3连接了两个分属于EVPN A、EVPN C的客户站点。那么,PE1、PE2、PE3通告的客户MAC路由中有同时属于EVPN A的MAC路由,PE1、PE2通告的客户MAC路由中有同时属于EVPN B的路由,PE2、PE3通告的客户MAC路由中有同时属于EVPN C的路由。
2、动态维护全网客户MAC路由被通告的下一跳、以及客户路由所属的EVPN成员的对应关系表,如图5所示,PE1分别通告了属于EVPN A和EVPN B的客户MAC路由,下一跳为PE1;PE2分别通告了属于EVPN A、EVPN B和EVPN C的的客户路由,下一跳为PE2;PE3分别通告了属于EVPN A和EVPN C的客户路由,下一跳为PE3。
3、为属于同一EVPN成员的客户路由分配全局唯一的EVPN标签,如图4所示,集中控制器为属于EVPN A的客户路由分配全局唯一的EVPN标签100,为属于EVPN B的客户路由分配全局唯一的EVPN标签200,为属于EVPN C的客户路由分配全局唯一的EVPN标签300。
在步骤230,属于同一EVPN成员的PE接收集中控制器发送的信息,并根据集中控制器发送的信息构建携带两层MPLS标签的EVPN报文,并向目标PE转发EVPN报文。
属于同一EVPN成员的PE接收集中控制器的上述信息后,做如下操作:
1、把来自集中控制器的属于同一EVPN成员的远端客户MAC路由安装到相对应的EVPN成员的MAC-VRF中。
2、根据远端客户MAC路由对应的下一跳信息在本地MPLS标签转发表查找MPLS转发标签。
3、根据VPN标签和MPLS转发标签构建携带两层MPLS标签的EVPN报文,其中,外层MPLS标签用于报文转发,内层的MPLS标签(EVPN标签)用于标识该EVPN报文应该转发到哪个EVPN站点。
4、向目标PE(下一跳)转发EVPN报文。
在步骤240,目标PE将EVPN报文转发到正确的EVPN站点。
其中,目标PE接收到剥离了外层MPLS标签的VPN报文(若P支持次末弹出机制,先剥离外层MPLS标签),检查内层的MPLS标签以确定接收EVPN站点所对应的外出接口,并在EVPN报文转发前再剥离内层的MPLS标签,并根据内层标签对应的EVPN成员标识把原始的以太网报文转发到正确的EVPN站点。
在该实施例中,集中控制器接收各PE发送的本地客户MAC路由、所属EVPN成员及下一跳信息,并向属于同一EVPN成员的PE通告远端客户MAC路由、下一跳及EVPN标签信息。属于同一EVPN成员的PE根据集中控制器发送的信息构建携带两层MPLS标签的EVPN报文,并向目标PE转发EVPN报文;目标PE将EVPN报文转发到正确的EVPN站点。即通过集中控制器实现对EVPN成员的自动发现以及客户MAC路由及EVPN标签通告,极大地简化设备及网络运维复杂度。
本发明的另一个实施例,PE和集中控制器之间使用改进的MP-IBGP报文格式交换信息。
本发明在改进的MP-IBGP报文中定义了的EVPN NLRI(网络层可达信息)路径属性,报文格式如下:
在本发明定义的EVPN NLRI路径属性的子地址家族符(Subsequent Address FamilyIdentifier)字段中,专门为EVPN分配了IANA(Internet Assigned Numbers Authority,互联网数字分配机构)未预留的数值,例如80。
PE通告给集中控制器的MP-IBGP更新消息中的NLRI信息如下:
EVPN标识字段:填入全局唯一的EVPN成员标识。
可重复的6字节的MAC地址字段:填入一个或多个本地学习的客户MAC地址。
3字节的MPLS标签字段:为空。
集中控制器通告给PE的MP-IBGP更新消息中的NLRI信息如下:
EVPN标识字段:填入全局唯一的EVPN成员标识。
可重复的6字节的MAC地址字段:填入一个或多个远端客户MAC地址。
3字节的MPLS标签字段:填入由集中控制器为特定EVPN成员统一分配的EVPN标签。
同时,MP-IBGP更新消息不再携带RT的扩展团体属性列表。
在该实施例中,本发明PE设备之间无需建立IBGP邻居关系,无需通过MP-IBGP向所有PE通告MAC路由及EVPN标签,无需规划全网RT/RD参数,该方法实现起来比较简单,并且对设备要求不要,极大地简化设备及网络运维复杂度,解决现有技术的局限性问题。
图7为本发明实现EVPN的方法的一个具体实施例的流程示意图。该方法实现属于同一EVPN成员的站点对等互访方式。如图8所示,PE1和PE2都连接相同的EVPN 10站点,800为集中控制器。
在步骤700,PE1和PE2分别把从CE学到的客户本地MAC路由、所属的EVPN成员及下一跳信息通过改进的MP-IBGP报文格式通告给集中控制器。
PE1把从CE学到的客户本地MAC路由(如MAC1)、所属的EVPN成员(EVPN 10)及下一跳(PE1自身的loopback地址)信息通过改进的MP-IBGP报文格式通告给集中控制器。
PE2把从CE学到的客户本地MAC路由(如MAC2)、所属的VPN成员(EVPN 10)及下一跳(PE2自身的loopback地址)信息通过改进的MP-IBGP报文格式通告给集中控制器。
在步骤710,集中控制器自动发现PE与EVPN成员的对应关系。如图9所示,发现PE1、PE2都属于EVPN 10。
在步骤720,集中控制器动态维护全网客户路由被通告的下一跳、以及客户路由所属的EVPN成员的对应关系表。图10中PE1通告了属于VPN 10客户路由MAC1,下一跳为PE1的loopback地址;PE2通告了属于VPN 10客户路由MAC2,下一跳为PE2。
在步骤730,集中控制器为属于EVPN 10的客户路由分配全局唯一的EVPN标签100,如图9所示。
在步骤740,集中控制器通过改进的MP-IBGP报文格式向PE1、PE2通告属于EVPN 10的远端客户MAC路由、下一跳及EVPN标签等信息。
集中控制器通过改进的MP-IBGP报文格式向PE1通告属于EVPN 10的远端客户路由MAC2、下一跳(PE2的loopback地址)及EVPN标签(100)等信息。
集中控制器通过改进的MP-IBGP报文格式向PE2通告属于EVPN 10的远端客户路由MAC1、下一跳(PE1的loopback地址)及EVPN标签(100)等信息。
在步骤750,PE1、PE2分别把集中控制器通告的EVPN成员标识为10的远端客户MAC路由安装到EVPN 10对应的MAC-VRF中。
PE1把集中控制器通告的EVPN成员标识为10的远端客户MAC路由(MAC2)安装到EVPN 10对应的MAC-VRF中。
PE2把集中控制器通告的EVPN成员标识为10的远端客户MAC路由(MAC1)安装到EVPN 10对应的MAC-VRF中。
在步骤760,PE1、PE2分别根据远端客户MAC路由对应的下一跳信息在本地MPLS标签转发表查找MPLS转发标签。
PE1根据远端客户路由对应的下一跳信息(PE2的loopback地址)在本地MPLS标签转发表查找MPLS转发标签。
PE2根据远端客户路由对应的下一跳信息(PE1的loopback地址)在本地MPLS标签转发表查找MPLS转发标签。
在步骤770, PE1、PE2分别根据EVPN标签和MPLS转发标签构建携带两层MPLS标签的EVPN报文。
其中,外层MPLS标签用于报文转发,内层的MPLS标签(EVPN标签为100)用于标识该EVPN报文应该转发到EVPN 10的站点。
在步骤780,PE1、PE2分别向下一跳转发EVPN报文。
PE1向目标PE2(下一跳)转发EVPN报文。
PE2向目标PE1(下一跳)转发EVPN报文。
在步骤790,目标PE把原始的以太网报文转发到正确的EVPN站点。
目标PE2把原始的以太网报文转发到正确的EVPN站点。
目标PE1把原始的以太网报文转发到正确的EVPN站点。
其中,目标PE2接收到剥离了外层MPLS标签的EVPN报文(若P支持次末弹出机制,先剥离外层MPLS标签),检查内层的MPLS标签以确定接收EVPN站点所对应的外出接口,并在EVPN报文转发前再剥离内层的MPLS标签,并根据内层标签对应的EVPN成员标识把原始的以太网报文转发到正确的EVPN站点。
在该实施例中,PE1和PE2都连接相同的EVPN10 站点,通过将各自的本地客户MAC路由、所属EVPN成员及下一跳信息发送至集中控制器,集中控制器实现对EVPN成员的自动发现以及客户MAC路由及EVPN标签通告,进而实现了属于同一EVPN成员的站点对等互访方式,极大地简化设备及网络运维复杂度,解决现有技术的局限性。
图11为一种实现EVPN的系统的一个实施例的结构示意图。该系统包括集中控制器1110、属于同一EVPN成员的PE1120、目标PE1120。
集中控制器1110用于接收各提供商边缘设备PE发送的本地客户MAC路由、所属EVPN成员及下一跳信息,并向属于同一EVPN成员的PE通告远端客户MAC路由、下一跳及EVPN标签信息。
其中,PE把通过客户边缘设备CE学到的本地客户MAC路由、所属的具有全局唯一性的EVPN成员及下一跳(PE自身的loopback地址)信息通过MP-IBGP协议封装通告给集中控制器。
如图3所示,300为集中控制器,集中控制器可以是一台安装控制软件的普通服务器。参与客户路由交换的PE与集中控制器建立IBGP连接。PE和CE通过以太网接口相连,形成二层以太网桥接关系,实现本地MAC地址学习。在PE上配置MAC-VRF并绑定与CE相连的接口,同时为该MAC-VRF分配EVPN成员归属关系。例如,CE1与PE的接口1相连,绑定接口1属于MAC-VRF1,并为MAC-VRF1分配的EVPN成员为EVPN1; CE2与PE的接口2相连,绑定接口2属于MAC-VRF2,并为MAC-VRF1分配的EVPN成员为EVPN2。PE从CE1转发的以太网帧中学习到的源MAC地址存放在MAC-VRF1的路由表里,PE从CE2转发的以太网帧中学习到的源MAC地址存放在MAC-VRF2的路由表里,分别被称为EVPN1路由和EVPN2路由。
集中控制器根据收集到的全网PE通告信息做如下操作:
1、自动发现PE与EVPN成员的对应关系,如图4所示,假设PE1连接了两个分属于EVPN A、EVPN B的客户站点,PE2连接了三个分属于EVPN A、EVPNB、EVPN C的客户站点,PE3连接了两个分属于EVPN A、EVPN C的客户站点。那么,PE1、PE2、PE3通告的客户路由中有同时属于EVPN A的路由,PE1、PE2通告的客户路由中有同时属于EVPN B的路由,PE2、PE3通告的客户路由中有同时属于EVPN C的路由。
2、动态维护全网客户MAC路由被通告的下一跳、以及客户路由所属的EVPN成员的对应关系表,如图5所示,PE1分别通告了属于EVPN A和EVPN B的客户MAC路由,下一跳为PE1;PE2分别通告了属于EVPN A、EVPN B和VPN C的的客户MAC路由,下一跳为PE2;PE3分别通告了属于EVPN A和EVPN C的客户MAC路由,下一跳为PE3。
3、为属于同一EVPN成员的客户MAC路由分配全局唯一的EVPN标签,如图4所示,集中控制器为属于EVPN A的客户路由分配全局唯一的EVPN标签100,为属于EVPN B的客户路由分配全局唯一的EVPN标签200,为属于EVPN C的客户路由分配全局唯一的EVPN标签300。
属于同一EVPN成员的PE1120用于接收集中控制器发送的信息,并根据集中控制器发送的信息构建携带两层MPLS标签的EVPN报文,并向目标PE转发E VPN报文。
属于同一EVPN成员的PE1120接收集中控制器1110的上述信息后,做如下操作:
1、把来自集中控制器的属于同一EVPN成员的远端客户MAC路由安装到相对应的EVPN成员的MAC-VRF中。
2、根据远端客户MAC路由对应的下一跳信息在本地MPLS标签转发表查找MPLS转发标签。
其中,全网中的所有PE和提供商设备(P)运行IGP协议和MPLS协议。每个PE把loopback地址作为转发等价类(FEC)并绑定MPLS标签向邻居通告.
3、根据EVPN标签和MPLS转发标签构建携带两层MPLS标签的EVPN报文,其中,外层MPLS标签用于报文转发,内层的MPLS标签(EVPN标签)用于标识该EVPN报文应该转发到哪个EVPN站点。
目标PE1120用于将EVPN报文转发到正确的EVPN站点。
目标PE接收到剥离了外层MPLS标签的EVPN报文(若P支持次末弹出机制,先剥离外层MPLS标签),检查内层的MPLS标签以确定接收EVPN站点所对应的外出接口,并在EVPN报文转发前再剥离内层的MPLS标签,并根据内层标签对应的EVPN成员标识把原始的以太网报文转发到正确的EVPN站点。
在该实施例中,集中控制器接收各PE发送的本地客户MAC路由、所属EVPN成员及下一跳信息,并向属于同一EVPN成员的PE通告远端客户MAC路由、下一跳及EVPN标签信息。属于同一EVPN成员的PE根据集中控制器发送的信息向目标PE转发E VPN报文;目标PE将EVPN报文转发到正确的EVPN站点。即通过集中控制器实现对EVPN成员的自动发现以及客户MAC路由及EVPN标签通告,极大地简化设备及网络运维复杂度。
至此,已经详细描述了本发明。为了避免遮蔽本发明的构思,没有描述本领域所公知的一些细节。本领域技术人员根据上面的描述,完全可以明白如何实施这里公开的技术方案。
可能以许多方式来实现本发明的方法以及装置。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本发明的方法以及装置。用于方法的步骤的上述顺序仅是为了进行说明,本发明的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本发明实施为记录在记录介质中的程序,这些程序包括用于实现根据本发明的方法的机器可读指令。因而,本发明还覆盖存储用于执行根据本发明的方法的程序的记录介质。
虽然已经通过示例对本发明的一些特定实施例进行了详细说明,但是本领域的技术人员应该理解,以上示例仅是为了进行说明,而不是为了限制本发明的范围。本领域的技术人员应该理解,可在不脱离本发明的范围和精神的情况下,对以上实施例进行修改。本发明的范围由所附权利要求来限定。