MPLS L3VPN私有虚拟网快速重路由方法及系统
技术领域
本发明涉及MPLS(Multi-Protocol Label Switching,多协议标签交换)技术领域,更具体地,涉及一种MPLS L3VPN(Lay3 Virtual Private Network,三层虚拟私有网络)私有虚拟网(Virtual Private Network,VPN)快速重路由(Fast Reroute,FRR)方法及系统。
背景技术
MPLS L3VPN是服务提供商(Service Provider,SP)VPN解决方案中一种基于服务提供商边缘(Provider Edge,PE)设备的L3VPN技术,它使用BGP(Border GatewayProtocol,边界网关协议)在服务提供商骨干网上发布VPN路由,使用MPLS在服务提供商骨干网上转发VPN报文。
MPLS L3VPN组网方式灵活、可扩展性好,并能够方便地支持MPLS QoS(Quality ofService,服务质量)和MPLS TE(Traffic Engineering,流量工程),因此得到越来越多的应用。
MPLS L3VPN模型由如下三部分组成:
CE(Customer Edge)设备:用户网络边缘设备,有接口直接与SP(ServiceProvider,服务提供商)相连;CE可以是设备或交换机,也可以是一台主机。CE“感知”不到VPN的存在,也不需要必须支持MPLS;
PE(Provider Edge)设备:服务提供商边缘设备,是服务提供商网络的边缘设备,与用户的CE直接相连。在MPLS网络中,对VPN的所有处理都发生在PE上;
P(Provider)设备:服务提供商网络中的骨干设备,不与CE直接相连。P设备只需要具备基本MPLS转发能力。
其中,CE和PE的划分主要是根据SP与用户的管理范围,CE和PE是两者管理范围的边界。CE设备通常是一台路由器,当CE与直接相连的PE建立邻接关系后,CE把本站点的VPN路由发布给PE,并从PE学到远端VPN的路由。CE与PE之间使用BGP/IGP交换路由信息,也可以使用静态路由。
PE从CE学到CE本地的VPN路由信息后,通过BGP与其它PE交换VPN路由信息。PE路由器只维护与它直接相连的VPN的路由信息,不维护服务提供商网络中的所有VPN路由。
P路由器只维护到PE的路由,不需要了解任何VPN路由信息。
当在MPLS骨干网上传输VPN流量时,入口PE作为Ingress(入口)LSR(Label SwitchRouter,标签交换路由器),出口PE作为Egress(出口)LSR,P路由器则作为为Transit(转发)LSR。
基于MPLS L3VPN业务报文的转发可靠性考虑,一般组网中都会采用VPN FRR叠加隧道FRR(隧道FRR可能为TE FRR或者LDP(Label Distribution Protocol,标签分发协议)FRR)的方式进行组网。如图1所示,是经典的MPLS L3VPN VPN FRR叠加隧道FRR的组网示意图,包括2个CE设备,分别为CE1、CE2,4个P设备,分别为P1、P2、P3、P4,以及3个PE设备,分别为PE1、PE2、PE3;其中,CE1去往CE2的路径有四条,分别为:PE1->P1->PE2、PE1->P2->PE2、PE1->P3->PE3、PE1->P4->PE3;PE1->PE2的路径和PE1->PE3的路径构成VPNFRR,其中PE1->PE2的路径为主,PE1->P1->PE2与PE1->P2->PE2构成隧道FRR,PE1->PE3的路径为备,PE1->P3->PE3与PE1->P4->PE3也构成隧道FRR。
从CE设备进来的业务报文需要通过PE1到达PE2,有两条路径:工作路径PE1->P1->PE2和保护路径PE1->P2->PE2,当检测到工作路径有问题时,PE1需要将业务报文切换到保护路径进行传输。
图2为进入图1中PE1设备的报文的上行处理流程示意图,描述了ASIC(Application Specific Integrated Circuit,专用集成电路)芯片的L3VPN的处理流程,即从CE设备进入PE1设备的报文,需要进行3层VPN转发,通过路由查找,得到下一跳转发信息进行转发。
图3是下一跳转发信息的细化图示,下一跳转发信息主要包括两部分:第一部分为出端口信息;第二部分包括DMAC(Destination Media Access Control,目的媒体访问控制)信息,通过DMAC信息索引,可以找到下一跳设备的DMAC;伪线标签信息,其为每路由每标签或者每VPN实例每标签,通过伪线标签信息索引即可查找得到;以及三层接口信息,包括SMAC(源MAC),VLAN(Virtual Local Area Network,虚拟局域网)ID(身份标识号码)和外层MPLS标签,通过三层接口信息索引即可查找得到。
图4示出了现有MPLS L3VPN VPN FRR示意图,传统MPLS L3VPN VPN FRR切换时,首先创建所有可能的下一跳转发表(最多可能有4个),当需要切换的时候,再根据隧道保护组状态和VPN保护组状态决定最终转发的下一跳,当VPN保护组状态发生变化或者隧道保护组状态发生变化时,都需要进行判断是否需要切换,从而在耗费了大量的下一跳资源的同时,使得流程的复杂性也较大。
发明内容
本发明的目的是,提供一种MPLS L3VPN系统的VPN FRR方法及装置,以优化现有技术中VPN FRR切换时流程复杂,资源耗费大的问题。
本发明提供了一种MPLS L3VPN系统的VPN FRR方法,上述方法对于叠加有隧道FRR的VPN FRR,将其主、备路径的下一跳路由转发信息的出端口信息均设置为内部trunk ID,并使上述trunk ID与对应路径的隧道保护组的ID一致;
当上述VPN FRR的主/备路径的隧道保护组切换时,则更新相应路径的下一跳转发信息中的trunk ID(身份标识号码)、DMAC信息以及三层接口信息。
优选地,上述VPN FRR的主/备路径的隧道保护组切换时,则更新相应路径的下一跳转发信息中的trunk ID、DMAC信息以及三层接口信息步骤具体包括:
当上述VPN FRR的主路径的隧道保护组切换到主隧道FRR时,则更新上述VPN FRR的主路径的下一跳转发信息中的trunk ID、DMAC信息以及三层接口信息;
当上述VPN FRR的主路径的隧道保护组切换到备隧道FRR时,则更新上述VPN FRR的主路径的下一跳转发信息中的trunk ID、DMAC信息以及三层接口信息;
当上述VPN FRR的备路径的隧道保护组切换到主隧道FRR时,则更新上述VPN FRR的备路径的下一跳转发信息中的trunk ID、DMAC信息以及三层接口信息;
当上述VPN FRR的备路径的隧道保护组切换到备隧道FRR时,则更新上述VPN FRR的备路径的下一跳转发信息中的trunk ID、DMAC信息以及三层接口信息。
优选地,当上述VPN FRR的主路径的隧道保护组切换到主隧道FRR时,上述更新VPNFRR的主路径的下一跳转发信息中的trunk ID、DMAC信息以及三层接口信息步骤具体为:
将上述主路径的下一跳转发信息中的trunk ID更改为上述主隧道FRR的出端口号,将上述主下一跳转发信息中的DMAC信息更改为与上述主隧道FRR的出端口连接的P设备的DMAC;以及更新上述主下一跳转发信息中的三层接口信息,使所有VPN FRR的主下一跳都指向该三层接口索引。
优选地,当上述VPN FRR的主路径的隧道保护组切换到备隧道FRR时,上述更新VPNFRR的主路径的下一跳转发信息中的trunk ID、DMAC信息以及三层接口信息具体为:
将上述主路径的下一跳转发信息中的trunk ID更改为上述备隧道FRR的出端口号,将上述主下一跳转发信息中的DMAC信息更改为与上述备隧道FRR的出端口连接的P设备的DMAC;以及更新上述主下一跳转发信息中的三层接口信息,使所有VPN FRR的主下一跳都指向该三层接口索引。
优选地,当上述VPN FRR的备路径的隧道保护组切换到主隧道FRR时,上述更新VPNFRR的备路径的下一跳转发信息中的trunk ID、DMAC信息以及三层接口信息具体为:
将上述备路径的下一跳转发信息中的trunk ID更改为上述主隧道FRR的出端口号,将上述备下一跳转发信息中的DMAC信息更改为与上述主隧道FRR的出端口连接的P设备的DMAC;以及更新上述备下一跳转发信息中的三层接口信息,使所有VPN FRR的备下一跳都指向该三层接口索引。
优选地,当上述VPN FRR的备路径的隧道保护组切换到备隧道FRR时,上述更新VPNFRR的备路径的下一跳转发信息中的trunk ID、DMAC信息以及三层接口信息具体为:
将上述备路径的下一跳转发信息中的trunk ID更改为上述备隧道FRR的出端口号,将上述备下一跳转发信息中的DMAC信息更改为与上述备隧道FRR的出端口连接的P设备的DMAC;以及更新上述备下一跳转发信息中的三层接口信息,使所有VPN FRR的备下一跳都指向该三层接口索引。
优选地,上述方法中,
当上述VPN FRR切换到主路径时,则相应的路由直接切换到主下一跳;
当上述VPN FRR切换到备路径时,则相应的路由直接切换到备下一跳。
本发明进一步提供了一种MPLS L3VPN系统的VPN FRR装置,上述装置包括设置模块和切换模块,
上述设置模块,用于将叠加有隧道FRR的VPN FRR的主、备路径的下一跳路由转发信息的出端口信息设置成内部trunk ID,并使上述trunk ID与上述主、备路径的隧道保护组的ID一致;
上述切换模块,用于在VPN FRR的主/备路径的隧道保护组切换时,更新相应路径的下一跳转发信息中的trunk ID、DMAC信息以及三层接口信息。
优选地,上述切换模块包括判断子模块、更新子模块以及路径切换子模块,
上述判断子模块,用于判断当前切换为VPN FRR主、备路径切换,还是隧道保护组切换;在当前切换为VPN FRR主、备路径切换时,进一步判断当前切换是主路径切换,还是备路径切换,将判断结果发送给上述路径切换子模块;在当前切换为隧道保护组切换时,进一步判断是主路径的隧道保护组切换,还是备路径的隧道保护组切换,并在是主路径的隧道保护组切换时,判断是切换到主隧道FRR,还是切换到备隧道FRR;在是备路径的隧道保护组切换时,判断是切换到主隧道FRR,还是切换到备隧道FRR,将判断结果发送给上述更新子模块;
上述更新子模块,用于根据收到的判断结果,更新上述相应路径的下一跳路由转发信息的下一跳转发信息中的trunk ID、DMAC信息以及三层接口信息;
上述路径切换子模块,用于根据收到的判断结果,将相应的路由切换到主下一跳,或者备下一跳。
优选地,上述更新子模块,还用于在上述判断结果为VPN FRR的主路径的隧道保护组切换到主隧道FRR时,将上述主路径的下一跳转发信息中的trunk ID更改为上述主隧道FRR的出端口号,将上述主下一跳转发信息中的DMAC信息更改为与上述主隧道FRR的出端口连接的P设备的DMAC;以及更新上述主下一跳转发信息中的三层接口信息,使所有VPN FRR的主下一跳都指向该三层接口索引;
在上述判断结果为VPN FRR的主路径的隧道保护组切换到备隧道FRR时,将上述主路径的下一跳转发信息中的trunk ID更改为上述备隧道FRR的出端口号,将上述主下一跳转发信息中的DMAC信息更改为与上述备隧道FRR的出端口连接的P设备的DMAC;以及更新上述主下一跳转发信息中的三层接口信息,使所有VPN FRR的主下一跳都指向该三层接口索引;
在上述判断结果为VPN FRR的备路径的隧道保护组切换到主隧道FRR时,将上述备路径的下一跳转发信息中的trunk ID更改为上述主隧道FRR的出端口号,将上述备下一跳转发信息中的DMAC信息更改为与上述主隧道FRR的出端口连接的P设备的DMAC;以及更新上述备下一跳转发信息中的三层接口信息,使所有VPN FRR的备下一跳都指向该三层接口索引;
在上述判断结果为VPN FRR的备路径的隧道保护组切换到备隧道FRR时,将上述备路径的下一跳转发信息中的trunk ID更改为上述备隧道FRR的出端口号,将上述备下一跳转发信息中的DMAC信息更改为与上述备隧道FRR的出端口连接的P设备的DMAC;以及更新上述备下一跳转发信息中的三层接口信息,使所有VPN FRR的备下一跳都指向该三层接口索引。
本发明使得隧道FRR切换时间和L3VPN业务的数量无关,同时实现了隧道FRR切换和VPN FRR切换的分离,大大地降低了切换时间,降低了系统复杂度,同时节约了大量的硬件资源,从而节约了成本。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是经典的MPLS L3VPN VPN FRR叠加隧道FRR的组网示意图;
图2是进入图1中PE1设备的报文的上行处理流程示意图
图3是下一跳转发信息的细化图示;
图4是现有MPLS L3VPN VPN FRR示意图;
图5是本发明MPLS L3VPN系统的VPN FRR方法优选实施例的流程图;
图6是本发明MPLS L3VPN系统的VPN FRR装置优选实施例的原理框图。
具体实施方式
为了使本发明所要解决的技术问题、技术方案及有益效果更加清楚、明白,以下结合附图和实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
参考图3,隧道FRR后,转发下一跳表项其实只有3个地方需要改变,分别为:物理出端口信息,三层接口信息以及DMAC信息。
其中,DMAC信息和三层接口信息是三层接口上面所有业务对应的转发下一跳索引到同一个复用表项,可以直接修改,且与路由数目无关;但是每个下一跳的出端口信息需要每个下一跳逐个修改。
基于以上特征,本发明采用内部trunk方法来实现隧道所有相关路由对应下一跳的端口切换,相应的下一跳在隧道保护组里面,隧道保护组与trunkID一一对应,当需要进行隧道保护组切换的时候,只要进行对应的内部trunk端口切换就可以了。
如图5所示,是本发明MPLS L3VPN系统的VPN FRR方法流程图,本实施例假设叠加有隧道FRR的VPN FRR的主、备下一跳转发信息的出端口信息均已设置成内部trunk ID,且上述trunk ID与对应路径的隧道保护组的ID一致;比如,主路径的保护隧道组的ID为1,则主路径的下一跳转发信息的trunk ID为trunk 1。假设系统需要切换,本实施例具体包括以下步骤:
步骤S001:判断当前切换类型,若为VPN FRR主、备路径切换,则执行步骤S009;若为VPN FRR的主/备路径的隧道保护组切换,则执行步骤S002;
步骤S002:判断上述隧道保护组切换是VPN FRR的主路径的隧道保护组切换,还是备路径的隧道保护组切换,若是主路径的隧道保护组切换,则执行步骤S003,若是备路径的隧道保护组切换,则执行步骤S006;
步骤S003:判断上述VPN FRR的主路径的隧道保护组是切换到主隧道FRR,还是切换到备隧道FRR,若是切换到主隧道FRR,则执行步骤S004,若是切换到备隧道FRR,则执行步骤S005;
步骤S004:更改主路径的下一跳转发信息中的trunk ID、目的媒体访问控制DMAC信息以及三层接口信息,具体为:将上述VPN FRR的主路径的下一跳转发信息中的trunk ID更改为上述主隧道FRR的出端口号,将上述主下一跳转发信息中的DMAC信息更改为与上述主隧道FRR的出端口连接的P设备的DMAC;以及更新上述主下一跳转发信息中的三层接口信息,使所有VPN FRR的主下一跳都指向该三层接口索引,结束;
步骤S005:更改主路径的下一跳转发信息中的trunk ID、目的媒体访问控制DMAC信息以及三层接口信息,具体为:将上述VPN FRR的主路径的下一跳转发信息中的trunk ID更改为上述备隧道FRR的出端口号,将上述主下一跳转发信息中的DMAC信息更改为与上述备隧道FRR的出端口连接的P设备的DMAC;以及更新上述主下一跳转发信息中的三层接口信息,使所有VPN FRR的主下一跳都指向该三层接口索引,结束;
步骤S006:判断上述VPN FRR的备路径的隧道保护组是切换到主隧道FRR,还是切换到备隧道FRR,若是切换到主隧道FRR,则执行步骤S007,若是切换到备隧道FRR,则执行步骤S008;
步骤S007:将上述备路径的下一跳转发信息中的trunk ID更改为上述主隧道FRR的出端口号,将上述备下一跳转发信息中的DMAC信息更改为与上述主隧道FRR的出端口连接的P设备的DMAC;以及更新上述备下一跳转发信息中的三层接口信息,使所有VPN FRR的备下一跳都指向该三层接口索引,结束;
步骤S008:将上述备路径的下一跳转发信息中的trunk ID更改为上述备隧道FRR的出端口号,将上述备下一跳转发信息中的DMAC信息更改为与上述备隧道FRR的出端口连接的P设备的DMAC;以及更新上述备下一跳转发信息中的三层接口信息,使所有VPN FRR的备下一跳都指向该三层接口索引,结束;
步骤S009:判断VPN FRR是切换到主路径还是切换到备路径,若是切换到主路径,则执行步骤S010;若是切换到备路径,则执行步骤S011;
步骤S010:切换到主下一跳,结束;
步骤S011:切换到备下一跳,结束。
如图1所示,CE1去往CE2的路径有四条,分别为:PE1->P1->PE2、PE1->P2->PE2、PE1->P3->PE3、PE1->P4->PE3,假设这四条路径对应PE1的出端口分别为1,2,3,4。图中,PE1->PE2、PE1->PE3的路径构成VPN FRR,PE1->P1->PE2、PE1->P2->PE2、PE1->P3->PE3、PE1->P4->PE3构成隧道FRR,假设PE1->PE2为主路径,PE1->P1->PE2为主隧道FRR,PE1->P2->PE2为备隧道FRR,且隧道保护组的ID为1,PE1->PE3的为备路径,PE1->P3->PE3为主隧道FRR,PE1->P4->PE3为备隧道FRR,且隧道保护组的ID为2,
由于VPN FRR同时都叠加了隧道FRR,故将VPN FRR的主下一跳转发信息中的出端口信息设置为trunk 1(对应隧道保护组1),将VPN FRR的备下一跳转发信息中的出端口信息设置为trunk 2(对应隧道保护组2),依照本发明的方法,
1、若隧道保护组1切换到主隧道FRR,则只需将trunk 1的端口更改为1,将主路径的下一跳转发信息的DMAC信息更改为P1的DMAC,同时更改主路径的下一跳转发信息的三层接口信息,使所有VPN FRR的主下一跳都指向这个三层接口索引;
2、若隧道保护组1切换到备隧道FRR,则只需将trunk 1的端口更改为2,将主路径的下一跳转发信息的DMAC信息更改为P2的DMAC,同时更改主路径的下一跳转发信息的三层接口信息,使所有VPN FRR的主下一跳都指向这个三层接口索引;
3、若隧道保护组2切换到主隧道FRR,则只需将trunk 2的端口更改为3,将备路径的下一跳转发信息的DMAC信息更改为P3的DMAC,同时更改备路径的下一跳转发信息的三层接口信息,使所有VPN FRR的备下一跳都指向这个三层接口索引;
4、若隧道保护组2切换到备隧道FRR,则只需将trunk 2的端口更改为4,将备路径的下一跳转发信息的DMAC信息更改为P4的DMAC,同时更改备路径的下一跳转发信息的三层接口信息,使所有VPN FRR的备下一跳都指向这个三层接口索引;
5、若某条路由的VPN FRR切换到主路径,则将这条路由切换到对应的主下一跳;
6、若某条路由的VPN FRR切换到备路径,则将这条路由切换对应的备下一跳。
上述1-4的场景属于隧道保护组切换,只需要切换3个表项目,与切换时间和路由条目无关;5-6的场景属于路由主、备路径切换,采用本发明后,一条路由仅需切换一次,无需关心关联的隧道保护组状态,切换流程简单。
如图6所示,是本发明MPLS L3VPN系统的VPN FRR装置的原理框图,本实施例包括设置模块01和切换模块02,切换模块02包括判断子模块21、更新子模块22以及路径切换子模块23,
设置模块01,用于将叠加有隧道FRR的VPN FRR的主、备路径的下一跳路由转发信息的出端口信息设置成内部trunk ID,并使上述trunk ID与上述主、备路径的隧道保护组的ID一致;
切换模块02,用于在VPN FRR的主/备路径的隧道保护组切换时,更新相应路径的下一跳转发信息中的trunk ID、DMAC信息以及三层接口信息;具体地:
判断子模块21,用于判断当前切换是VPN FRR主、备路径切换,还是VPN FRR的主/备路径的隧道保护组切换;在当前切换为VPN FRR主、备路径切换时,进一步判断当前切换是主路径切换,还是备路径切换,将判断结果发送给路径切换子模块23;在当前切换为VPNFRR的主/备路径的隧道保护组切换时,进一步判断是VPN FRR的主路径的隧道保护组切换,还是VPN FRR的备路径的隧道保护组切换,并在是VPN FRR的主路径的隧道保护组切换时,判断是切换到主隧道FRR,还是切换到备隧道FRR;在是VPN FRR的备路径的隧道保护组切换时,判断是切换到主隧道FRR,还是切换到备隧道FRR,将判断结果发送给更新子模块22;
更新子模块22,用于根据收到的判断结果,更新上述相应路径的下一跳路由转发信息的下一跳转发信息中的trunk ID、DMAC信息以及三层接口信息,具体为:在上述判断结果为VPN FRR的主路径的隧道保护组切换到主隧道FRR时,将上述主路径的下一跳转发信息中的trunk ID更改为上述主隧道FRR的出端口号,将上述主下一跳转发信息中的DMAC信息更改为与上述主隧道FRR的出端口连接的P设备的DMAC;以及更新上述主下一跳转发信息中的三层接口信息,使所有VPN FRR的主下一跳都指向该三层接口索引;在上述判断结果为VPN FRR的主路径的隧道保护组切换到备隧道FRR时,将上述主路径的下一跳转发信息中的trunk ID更改为上述备隧道FRR的出端口号,将上述主下一跳转发信息中的DMAC信息更改为与上述备隧道FRR的出端口连接的P设备的DMAC;以及更新上述主下一跳转发信息中的三层接口信息,使所有VPN FRR的主下一跳都指向该三层接口索引;在上述判断结果为VPNFRR的备路径的隧道保护组切换到主隧道FRR时,将上述备路径的下一跳转发信息中的trunk ID更改为上述主隧道FRR的出端口号,将上述备下一跳转发信息中的DMAC信息更改为与上述主隧道FRR的出端口连接的P设备的DMAC;以及更新上述备下一跳转发信息中的三层接口信息,使所有VPN FRR的备下一跳都指向该三层接口索引;在上述判断结果为VPNFRR的备路径的隧道保护组切换到备隧道FRR时,将上述备路径的下一跳转发信息中的trunk ID更改为上述备隧道FRR的出端口号,将上述备下一跳转发信息中的DMAC信息更改为与上述备隧道FRR的出端口连接的P设备的DMAC;以及更新上述备下一跳转发信息中的三层接口信息,使所有VPN FRR的备下一跳都指向该三层接口索引;
路径切换子模块23,用于根据收到的判断结果,将相应的路由切换到主下一跳,或者备下一跳。
上述说明示出并描述了本发明的优选实施例,但如前所述,应当理解本发明并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、修改和环境,并能够在本文所述发明构想范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱离本发明的精神和范围,则都应在本发明所附权利要求的保护范围内。