建立隧道的方法、分配标签的方法、设备及网络系统与流程

文档序号:16564510发布日期:2019-01-13 16:14阅读:360来源:国知局
建立隧道的方法、分配标签的方法、设备及网络系统与流程

本发明涉及一种建立隧道的方法、分配标签的方法、设备及网络系统。



背景技术:

多协议标签交换MPLS(Multi-Protocol Label Switching)位于TCP/IP协议栈中的链路层和网络层之间,用于向IP(Internet Protocol,网络协议)层提供连接服务,同时又从链路层得到服务。MPLS以标签交换替代IP转发。标签是一个短而定长的、只具有本地意义的连接标识符。标签封装在链路层和网络层之间。MPLS不局限于任何特定的链路层协议,能够使用任意二层介质传输网络分组。MPLS并不是一种业务或者应用,它实际上是一种隧道技术。这种技术不仅支持多种高层协议与业务,而且在一定程度上可以保证信息传输的安全性。标签分发协议LDP(Label Distribution Protocol)是多协议标签交换MPLS的一种控制协议,相当于传统网络中的信令协议,负责转发等价类FEC(Forwarding Equivalence Class)的分类、标签的分配以及标签交换路径LSP(Label Switched Path)的建立和维护等操作。LDP规定了标签分发过程中的各种消息以及相关处理过程。

MPLS支持多层标签,并且转发平面面向连接,故具有良好的扩展性,使在统一的MPLS/IP基础网络架构上为客户提供各类服务成为可能。通过LDP协议,标签交换路由器LSR(Label Switched Router)可以把网络层的路由信息直接映射到数据链路层的交换路径上,建立起网络层的LSP。目前,LDP广泛地应用于VPN服务,具有组网和配置简单、支持路由拓扑驱动建立LSP、支持大容量LSP等优点。

虚拟专用网络VPN(Virtual Private Network)是依靠Internet服务提供商ISP(Internet Service Provider)和网络服务提供商NSP(Network Service Provider)在公共网络中建立的虚拟专用通信网络。VPN的基本原理是利用隧道技术,把VPN报文封装在隧道中,利用VPN骨干网建立专用数据传输通道,实现报文的透明传输。隧道技术使用一种协议封装另外一种协议报文,而封装协议本身也可以被其他封装协议所封装或承载。

BGP/MPLS IP VPN是一种L3VPN(Layer 3Virtual Private Network)。它使用BGP(Border Gateway Protocol)在服务提供商骨干网上发布VPN路由,使用MPLS(Multiprotocol Label Switch)在服务提供商骨干网上转发VPN报文。这里的IP是指VPN承载的是IP报文。

PWE3(Pseudo-Wire Emulation Edge to Edge,边缘到边缘的伪线仿真)是一种在PSN网络上仿真象ATM(Asynchronous Transfer Mode,异步传输模式)、FR(Frame Relay,帧中继)、Ethernet等业务的关键属性的机制。PWE3可以使运营商把传统业务迁移到包交换网络PSN上来以降低网络运营成本。

为了保证业务的高可用性,网络的不同层次都需要支持冗余:当正在使用的网络节点、链路、通道等资源发生故障时能切换到其他冗余的可用资源上,保证网络能继续提供规定的服务。

LDP FRR是一种预先计算隧道的保护路径,当检测到主用路径故障后立即把数据报文切换到备用路径的快速保护方法。LDP FRR可以针对节点和链路来保护,保护总是由故障的上游邻居发起的,不同的节点会为下游节点建立不同的保护路径。由于从入口节点到出口节点的路径或隧道通常很长,上游节点发起保护切换后,直到路径全部切换完成,需要较长的切换时间。



技术实现要素:

本发明实施例的目的在于提供一种建立隧道的方法、设备和网络系统,以减少保护切换的时间。

为达到上述目的,本发明的实施例采用如下技术方案。

第一方面,本发明实施例提供一种网络系统,包括包括第一出口运营商边缘设备Egress PE、第二Egress PE和入口运营商边缘设备Ingress PE,所述第一Egress PE与客户边缘设备CE通信,所述第二Egress PE与所述CE通信,

所述第一Egress PE和所述第二Egress PE位于包括所述第一Egress PE和所述第二Egress PE的冗余保护组内,其中所述第一Egress PE为主用设备,所述第二Egress PE为备用设备;

所述第一Egress PE用于:

生成虚拟节点,所述虚拟节点具有所述网络系统中全局唯一的Router ID,所述虚拟节点用作所述第一Egress PE的下一跳节点,所述虚拟节点用作所述第二Egress PE的下一跳节点;

发送第一链路状态消息给所述Ingress PE,所述第一链路状态消息包括:所述第一Egress PE的Router ID和所述第一Egress PE到所述虚拟节点的链路的状态信息,所述第一Egress PE到所述虚拟节点的链路的状态信息包括所述第一Egress PE到所述虚拟节点的链路的cost值M和所述虚拟节点的Router ID;

发送第二链路状态消息给所述Ingress PE,所述第二链路状态消息包括:所述虚拟节点的Router ID、所述虚拟节点到所述第一Egress PE的链路的状态信息和所述虚拟节点到所述第二Egress PE的链路的状态信息,所述虚拟节点到所述第一Egress PE的链路的状态信息包括所述虚拟节点到所述第一Egress PE的链路的cost值N和所述第一Egress PE的Router ID,所述虚拟节点到所述第二Egress PE的链路的状态信息包括所述虚拟节点到所述第二Egress PE的链路的cost值T和所述第二Egress PE的Router ID;

所述第二Egress PE用于:

生成所述虚拟节点,

发送第三链路状态消息给所述Ingress PE,所述第三链路状态消息包括:所述第二Egress PE的Router ID和所述第二Egress PE到所述虚拟节点的链路的状态信息,所述第二Egress PE到所述虚拟节点的链路的状态信息包括所述第二Egress PE到所述虚拟节点的链路的cost值S和所述虚拟节点的Router ID;

发送第四链路状态消息给所述Ingress PE,所述第四链路状态消息包括:所述虚拟节点的Router ID和所述虚拟节点到所述第一Egress PE的链路的状态信息、所述虚拟节点到所述第二Egress PE的链路的状态信息,所述虚拟节点到所述第一Egress PE的链路的状态信息包括所述虚拟节点到所述第一Egress PE的链路的cost值N和所述第一Egress PE的Router ID,所述虚拟节点到所述第二Egress PE的链路的状态信息包括所述虚拟节点到所述第二Egress PE的链路的cost值T和所述第二Egress PE的Router ID;

其中所述N和所述T为内部网关协议IGP的最大cost值,所述S和所述M满足(1)或(2)

(1)

Sxy4+S>Sxy3+M ①和

C34+S>M ②

其中,Px为所述第一Egress PE的任何邻居节点,Pxy为去掉所述第一Egress PE后的网络中所述Px的任意邻居节点,Sxy3为所述Pxy到所述第一Egress PE的最短路径的cost值,Sxy4为所述Pxy到所述第二Egress PE的最短路径的cost值,C34为所述第一Egress PE到所述第二Egress PE的最短路径的cost值;

(2)X+M<Y+S ③

其中X为从所述Ingress PE到所述第一Egress PE的最短路径的cost值,Y为从所述Ingress PE到所述第二Egress PE的最短路径的cost值。

在第一方面的第一种可能的实现方式中,所述虚拟节点的Router ID为静态配置的,或者,通过在所述第一Egress PE和所述第二Egress PE之间动态协商得到。

结合第一方面和第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述虚拟节点的Router ID为环回标识Loopback ID。

结合第一方面、第一方面的第一种或第二种可能的实现方式,在第一方面的第三种可能的实现方式中,如果满足(1)或(2)的M-S对有多组,则选择S最小的M-S对或者M最小的M-S对,将选择的M-S对中的M携带在所述第一链路状态信息中,将选择的M-S对中的S携带在所述第三链路状态信息中。

结合第一方面、第一方面的第一种或第二种可能的实现方式或第三种可能的实现方式,在第一方面的第四种可能的实现方式中,对于方式(2)中,M=1,S为内部网关协议IGP的最大cost值。

结合第一方面、第一方面的第一种或第二种或第三种或第四种可能的实现方式,在第一方面的第五种可能的实现方式中,所述虚拟节点的Router ID为所述第一Egress PE和第二Egress PE中优先级高者所拥有的且未被占用的网络协议IP地址。

第二方面,本发明实施例提供一种网络系统,包括第一出口运营商边缘设备Egress PE、第二Egress PE和入口运营商边缘设备Ingress PE,所述第一Egress PE与客户边缘设备CE通信,所述第二Egress PE与所述CE通信,

所述第一Egress PE和所述第二Egress PE位于包括所述第一Egress PE和所述第二Egress PE的冗余保护组内,其中所述第一Egress PE为主用设备,所述第二Egress PE为备用设备;

所述第一Egress PE用于:

生成虚拟节点,所述虚拟节点具有所述网络系统中全局唯一的Router ID,所述虚拟节点用作所述第一Egress PE的下一跳节点,所述虚拟节点用作所述第二Egress PE的下一跳节点;

发送第一链路状态消息给所述Ingress PE,所述第一链路状态消息包括:所述第一Egress PE的Router ID和所述第一Egress PE到所述虚拟节点的链路的状态信息,所述第一Egress PE到所述虚拟节点的链路的状态信息包括所述第一Egress PE到所述虚拟节点的链路的cost值M和所述虚拟节点的Router ID;

发送第二链路状态消息给所述Ingress PE,所述第二链路状态消息包括:所述虚拟节点的Router ID、所述虚拟节点到所述第一Egress PE的链路的状态信息和所述虚拟节点到所述第二Egress PE的链路的状态信息,所述虚拟节点到所述第一Egress PE的链路的状态信息包括所述虚拟节点到所述第一Egress PE的链路的cost值N和所述第一Egress PE的Router ID,所述虚拟节点到所述第二Egress PE的链路的状态信息包括所述虚拟节点到所述第二Egress PE的链路的cost值T和所述第二Egress PE的Router ID;

所述第二Egress PE用于:

生成所述虚拟节点,

发送第三链路状态消息给所述Ingress PE,所述第三链路状态消息包括:所述第二Egress PE的Router ID和所述第二Egress PE到所述虚拟节点的链路的状态信息,所述第二Egress PE到所述虚拟节点的链路的状态信息包括所述第二Egress PE到所述虚拟节点的链路的cost值S和所述虚拟节点的Router ID;

发送第四链路状态消息给所述Ingress PE,所述第四链路状态消息包括:所述虚拟节点的Router ID、所述虚拟节点到所述第一Egress PE的链路的状态信息和所述虚拟节点到所述第二Egress PE的链路的状态信息,所述虚拟节点到所述第一Egress PE的链路的状态信息包括所述虚拟节点到所述第一Egress PE的链路的cost值N和所述第一Egress PE的Router ID,所述虚拟节点到所述第二Egress PE的链路的状态信息包括所述虚拟节点到所述第二Egress PE的链路的cost值T和所述第二Egress PE的Router ID;

所述第一Egress PE还用于为第一虚拟专用网络VPN的第一转发等价类分配第一标签,并发送所述第一标签和所述虚拟节点的Router ID给所述Ingress PE;

所述第二Egress PE还用于为所述第一VPN的所述第一转发等价类分配所述第一标签,并发送所述第一标签和所述虚拟节点的Router ID给所述Ingress PE。

在第二方面的第一种可能的实现方式中,所述虚拟节点的Router ID为静态配置的,或者,通过所述第一Egress PE和所述第二Egress PE之间动态协商得到。

结合第二方面、第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,所述虚拟节点的Router ID为环回标识Loopback ID。

结合第二方面、第二方面的第一种或第二种可能的实现方式,在第二方面的第三种可能的实现方式中,所述虚拟节点的Router ID为所述第一Egress PE所拥有的且未被占用的IP地址或所述第二Egress PE所拥有的且未被占用的网络协议IP地址。

结合第二方面的第一种或第二种可能的实现方式,在第二方面的第四种可能的实现方式中,所述虚拟节点的Router ID为所述第一Egress PE和第二Egress PE中优先级高者所拥有的且未被占用的网络协议IP地址。

结合第二方面的第一种或第二种或第三种或第四种可能的实现方式,在第二方面的第五种可能的实现方式中,所述第一标签为静态配置的,或者,通过所述第一Egress PE和第二Egress PE之间动态协商得到。

第三方面,本发明实施例提供一种建立隧道的方法,该方法应用于网络系统,所述网络系统包括第一出口运营商边缘设备Egress PE、第二Egress PE和入口运营商设备Ingress PE,所述第一Egress PE与客户边缘设备CE通信,所述第二Egress PE与所述CE通信,所述第一Egress PE和第二Egress PE处于包括所述第一Egress PE和所述第二Egress PE的冗余保护组内,其中所述第一Egress PE为主用设备,所述第二Egress PE为备用设备;

所述方法包括:

在所述第一Egress PE生成虚拟节点,所述虚拟节点具有所述网络系统中全局唯一的Router ID,所述虚拟节点用作所述第一Egress PE的下一跳节点,所述虚拟节点用作所述第二Egress PE的下一跳节点;

在所述第二Egress PE上生成所述虚拟节点;

所述第一Egress PE发送第一链路状态消息给所述Ingress PE,所述第一链路状态消息包括:所述第一Egress PE的Router ID和所述第一Egress PE到所述虚拟节点的链路的状态信息,所述第一Egress PE到所述虚拟节点的链路的状态信息包括所述第一Egress PE到所述虚拟节点的链路的cost值M和所述虚拟节点的Router ID;

所述第一Egress PE发送第二链路状态消息给所述Ingress PE,所述第二链路状态消息包括:所述虚拟节点的Router ID、所述虚拟节点到所述第一Egress PE的链路的状态信息和所述虚拟节点到所述第二Egress PE的链路的状态信息,所述虚拟节点到所述第一Egress PE的链路的状态信息包括所述虚拟节点到所述第一Egress PE的链路的cost值N和所述第一Egress PE的Router ID,所述虚拟节点到所述第二Egress PE的链路的状态信息包括所述虚拟节点到所述第二Egress PE的链路的cost值T和所述第二Egress PE的Router ID;

所述第二Egress PE发送第三链路状态消息给所述Ingress PE,所述第三链路状态消息包括:所述第二Egress PE的Router ID和所述第二Egress PE到所述虚拟节点的链路的状态信息,所述第二Egress PE到所述虚拟节点的链路的状态信息包括所述第二Egress PE到所述虚拟节点的链路的cost值S和所述虚拟节点的Router ID;

所述第二Egress PE发送第四链路状态消息给所述Ingress PE,所述第四链路状态消息包括:所述虚拟节点的Router ID、所述虚拟节点到所述第一Egress PE的链路的状态信息和所述虚拟节点到所述第二Egress PE的链路的状态信息,所述虚拟节点到所述第一Egress PE的链路的状态信息包括所述虚拟节点到所述第一Egress PE的链路的cost值N和所述第一Egress PE的Router ID,所述虚拟节点到所述第二Egress PE的链路的状态信息包括所述虚拟节点到所述第二Egress PE的链路的cost值T和所述第二Egress PE的Router ID;

其中所述N和所述T为内部网关协议IGP的最大cost值,所述S所述M满足(1)或(2):

(1)Sxy4+S>Sxy3+M ①和

C34+S>M ②

其中,Px为所述第一Egress PE的任何邻居节点,Pxy为去掉所述第一Egress PE后的网络中所述Px的任意邻居节点,Sxy3为所述Pxy到所述第一Egress PE的最短路径的cost值,Sxy4为所述Pxy到所述第二Egress PE的最短路径的cost值,C34为所述第一Egress PE到所述第二Egress PE的最短路径的cost值;

(2)X+M<Y+S ③

其中X为从所述Ingress PE到所述第一Egress PE的最短路径的cost值,Y为从所述Ingress PE到所述第二Egress PE的最短路径的cost值。

在第三方面的第一种可能的实现方式中,在所述第一Egress PE和所述第二Egress PE上生成虚拟节点,包括:所述第一Egress PE和所述第二Egress PE通过动态协商的方式生成所述虚拟节点。

结合第三方面的第一种可能的实现方式,在第三方面的第二种可能的实现方式中,所述第一Egress PE和所述第二Egress PE通过动态协商的方式生成所述虚拟节点,包括:所述第一Egress PE和所述第二Egress PE之间建立框间通信协议ICCP连接,分别向对方发送自身的优先级,选择优先级高的一方来确定所述虚拟节点的Router ID。

结合第三方面的第二种可能的实现方式,在第三方面的第三种可能的实现方式中,所述虚拟节点的Router ID是所述第一Egress PE和所述第二Egress PE中优先级高的一方所拥有的且未被占用的网络协议IP地址。

结合第三方面的第三种可能的实现方式,在第三方面的第四种可能的实现方式中,如果所述第一Egress PE和所述第二Egress PE的优先级相等,则比较所述第一Egress PE和所述第二Egress PE的地址,由所述第一Egress PE和所述第二Egress PE中地址较大一方来确定所述虚拟节点的Router ID。

结合第三方面的第三种可能的实现方式,在第三方面的第五种可能的实现方式中,如果所述第一Egress PE和所述第二Egress PE的优先级相等,则比较所述第一Egress PE和所述第二Egress PE的地址,由所述第一Egress PE和所述第二Egress PE中地址较小一方来确定所述虚拟节点的Router ID。

结合第三方面的第四种或第五种可能的实现方式,在第三方面的第六种可能的实现方式中,所述虚拟节点的Router ID是所述第一Egress PE和所述第二Egress PE中地址较大一方的所拥有且未使用的地址。

结合第三方面的第四种或第五种可能的实现方式,在第三方面的第七种可能的实现方式中,所述虚拟节点的Router ID是所述第一Egress PE和所述第二Egress PE中地址较小一方的所拥有且未使用的地址。

结合第三方面的第一种或第二种或第三种或第四种或第五种或第六种或第七种可能的实现方式,在第三方面的第八种可能的实现方式中,所述第一Egress PE和所述第二Egress PE通过动态协商的方式生成所述虚拟节点,包括:通过在框间通信协议ICCP报文中携带第一类型-长度-值TLV,所述第一TLV包括vNH字段和优先级字段,所述优先级字段携带所述ICCP报文的发送方的优先级,所述vNH字段携带所述ICCP报文的发送方的地址。

结合第三方面、第三方面的第一种或第二种或第三种或第四种或第五种或第六种或第七种或第八种可能的实现方式,在第三方面的第九种可能的实现方式中,所述第一Egress PE和所述第二Egress PE分别为第一VPN的所述第一转发等价类分配所述第一标签,包括:所述第一Egress PE和所述第二Egress PE通过动态协商的方式来分配所述第一标签。

结合第三方面的第九种可能的实现方式,在第三方面的第十种可能的实现方式中,所述第一Egress PE和所述第二Egress PE通过动态协商的方式来分配所述第一标签,包括:所述第一Egress PE和所述第二Egress PE之间建立ICCP连接,分别向对方发送自身的优先级,选择优先级高的一方来确定所述第一标签。

结合第三方面的第十种可能的实现方式,在第三方面的第十一种可能的实现方式中,如果所述第一Egress PE和所述第二Egress PE的优先级相等,则比较所述第一Egress PE和所述第二Egress PE的地址,由所述第一Egress PE和所述第二Egress PE中地址较大一方来确定所述第一标签。

结合第三方面的第十种可能的实现方式,在第三方面的第十二种可能的实现方式中,如果所述第一Egress PE和所述第二Egress PE的优先级相等,则比较所述第一Egress PE和所述第二Egress PE的地址,由所述第一Egress PE和所述第二Egress PE中地址较小一方来确定所述第一标签。

结合第三方面的第九种或第十种或第十一种或第十二种可能的实现方式,在第三方面的第十三种可能的实现方式中,所述第一Egress PE和所述第二Egress PE通过动态协商的方式来分配所述第一标签,通过在ICCP报文中携带第二TLV来实现,所述第二TLV包括VPN label字段和优先级字段,所述优先级字段携带所述ICCP报文的发送方的优先级,所述VPN label字段携带所述ICCP报文的发送方提供的所述第一标签。

结合第三方面的第十三种可能的实现方式,在第三方面的第十四种可能的实现方式中,所述第二TLV还包括可用标签上限字段和可用标签下限字段,所述可用标签上限字段和所述可用标签下限字段用来确定所述ICCP报文的发送方可以提供的标签范围。

结合第三方面、第三方面的第一种或第二种或第三种或第四种或第五种或第六种或第七种或第八种或第九种或第十种或第十一种或第十二种或第十三种可能的实现方式,在第三方面的第十五种可能的实现方式中,当所述VPN为L3VPN时,可以采用每VPN标签分配方式,也可以采用每路由标签分配方式或者每接口标签分配方式。

结合第三方面、第三方面的第一种或第二种或第三种或第四种或第五种或第六种或第七种或第八种或第九种或第十种或第十一种或第十二种或第十三种或第十四种或第十五种可能的实现方式,在第三方面的第十六种可能的实现方式中,如果满足(1)或(2)的M-S对有多组,则选择S最小的M-S对或者M最小的M-S对,将选择的M-S对中的M携带在所述第一链路状态信息中,将选择的M-S对中的S携带在所述第三链路状态信息中。

结合第三方面、第三方面的第一种或第二种或第三种或第四种或第五种或第六种或第七种或第八种或第九种或第十种或第十一种或第十二种或第十三种或第十四种或第十五种可能的实现方式,在第三方面的第十七种可能的实现方式中,对于方式(2)中,M=1,S为内部网关协议IGP的最大cost值。

第四方面,本发明实施例提供一种标签分配方法,所述方法应用于网络系统,所述网络系统包括第一出口运营商边缘设备Egress PE、第二Egress PE和入口运营商边缘设备Ingress PE,所述第一Egress PE与客户边缘设备CE通信,所述第二Egress PE与所述CE通信,所述第一Egress PE和所述第二Egress PE位于包括所述第一Egress PE和所述第二Egress PE的冗余保护组内,其中所述第一Egress PE为主用设备,所述第二Egress PE为备用设备;

所述方法包括:

在所述第一Egress PE生成虚拟节点,所述虚拟节点具有所述网络系统中全局唯一的Router ID,所述虚拟节点用作所述第一Egress PE的下一跳节点,所述虚拟节点用作所述第二Egress PE的下一跳节点;

在所述第二Egress PE上生成所述虚拟节点;

所述第一Egress PE发送第一链路状态消息给所述Ingress PE,所述第一链路状态消息包括:所述第一Egress PE的Router ID和所述第一Egress PE到所述虚拟节点的链路的状态信息,所述状态信息包括所述第一Egress PE到所述虚拟节点的链路的cost值M和所述虚拟节点的Router ID;

所述第一Egress PE发送第二链路状态消息给所述Ingress PE,所述第二链路状态消息包括:所述虚拟节点的Router ID、所述虚拟节点到所述第一Egress PE的链路的状态信息和所述虚拟节点到所述第二Egress PE的链路的状态信息,所述虚拟节点到所述第一Egress PE的链路的状态信息包括所述虚拟节点到所述第一Egress PE的链路的cost值N和所述第一Egress PE的Router ID,所述虚拟节点到所述第二Egress PE的链路的状态信息包括所述虚拟节点到所述第二Egress PE的链路的cost值T和所述第二Egress PE的Router ID;

所述第二Egress PE发送第三链路状态消息给所述Ingress PE,所述第三链路状态消息包括:所述第二Egress PE的Router ID和所述第二Egress PE到所述虚拟节点的链路的状态信息,所述第二Egress PE到所述虚拟节点的链路的状态信息包括所述第二Egress PE到所述虚拟节点的链路的cost值S和所述虚拟节点的Router ID;

所述第二Egress PE发送第四链路状态消息给所述Ingress PE,所述第四链路状态消息包括:所述虚拟节点的Router ID、所述虚拟节点到所述第一Egress PE的链路的状态信息和所述虚拟节点到所述第二Egress PE的链路的状态信息,所述虚拟节点到所述第一Egress PE的链路的状态信息包括所述虚拟节点到所述第一Egress PE的链路的cost值N和所述第一Egress PE的Router ID,所述虚拟节点到所述第二Egress PE的链路的状态信息包括所述虚拟节点到所述第二Egress PE的链路的cost值T和所述第二Egress PE的Router ID;

所述第一Egress PE为第一虚拟专用网络VPN的第一转发等价类分配第一标签,并发送所述第一标签和所述虚拟节点的Router ID给所述Ingress PE;

所述第二Egress PE为所述第一VPN的所述第一转发等价类分配所述第一标签,并发送所述第一标签和所述虚拟节点的Router ID给所述Ingress PE。

在第四方面的第一种可能的实现方式中,在所述第一Egress PE和所述第二Egress PE上生成所述虚拟节点,包括:所述第一Egress PE和所述第二Egress PE通过动态协商的方式生成所述虚拟节点。

结合第四方面的第一种可能的实现方式,在第四方面的第二种可能的实现方式中,所述第一Egress PE和所述第二Egress PE通过动态协商的方式生成所述虚拟节点,包括:所述第一Egress PE和所述第二Egress PE之间建立框间通信协议ICCP连接,分别向对方发送自身的优先级,选择优先级高的一方来确定所述虚拟节点的Router ID。

结合第四方面、第四方面的第一种或第二种可能的实现方式,在第四方面的第三种可能的实现方式中,所述虚拟节点的Router ID是所述第一Egress PE和所述第二Egress PE中优先级高的一方所拥有的且未被占用的IP地址。

结合第四方面的第二种或第三种可能的实现方式,在第四方面的第四种可能的实现方式中,如果所述第一Egress PE和所述第二Egress PE的优先级相等,则比较所述第一Egress PE和所述第二Egress PE的地址,由所述第一Egress PE和所述第二Egress PE中地址较大一方来确定所述虚拟节点的Router ID。

结合第四方面的第二种或第三种可能的实现方式,在第四方面的第五种可能的实现方式中,如果所述第一Egress PE和所述第二Egress PE的优先级相等,则比较所述第一Egress PE和所述第二Egress PE的地址,由所述第一Egress PE和所述第二Egress PE中地址较小一方来确定所述虚拟节点的Router ID。

结合第四方面、第四方面的第一种或第二种或第三种或第四种或第五种可能的实现方式,在第四方面的第六种可能的实现方式中,所述虚拟节点的Router ID是所述第一Egress PE和所述第二Egress PE中地址较大一方所拥有的且未被占用的地址。

结合第四方面、第四方面的第一种或第二种或第三种或第四种或第五种可能的实现方式,在第四方面的第七种可能的实现方式中,所述虚拟节点的Router ID是所述第一Egress PE和所述第二Egress PE中地址较小一方所拥有的且未被占用的地址。

结合第四方面、第四方面的第一种或第二种或第三种或第四种或第五种或第六种或第七种可能的实现方式,在第四方面的第八种可能的实现方式中,所述第一Egress PE和所述第二Egress PE通过动态协商的方式生成所述虚拟节点,包括:通过在框间通信协议ICCP报文中携带第一类型-长度-值TLV,所述第一TLV包括vNH字段和优先级字段,所述优先级字段携带所述ICCP报文的发送方的优先级,所述vNH字段携带所述CC报文的发送方的地址。

结合第四方面、第四方面的第一种或第二种或第三种或第四种或第五种或第六种或第七种或第八种可能的实现方式,在第四方面的第九种可能的实现方式中,所述第一Egress PE和所述第二Egress PE分别为第一VPN的所述第一转发等价类分配所述第一标签,包括:所述第一Egress PE和所述第二Egress PE通过动态协商的方式来分配所述第一标签。

结合第四方面的第九种可能的实现方式,在第四方面的第十种可能的实现方式中,所述第一Egress PE和所述第二Egress PE通过动态协商的方式来分配所述第一标签,包括:所述第一Egress PE和所述第二Egress PE之间建立ICCP连接,分别向对方发送自身的优先级,选择优先级高的一方来确定所述第一标签。

结合第四方面的第十种可能的实现方式,在第四方面的第十一种可能的实现方式中,如果所述第一Egress PE和所述第二Egress PE的优先级相等,则比较所述第一Egress PE和所述第二Egress PE的地址,由所述第一Egress PE和所述第二Egress PE中地址较大一方来确定所述第一标签。

结合第四方面的第十种可能的实现方式,在第四方面的第十二种可能的实现方式中,如果所述第一Egress PE和所述第二Egress PE的优先级相等,则比较所述第一Egress PE和所述第二Egress PE的地址,由所述第一Egress PE和所述第二Egress PE中地址较小一方来确定所述第一标签。

结合第四方面的第九种或第十种或第十一种或第十二种可能的实现方式,在第四方面的第十三种可能的实现方式中,所述第一Egress PE和所述第二Egress PE通过动态协商的方式来分配所述第一标签,通过在ICCP报文中携带第二TLV来实现,所述第二TLV包括VPN label字段和优先级字段,所述优先级字段携带所述ICCP报文的发送方的优先级,所述VPN label字段携带所述ICCP报文的发送方提供的所述第一标签。

结合第四方面的第十三种可能的实现方式,在第四方面的第十四种可能的实现方式中,所述第二TLV还包括可用标签上限字段和可用标签下限字段,所述可用标签上限字段和所述可用标签下限字段用来确定所述ICCP报文的发送方可以提供的标签范围。

结合第四方面、第四方面的第一种或第二种或第三种或第四种或第五种或第六种或第七种或第八种或第九种或第十种或第十一种或第十二种或第十三种或第十四种可能的实现方式,在第四方面的第十五种可能的实现方式中,当所述VPN为L3VPN时,可以采用每VPN标签分配方式,也可以采用每路由标签分配方式或者每接口标签分配方式。

第五方面,本发明实施例提供一种第一运营商边缘设备PE,所述第一PE位于包括第二PE、入口运营商边缘设备Ingess PE和所述第一PE的网络系统内,所述第一PE和所述第二PE作为出口运营商边缘设备Egress PE,所述第一PE和所述第二PE位于包括所述第一PE和所述第二PE的冗余保护组内,所述第一PE作为主用PE,所述第二PE作为备用PE,所述第一PE与客户边缘设备CE通信,所述第二PE与所述CE通信;

所述第一PE包括:第一虚拟节点生成模块、第一状态发布模块、第一虚拟节点状态发布模块,

其中:

所述第一虚拟节点生成模块,用于在所述第一PE上生成虚拟节点,所述虚拟节点具有所述网络系统中全局唯一的Router ID,所述虚拟节点用作所述第一PE的下一跳节点,所述虚拟节点用作所述第二PE的下一跳节点;

所述第一状态发布模块,用于发送第一链路状态消息给所述Ingress PE,所述第一链路状态消息包括:所述第一PE的Router ID和所述第一PE到所述虚拟节点的链路的状态信息,所述第一PE到所述虚拟节点的链路的状态信息包括所述第一PE到所述虚拟节点的链路的cost值M和所述虚拟节点的Router ID;

所述第一虚拟节点状态发布模块,还用于发送第二链路状态消息给所述Ingress PE,所述第二链路状态消息包括:所述虚拟节点的Router ID、所述虚拟节点到所述第一PE的链路的状态信息和所述虚拟节点到所述第二PE的链路的状态信息,所述虚拟节点到所述第一PE的链路的状态信息包括所述虚拟节点到所述第一PE的链路的cost值N和所述第一PE的Router ID,所述虚拟节点到所述第二PE的链路的状态信息包括所述虚拟节点到所述第二PE的链路的cost值T和所述第二PE的Router ID,其中所述N和所述T为内部网关协议IGP的最大cost值,所述S和所述M满足(1)或(2):

(1)

Sxy4+S>Sxy3+M ①和

C34+S>M ②

其中,Px为所述第一PE的任何邻居节点,Pxy为去掉所述第一PE后的网络中所述Px的任意邻居节点,Sxy3为所述Pxy到所述第一PE的最短路径的cost值,Sxy4为所述Pxy到所述第二PE的最短路径的cost值,C34为所述第一PE到所述第二PE的最短路径的cost值;

(2)X+M<Y+S ③

其中X为从所述Ingress PE到所述第一PE的最短路径的cost值,Y为从所述Ingress PE到所述第二PE的最短路径的cost值。

在第五方面的第一种可能的实现方式中,还包括第一虚拟节点地址协商模块,用于与所述第二PE协商确定相同的虚拟节点的Router ID。

结合第五方面、第五方面的的第一种可能的实现方式,在第五方面的第二种可能的实现方式中,还包括所述第一PE还可以包括第一标签协商模块,用于与所述第二PE协商确定相同的标签。

结合第五方面、第五方面的的第一种或第二种可能的实现方式,在第五方面的第三种可能的实现方式中,如果满足(1)或(2)的M-S对有多组,则选择S最小的M-S对或者M最小的M-S对,将选择的M-S对中的M携带在所述第一链路状态信息中,将选择的M-S对中的S携带在所述第三链路状态信息中。

结合第五方面、第五方面的的第一种或第二种可能的实现方式,在第五方面的第二种可能的实现方式中,对于方式(2)中,M=1,S为IGP的最大cost值。

本发明实施例所述的方法、设备、系统,通过在冗余保护组中的Egress PE上配置相同的虚拟下一跳,并将该虚拟下一跳节点的地址发送给Ingress PE,从而Ingress PE能够建立经过主用Egress PE的主隧道,以及依次经过主用Egress EP的上一跳节点、备用Egress PE的上一跳节点、备用Egress的备用隧道,当主用Egress PE发生故障时,可以直接切换到备用隧道,该切换所涉及的节点设备相对较少,因而可以以较短的时间完成保护切换,对该隧道上承载的上层业务来说,该切换是无缝的、不被上层业务感知的。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例的一种网络架构示意图;

图2为本发明实施例的建立隧道的方法的流程示意图;

图3为本发明实施例的一种包括虚拟节点的网络架构示意图;

图4为本发明实施例的一种协商虚拟节点的vNH的方法的流程示意图;

图5为本发明实施例的一种通过扩展ICCP来协商虚拟节点的vNH的方法的流程示意图;

图6为本发明实施例的ICCP报文头(ICC header)格式的示意图;

图7为图6所示的ICCP报文头中的ICC参数的格式的示意图;

图8为本发明实施例的vNH TLV的格式的示意图;

图9为本发明实施例的vNH RG connect消息的格式示意图;

图10为本发明实施例的vNH RG disconnect消息的格式示意图;

图11为本发明实施例的vNH RG application data消息的格式示意图;

图12为本发明实施例的一种协商分配VPN标签的方法的流程示意图;

图13为本发明实施例的一种标签分配方法的示意图;

图14为本发明实施例的VPN connect消息的格式示意图;

图15(a)为本发明实施例的VPN disconnect code TLV的格式示意图;

图15(b)为本发明实施例的VPN disconnect Cause TLV的格式示意图;

图16为本发明实施例的VPN application data消息的格式示意图;

图17为本发明实施例的VPN label TLV的格式示意图;

图18为本发明实施例的口字形网络架构示意图;

图19和20分别为本发明实施例二的两种网络架构示意图;

图21和22分别为本发明实施例三的两种网络架构示意图;

图23为本发明实施例四的一种网络结构示意图;

图24为本发明实施例的另一种网络结构示意图;

图25为本发明实施例的另一种网络结构示意图;

图26为本发明实施例的一种第一PE设备的结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明实施例中提到的TLV,是指tag-length-value,标签-长度-值。本发明实施例中提到的IGP(Interior Gateway Protocol,内部网关协议),可以是OSPF(Open Shortest Path First,开放最短路径优先)协议、ISIS(Intermediate system to intermediate system,中间系统到中间系统)协议、MRT(Maximally Redundant Trees,最大冗余树)协议。本发明实施例中提到的隧道或路径可以为MPLS隧道、GRE(Generic Routing Encapsulation,通用路由封装)隧道、L2TP隧道、IPsec隧道。本发明实施例中,如果有多个Egress PE位于同一冗余保护组中,则该多个Egress PE之间通过ICCP协商vNH或标签时,均为两两之间进行ICCP协商。

本发明所有实施例中,如果采用MRT作为IGP协议,则设置M和S为任意合法值都可以保证Egress PE的上一跳节点能计算出第二路径(备用路径),比如设置M和S都为1。所述第二路径(备用路径)不经过第一路径(主用路径)经过的Egress PE。采用IGP协议中的MRT协议能不受组网限制地计算出第二路径(备用路径)。

本发明的所有实施例,均可以应用于双平面网络。一个网络N如果满足下面条件,称为双平面网络:

该网络包含R11,R12,...,R1n,R21,R22,...,R2n节点,1<=i<=n。

(b)当且仅当R1i和R1j间有链路时R2i和R2j间有链路,且这两个链路的cost值相等。

(c)R1i和R2j有链路的必要条件是i=j。

在该双平面网络网络中,由R1i节点及其之间的链路构成的网络部分称为该网络N的一个平面;由R2i节点及其之间的链路构成的网络部分称为该网络N的另外一个平面。R1i和R2i称为对称节点。其中,1<=i<=n。

本发明的所有实施例中,“网络”可以是IP网络或者MPLS网络,“节点”可以是路由设备,或者其他具有路由功能的设备。“PE”可以是路由设备,或者其他具有路由功能的设备。“Ingress PE”可以是路由设备,或者其他具有路由功能的设备。“Egress PE”可以是路由设备,或者其他具有路由功能的设备。CE及客户边缘设备可以是路由设备,或者其他具有路由功能的设备。

本发明的所有实施例中,“VPN标签”、“VPN路由标签”均指用于VPN路由的标签。

本发明的所有实施例中,IP地址,可以为IPv4(互联网协议第四版)地址或IPv6(互联网协议第六版)地址;IP网络是指IPv4网络或IPv6网络或者IPv4与IPv6混合组网的网络。

本发明的所有实施例中,Router ID是设备上的某个接口的地址。Router ID可以是环回地址(loopback address),即loopback接口的IP地址,也可以是设备的IP地址。当然,也可以是其他32位的无符号整数的标识。

如图1所示,网络中包括PE1、PE2、PE3、PE4、P1和P2等设备。PE(Provider Edge device,运营商边缘设备)1、PE2、PE3、PE4为网络的运营商边缘设备,CE(Customer Edge device,客户边缘设备)1和CE2为用户设备,CE1和CE2同属于一个虚拟专用网VPN(Virtual Private Network,VPN),假设CE1和CE2同属于VPN1。CE1位于站点site1,CE2位于site2。CE2双归连接到PE3和PE4。CE1可以依次经PE1、P1和PE3与CE2进行通信,也可以依次经PE2、P2和PE4与CE2进行通信。对于L3VPN而言,PE3和PE4可以通过BGP(Border Gateway Protocol,边界网关协议)建立邻居关系。

P1和P2是运营商设备(Provider device,运营商骨干设备),可以有一个或多个。也就是说,PE1和PE3之间的路径上可能有一个或多个P设备,PE2和PE4之间的路径上也可能存在一个或多个P设备。其中CE、PE、P设备都可以是路由器或其它具有路由功能的网络设备。PE设备还可以是BRAS(Broadband Remote Access Server,宽带远程接入服务器)。CE为用户提供到PE的连接,PE根据存放的路由信息将来自CE或LSP(Label Swiching Path,标签交换路径)的VPN数据处理后进行转发,并且PE还负责与其他PE交换路由信息。P设备是不连接任何CE的骨干网设备,根据分组的外层标签对VPN数据进行透明转发,P设备只维护到PE设备的路由信息而不维护VPN相关的路由信息。

实施例一

如图2所示,基于图1所示的网络架构,本发明实施例的建立隧道的方法,包括:

S200、建立包括第一Egress PE和第二Egress PE的冗余保护组

以图1和3所示的网络架构为例,冗余保护组中包括PE3和PE4,假定PE3为第一Egress PE,PE4为第二Egress PE。可以通过静态配置的方式将PE3和PE4配置在同一冗余保护组中,并指定PE3和PE4中的一个作为该冗余保护组中的主用Egress PE,另一个作为该冗余保护组的备用Egress PE。如果PE3和PE4之间运行BGP,PE3和PE4可以通过广播路由的方式发现对方和自身的下一跳均为CE2,因此确定PE3和PE4处于同一冗余保护组中。另外,PE3和PE4也可能通过路由反射器来确定双方处于同一冗余保护组中。对L3VPN,还可以用VPN路由的广播和本地从CE收到的路由比较来发现。

可选地,所述冗余保护组中可以有两个或两个以上的Egress PE。

S202、在第一Egress PE和所述第二Egress PE上生成虚拟节点

在所述第一Egress PE和所述第二Egress PE上成虚拟节点,所述虚拟节点具有所述网络中全局唯一的Router ID,所述虚拟节点用作所述第一Egress PE的下一跳节点,所述虚拟节点用作所述第二Egress PE的下一跳节点。所述虚拟节点的生成可以通过静态配置或者动态协商的方式实现。对于图1所示的网络架构,PE1作为Ingress PE,PE3和PE4作为Egress PE,在PE3和PE4上分别生成虚拟节点。该虚拟节点有一个Router ID。所述Router ID可以是环回loopback地址。该Router ID称为vNH(virtual Next HOP,虚拟下一跳)。包含虚拟节点的网络架构如图3所示。该虚拟节点的Router ID可以是PE3所拥有且未被占用的IP地址或者PE4所拥有且未被占用的IP地址,也可以是任何一个与该IGP域内的节点设备不重复的loopback地址或IP地址。该虚拟节点分别连接PE3和PE4,该虚拟节点代表PE3和PE4的保护关系。该虚拟节点的vNH可以通过在PE3和PE4上静态配置实现,也可以通过PE3和PE4之间的ICCP(Inter-Chassis Communication Protocol,框间通信协议)协商实现。该虚拟节点仅对IGP(Internal Gateway Protocol,内部网关协议)域内的节点可见,即,仅对网络内的P设备和PE设备可见,对于CE2不可见,CE2仍然是与PE3和PE4分别连接。

虚拟节点的vNH可以采用网络中具有唯一性的loopback地址,可以采用静态配置或者动态选择的方法。静态配置需要在冗余保护组中的多个Egress PE上都做配置,在该实施例中可以是在PE3和PE4上静态配置虚拟节点的vNH。如果采用动态协商的方式配置虚拟节点的vNH,则是在冗余保护组中的多个Egress PE中动态协商选择一个loopback地址。

如图4所示,一种协商虚拟节点的vNH的方法,应用于L3VPN,包括:

S401、PE3和PE4一旦发现有备用Egress PE存在,则生成一个上下文标识<PE3,PE4>,并将该上下文标识发送给所述冗余保护组中的其他PE,上下文标识中的“PE3”和“PE4”可以分别用PE3的Router ID和PE4的Router ID表示。

S402、确定该上下文标识是否已经有选定的虚拟下一跳vNH,如果有已经有选定的虚拟下一跳vNH,则直接使用该选定的虚拟下一跳vNH作为该VPN路由的下一跳重新发布该VPN路由,携带第一属性,该第一属性用于表示PE3和PE4的优先级大小;

S403、如果没有选定的虚拟下一跳vNH,则从PE3和PE4中优先级高者的loopback地址池中选择一个未使用过的loopback地址或IP地址,作为该上下文标识的Router ID,并作为虚拟下一跳vNH,用该虚拟下一跳重新发布该VPN路由,该VPN路由携带第二属性,该第二属性表示该vNH的优先级大小。

S404、当收到携带该第二属性的路由时,PE3和PE4能够获知对端PE也具备上下文标识处理能力,则按照携带的属性比较PE3和PE4的优先级大小;如果PE3和PE4优先级相同,则比较对端路由中的下一跳和本端路由的下一跳,选择IP地址小的PE作为虚拟下一跳vNH。如果选择结果是本端地址,则不做处理;如果选择结果是对端PE,则按照新的vNH重新发布该VPN路由。

如图5所示,假设冗余保护组RG包括两个Egress PE PE3和PE4,PE3和PE4之间通过扩展ICCP(Inter-Chassis Communication Protocol,框间通信协议)来协商虚拟节点的vNH,一种通过扩展ICCP来协商虚拟节点的vNH的方法,包括:

S501,冗余保护组RG中的本端PE和对端PE分别向对方发送ICCP capability报文,请求建立ICCP连接;

S502,本端PE和对端PE收到对方发送的ICCP Capability报文后,本端PE和对端PE重启以建立ICCP连接;

S503,本端PE和对端PE分别向对方发送vNH RG connect报文;

S504,本端PE和对端PE收到对方发送到vNH RG connect报文后,向对方发送vNH RG connect A-bit=1,以确认收到了对方发送的vNH RG connect报文;

S505,本端PE和对端PE分别向对方发送vNH data消息(vNH data message),所述vNH data消息携带有vNH TLV,该vNH TLV中携带发送方的优先级;

S506,本端PE和对端PE收到对方发送的带有vNH TLV的vNH data消息后,将对方发送的vNH data消息携带的优先级与自身的优先级比较,如果对方发送的vNH data消息携带的优先级大于自身的优先级,则优先级小的一方将优先级大的一方所拥有且未被占用的地址配置为虚拟节点的vNH,优先级大的一方选择自身所拥有且未被占用的地址配置为虚拟节点的vNH。

在该实施例中,如果PE3的优先级大于PE4的优先级,则PE3上生成的虚拟节点的vNH可配置为PE3所拥有且未被占用的地址(比如地址1),PE4上生成的虚拟节点的vNH也可配置为PE3选择的地址(比如地址1);如果PE3的优先级小于PE4的优先级,则PE3上生成的虚拟节点的vNH可配置为PE4所拥有且未被占用的地址(比如地址2),PE4上生成的虚拟节点的vNH也可配置为PE4所拥有且未被占用的地址(比如地址2)。

其中ICCP消息可以由LDP(Label Distribution Protocol,标签分发协议)消息承载。该LDP消息可以包含LDP报文头和type值为0x0700~0x07ff的LDP报文。

图5的实施例中提到的消息介绍如下:

ICCP报文头(ICC header)格式如图6所示。ICCP报文头包括U比特(U bit)、消息类型(Message Type)、消息长度(Message Length)、消息标识(Message ID)、ICC RG ID TLV、强制参数(Mandatory Parameters)和可选参数(Optional Parameters)。各参数的意义如下:

U比特:未知消息位。当收到未知消息时,如果U=0,则向消息生成方返回通知;如果U=1,该未知消息被忽略。

消息类型(Message Type):标识该ICCP消息的类型,必须在0x0700到0x07ff之间的范围内。

消息长度(Message Length):两个字节整数,标识该消息的字节总长度,不包括U比特、消息类型和长度域

消息标识(Message ID):四个字节值,用于标识该消息。发送方PE用该字段来方便标识RG通知消息可以应用于该消息。PE发送RG通知消息作为该消息的响应时,应当将该消息标识加入RG通知消息的“NAK TLV”中。

ICC RG ID TLV:类型0x0005的TLV,长度4,包含4个字节非定型整数,指示发送设备所在的冗余保护组(Redundancy Group)

强制参数(Mandatory Parameters):可变长度的要求参数。

可选参数(Optional Parameters):可变长度的可选消息参数。

在图6所示的ICC header格式中,ICC(Inter-Chassis Communication)参数的格式如图7所示。ICC参数包括U比特、F比特、类型、长度和TLV。各个字段的意义如下:

U比特(U-bit):未知消息位。当收到未知消息时,如果U=0,则向消息生成方返回通知;如果U=1,该未知消息被忽略。

F比特(F-bit):转发未知的TLV比特。该F比特用于当U比特设定且包含未知TLV的LDP消息被转发时。如果F=0,该未知TLV将不会与包含的消息一起转发;如果F=1,该未知TLV将会与包含的消息一起转发。通过设置U比特和F比特,TLV可以被作为不透明数据(opaque data)在节点中转发而不识别该TLV。

类型(Type):14比特,表示参数类型

长度(Length):TLV的字节长度,不包括U比特、F比特、类型和长度域

TLV(s):根据消息类型,可以有一个或多个TLV,也可以没有TLV

本发明实施例中,ICCP协商虚拟节点的vNH,可以通过在ICC消息中增加vNH TLV来实现。如图8所示,为本发明实施例的vNH TLV的格式示意图。该vNH TLV包括U比特、F比特、类型(Type)、长度(Length)、优先级(Priority)、vNH和保留字段(Reserved)。各个字段的意义如下:

U比特:未知消息位。当收到未知消息时,如果U=0,则向消息生成方返回通知;如果U=1,该未知消息被忽略。

F比特(F-bit):转发未知的TLV比特。该F比特用于当U比特设定且包含未知TLV的LDP消息被转发时。如果F=0,该未知TLV将不会与包含的消息一起转发;如果F=1,该未知TLV将会与包含的消息一起转发。通过设置U比特和F比特,TLV可以被作为不透明数据(opaque data)在节点中转发而不识别该TLV

类型(Type):14比特,表示参数类型,可以任意设置

长度(Length):TLV的字节长度,不包括U比特、F比特、类型和长度域。

优先级(Priority):表示生成包含该TLV的消息的节点的优先级

虚拟下一跳vNH:表示生成包含该TLV的消息的节点的IP地址,该IP地址可以是IPv4地址或者IPv6地址

保留字段(Reserved):保留用于其他用途。

冗余保护组中的多个Egress PE通过ICCP协商虚拟节点的vNH时,在本端Egress PE发给对端Egress PE的vNH data消息中携带vNH TLV,由于该vNH TLV中携带有vNH data消息的发送方自身的优先级和发送方自身的IP地址,因此收到该vNH data消息的PE将自身的优先级与收到的vNH data消息中携带的优先级比较,如果自身的优先级高于收到的vNH data消息中携带的优先级,则选择自身选择的vNH作为虚拟节点的Router ID;如果自身的优先级小于收到的vNH data消息中携带的优先级,则选择收到的vNH data消息的发送方选择的vNH作为虚拟节点的Router ID;如果自身的优先级等于收到的vNH data消息中携带的优先级,则选择收到的vNH data消息的发送方和自身IP地址大的一方选择的vNH作为虚拟节点的Router ID。也就是说,PE3和PE4分别向对方发送NH data消息,PE3发送的第一vNH data消息中携带PE3的优先级和PE3的IP地址,PE4发送的第二vNH data消息中携带PE4的优先级和PE4的IP地址。如果PE3的优先级高于PE4的优先级,则选择PE3选择的vNH作为虚拟节点的Router ID;如果PE3的优先级小于PE4的优先级,则选择PE4选择的vNH作为虚拟节点的Router ID;如果PE3的优先级等于PE4的优先级,则比较PE3的IP地址和PE4的IP地址的大小,如果PE3的IP地址大于PE4的IP地址,则选择PE3选择的vNH作为虚拟节点的Router ID,如果PE3的IP地址小于PE4的IP地址,则选择PE4选择的vNH作为虚拟节点的Router ID。当然,比较IP地址大小时,也可以选择IP地址小的PE来选择vNH作为虚拟节点的Router ID,即比较PE3的IP地址和PE4的IP地址的大小,如果PE3的IP地址大于PE4的IP地址,则选择PE4选择的vNH作为虚拟节点的Router ID,如果PE3的IP地址小于PE4的IP地址,则选择PE3选择的vNH作为虚拟节点的Router ID。优先级高的Egress PE可以选择自身所拥有且未被占用的IP地址或者loopback地址作为冗余保护组中每个Egress PE上生成的虚拟节点的vNH,也可以选择网络中全局唯一的Router ID作为冗余保护组中每个Egress PE上生成的虚拟节点的vNH。

vNH RG connect消息格式如图9所示。vNH RG connect消息携带vNH connect TLV,该vNH connect TLV包括U比特、F比特、类型(Type)、长度(Length)、协议版本(Protocol Version)、A比特、保留字段(Reserved)和可选的子TLV。其中,类型(Type)的值为自定义,比如可以为0x0101。

如图10所示,vNH RG disconnect消息中,type值可以为0x0701。vNH RG disconnect message携带disconnect code TLV,当然也可以携带其他可选的TLV。vNH disconnect code TLV中的Type和Length的长度为2字节,Type和Length的值自定义,比如vNH disconnect code TLV中的type可以为0x0104。

vNH RG application data消息格式如图11所示,vNH RG application data消息中,消息类型和TLV类型的编码值只是一种可能的编码值,还可以是其他值,只要不和标准(draft-ietf-pwe3-iccp-11即其他相关标准)中的已分配值冲突即可。

在所述第一Egress PE上生成所述虚拟节点之后,所述第一Egress PE发送第一链路状态消息给入口运营商边缘设备Ingress PE,所述第一链路状态消息包括:所述第一Egress PE的Router ID和所述第一Egress PE到所述虚拟节点的链路的状态信息,所述第一Egress PE到所述虚拟节点的链路的状态信息包括所述第一Egress PE到所述虚拟节点的链路的cost值M和所述虚拟节点的Router ID。

在所述第一Egress PE上生成所述虚拟节点之后,所述第一Egress PE发送第二链路状态消息给所述Ingress PE,所述第二链路状态消息包括:所述虚拟节点的Router ID、所述虚拟节点到所述第一Egress PE的链路的状态信息和所述虚拟节点到所述第二Egress PE的链路的状态信息,所述虚拟节点到所述第一Egress PE的链路的状态信息包括所述虚拟节点到所述第一Egress PE的链路的cost值N和所述第一Egress PE的Router ID,所述虚拟节点到所述第二Egress PE的链路的状态信息包括所述虚拟节点到所述第二Egress PE的链路的cost值T和所述第二Egress PE的Router ID。其中所述N和所述T为内部网关协议IGP的最大cost值。

在所述第二Egress PE上生成所述虚拟节点之后,所述第二Egress PE发送第三链路状态消息给所述Ingress PE,所述第三链路状态消息包括:所述第二Egress PE的Router ID和所述第二Egress PE到所述虚拟节点的链路的状态信息,所述第二Egress PE到所述虚拟节点的链路的状态信息包括所述第二Egress PE到所述虚拟节点的链路的cost值S和所述虚拟节点的Router ID。

在所述第二Egress PE上生成所述虚拟节点之后,所述第二Egress PE发送第四链路状态消息给所述Ingress PE,所述第四链路状态消息包括:所述虚拟节点的Router ID、所述虚拟节点到所述第一Egress PE的链路的状态信息和所述虚拟节点到所述第二Egress PE的链路的状态信息,所述虚拟节点到所述第一Egress PE的链路的状态信息包括所述虚拟节点到所述第一Egress PE的链路的cost值N和所述第一Egress PE的Router ID,所述虚拟节点到所述第二Egress PE的链路的状态信息包括所述虚拟节点到所述第二Egress PE的链路的cost值T和所述第二Egress PE的Router ID。其中所述N和所述T为内部网关协议IGP的最大cost值。

所述Ingress PE(比如PE1)收到所述第一链路状态消息、所述第二链路状态消息、所述第三链路状态消息和所述第四链路状态消息后,获得所述虚拟节点的vNH、所述第一Egress PE到所述虚拟节点的链路的cost值M和所述第二Egress PE到所述虚拟节点的链路的cost值S。

根据网络中采用的隧道类型不同,所述第一链路状态消息、所述第二链路状态消息、所述第三链路状态消息和所述第四链路状态消息中的任何一个还可能包括其他属性,比如对MPLS TE隧道,还包括带宽、亲和属性、颜色等中的一个或多个。

S和M的值有多种设置方法,比如对采用显式路由的MPLS TE隧道,S和M可以设置成任意合法的IGP cost值。也可以静态配置S和M。

此外本发明给出了一种用于GRE隧道和基于LDP建立的MPLS隧道的自动计算方法。

所述第一Egress PE和所述第二Egress PE中的至少一个,按照方式(1)或(2)确定所述第一Egress PE到所述虚拟节点的链路的cost值M以及所述第二Egress PE到所述虚拟节点的链路的cost值S,并将确定的所述第一Egress PE到所述虚拟节点的链路的cost值M以及所述第二Egress PE到所述虚拟节点的链路的cost值S同步到所述第一Egress PE和所述第二Egress PE所在的冗余保护组中:

(1)S和M满足:

Sxy4+S>Sxy3+M ①和

C34+S>M ②

其中,Px为所述第一Egress PE的任何邻居节点,Pxy为去掉所述第一Egress PE后的网络中所述Px的任意邻居节点,Sxy3为所述Pxy到所述第一Egress PE的最短路径的cost值,Sxy4为所述Pxy到所述第二Egress PE的最短路径的cost值,C34为所述第一Egress PE到所述第二Egress PE的最短路径的cost值。

(2)S和M满足:

X+M<Y+S ③

其中X为从所述Ingress PE到所述第一Egress PE的最短路径的cost值,Y为从所述Ingress PE到所述第二Egress PE的最短路径的cost值。

对于方式(1),求解同时满足上述不等式①和不等式②的S和M,即,求解同时满足不等式①和不等式②的M-S对。

对于Egress PE到虚拟节点的链路的cost值的计算,冗余保护组中的每个Egress PE均可计算满足不等式①和不等式②的M-S对,即冗余保护组中的PE3可以计算满足不等式①和不等式②的M-S对,冗余保护组中的PE4也可以计算满足不等式①和不等式②的M-S对。

如果冗余保护组中的多个Egress PE计算出了不同的M-S对,则多个Egress PE之间可以通过协商的方式确定最终部署在冗余保护组的所有Egress PE上的M和S。

可选地,如果根据方式(1)或(2)获得多组满足条件的M-S对,则选择S最小的M-S对或者M最小的M-S对,并将选择的M-S对同步到冗余保护组的所有Egress PE。将选择的M-S对中的M携带在所述第一链路状态信息中,将选择的M-S对中的S携带在所述第三链路状态信息中。

可选地,可以在冗余保护组中的任意一个Egress PE上根据方式(1)或方式(2)确定M-S对,并将确定的M-S对同步到冗余保护组中的其他Egress PE上。可选地,对于将确定的M-S对同步到冗余保护组中的其他Egress PE上,可以通过同步协议实现。

可选地,也可以直接按照方式(2)在冗余保护组的所有Egress PE上配置M和S。比如,可以将M设置为1,将S设置为IGP协议中的cost值的最大值。

可选地,还可以在冗余保护组的多个Egress PE上按照方式(1)或(2)计算M和S,如果根据方式(1)或(2)获得多组满足条件的M-S对,则选择S最小的M-S对或者M最小的M-S对,当然,也可以任选一组满足不等式①和②的M-S对。将选择的M-S对中的M携带在所述第一链路状态信息中,将选择的M-S对中的S携带在所述第三链路状态信息中。

S204、建立从Ingress PE到所述虚拟节点的隧道

结合图3的网络架构,假定PE3为第一Egress PE,PE4为第二Egress PE,PE1为Ingress PE,建立从Ingress PE到所述虚拟节点的隧道。PE1通过IGP计算出以PE1为起点,经过PE3的第一路径:PE1->P1->PE3->虚拟节点。PE3的上一跳节点P1通过IGP计算出以P1为起点,不经过PE3,经过PE4的第三路径:P1->P2->PE4->虚拟节点,该第三路径和第一路径中的PE1->P1组成第二路径:PE1->P1->P2->PE4->虚拟节点。第二路径不经过Egress PE PE3。从Ingress PE到所述虚拟节点的隧道包括第一路径和第二路径。

所述第一路径和第二路径可以是通过运行LDP生成的MPLS LSP,也可以是根据其他协议生成的路径或隧道。所述IGP可以是OSPF(Open Shortest Path First,开放最短路径优先)协议或ISIS(Intermediate System to Intermediate System,中间系统到中间系统)协议或MRT。

在图3所示的网络架构中,PE1为Ingress PE,PE3和PE4为Egress PE,假设PE3为包括PE3和PE4的冗余保护组中的主用设备(Primary PE),PE4为PE3和PE4所在的冗余保护组中的备用设备(Backup PE),建立一条经过主用设备PE3到达虚拟节点的主隧道或主路径PE1->P1->PE3->虚拟节点,同时建立依次经过主用设备PE3的上一跳节点P1、备用设备PE4的上一跳节点、备用设备PE4到达虚拟节点的保护隧道或者保护路径PE1->P1->P2->PE4->虚拟节点,该保护隧道或者保护路径不经过主用设备PE3。

主隧道的建立是经过PE3还是PE4因隧道类型不同而不同,每个节点(包含路径的中间节点)都按照它自己到虚拟节点的总cost确定下一跳,从而得到整个隧道路径。对LDP建立的MPLS(Multiple Protocol Label Switch,多协议标签交换)隧道,隧道是依赖路由的,当需要把PE3作为主隧道的经过节点时,可以按照上述的IGP链路cost值设置方法设置。当需要把PE4作为主隧道的经过节点时,可以把上述PE3和PE4的IGP的链路cost值交换。

链路cost值的设置还可以有其他的设置方法,对具体的网络可以有很多个值可以用,通常是个范围。上述方法只是其中之一。

一对互为保护关系的PE谁是主用设备,谁是备用设备是相对隧道的Ingress PE(比如图3中的PE1)而言的,不同的Ingress PE可能会有不同的主用设备和备用设备。当采用LDP隧道时,上述的cost设置在M、S有解时能够根据LFA算法计算出第二路径,从而使得Egress PE的保护能由Egress PE的上一跳节点P设备把流量切换到第二路径来完成。采用该方法,无需更改现网仅支持LFA的P设备,只需替换Egress PE就可以实现本发明实施例的方法。另一种cost值的设置方法是:M和S满足X+M<Y+S,其中X为从所述Ingress PE到所述第一Egress PE的最短路径的cost值,Y为从所述Ingress PE到所述第二Egress PE的最短路径的cost值。比如,可以设置M为1,S为IGP的合法最大值(不同IGP协议的合法最大值不同,具体的实现厂家也会稍有区别)。该cost设置对所有的Ingress PE都有相同的主用设备和备用设备。有时候,谁是主用设备谁是备用设备并不重要,如果不同的Ingress PE能相对均匀地选择冗余保护组中的一个PE作为主用Egress PE则利于流量负载分担。

如果采用MRT作为IGP协议,则设置M和S为任意合法值都可以保证Egress PE的上一跳能计算出第二路径(备用路径),比如设置M和S都为1。所述第二路径(备用路径)不经过第一路径(主用路径)经过的Egress PE。采用IGP协议中的MRT协议则能不受组网限制地计算出第二路径(备用路径)。

该虚拟节点、该虚拟节点与PE3之间的链路、该虚拟节点与PE4之间的链路的生成,可以通过PE3和PE4之间的IGP协议完成。

当网络中的各个设备之间运行OSPF(Open Shortest Path First,开放式最短路径优先)协议时,PE3上生成虚拟节点后,PE3的链路状态及邻居关系均发生了变化,因此PE3更新自身的链路状态和邻居关系,构造第一链路状态广播数据LSA(Link State Advertisement,LSA),并将该第一LSA洪泛到整个网络中,该第一LSA包括:PE3的Router ID和PE3到该虚拟节点的链路的状态信息,PE3到该虚拟节点的链路的状态信息包括PE3到该虚拟节点的链路的cost值和该虚拟节点的Router ID。由于PE3上生成了该虚拟节点,PE3还会“代表”该虚拟节点构造第二LSA,并将该第二LSA洪泛到整个网络中。该第二LSA包括:该虚拟节点的Router ID、该虚拟节点到PE3的链路的状态信息和该虚拟节点到PE4的链路的链路的状态信息。该虚拟节点到PE3的链路的状态信息包括该虚拟节点到PE3的链路的cost值和PE3的Router ID,该虚拟节点到PE4的链路的状态信息包括该虚拟节点到PE4的链路的cost值和PE4的Router ID。类似地,冗余保护组中的其他Egress PE,也构造相应的LSA并将这些LSA洪泛到整个OSPF域中,该OSPF域可以是整个网络。比如PE4上生成该虚拟节点后,PE4的链路状态及邻居关系均发生了变化,因此PE4更新自身的链路状态和邻居关系,构造第三LSA,并将该第三LSA洪泛到整个网络中。该第三LSA包括:PE4的Router ID和PE4到该虚拟节点的链路的状态信息,PE4到该虚拟节点的链路的状态信息包括PE4到该虚拟节点的链路的cost值和该虚拟节点的Router ID。由于PE4上生成了该虚拟节点,PE4还会“代表”该虚拟节点构造第四LSA,并将该第四LSA洪泛到整个网络中,该第四LSA包括:该虚拟节点的Router ID、该虚拟节点到PE3的链路的状态信息、该虚拟节点到PE4的链路的状态信息。该虚拟节点到PE3的链路的状态信息包括该虚拟节点到PE3的链路的cost值和PE3的Router ID,该虚拟节点到PE4的链路的状态信息包括该虚拟节点到PE4的链路的cost值和PE4的Router ID。PE3和PE4把这些LSA泛洪到OSPF域中,这样,与PE3和PE4处于同一OSPF域内的其他节点,比如PE1就能“看到”该虚拟节点、该虚拟节点与PE3之间的链路、该虚拟节点与PE4之间的链路,从而能够建立从PE1到该虚拟节点的vNH的隧道。链路状态就是路由器的OSPF接口上的描述信息,例如接口上的IP地址、子网掩码、网络类型、cost值等等。OSPF路由器之间交换的并不是路由表,而是链路状态,OSPF路由器(比如PE1)通过获得网络中所有的链路状态信息,从而计算出到达每个目标精确的网络路径。

当PE3和PE4之间运行ISIS(Intermediate system to intermediate system,中间系统到中间系统)协议时,PE3上生成虚拟节点后,PE3的链路状态及邻居关系均发生了变化,因此PE3更新自身的链路状态和邻居关系,构造第一链路状态报文LSP(Link-state PDU),并将该第一LSP洪泛到整个网络中,该第一LSP包括:PE3的Router ID和PE3到该虚拟节点的链路的状态信息,PE3到该虚拟节点的链路的状态信息包括PE3到该虚拟节点的链路的cost值和虚拟节点的Router ID。由于PE3上生成了该虚拟节点,PE3还会“代表”该虚拟节点构造第二LSP,并将该第二LSP洪泛到整个网络中,该第二LSP包括:该虚拟节点的Router ID、该虚拟节点到PE3的链路的状态信息和该虚拟节点到PE4的链路的链路的状态信息。该虚拟节点到PE3的链路的状态信息包括该虚拟节点到PE3的链路的cost值和PE3的Router ID,该虚拟节点到PE4的链路的状态信息包括该虚拟节点到PE4的链路的cost值和PE4的Router ID。类似地,冗余保护组中的其他Egress PE,比如也构造相应的LSP并将这些LSP洪泛到整个ISIS域中,该ISIS域可以是整个网络。比如PE4上生成虚拟节点后,PE4的链路状态及邻居关系均发生了变化,因此PE4更新自身的链路状态和邻居关系,构造第三LSP,并将该第三LSP洪泛到整个网络中,该第三LSP包括:PE4的Router ID和PE4到该虚拟节点的链路的状态信息,PE4到该虚拟节点的链路的状态信息包括PE4到该虚拟节点的链路的cost值和该虚拟节点的Router ID。由于PE4上生成了该虚拟节点,PE4还会“代表”该虚拟节点构造第四LSP,并将该第四LSP洪泛到整个网络中,该第四LSP包括:该虚拟节点的Router ID、该虚拟节点到PE3的链路的状态信息、该虚拟节点到PE4的链路的状态信息。该虚拟节点到PE3的链路的状态信息包括该虚拟节点到PE3的链路的cost值和PE3的Router ID,该虚拟节点到PE4的链路的状态信息包括该虚拟节点到PE4的链路的cost值和PE4的Router ID。PE3和PE4把这些LSP泛洪到ISIS域中,这样,与PE3和PE4处于同一ISIS域内的其他节点,比如PE1就能“看到”该虚拟节点、该虚拟节点与PE3之间的链路、该虚拟节点与PE4之间的链路,从而能够建立从PE1到该虚拟节点的vNH的隧道。

生成的虚拟节点与冗余保护组中的Egress PE之间的链路的属性值(cost值)可以根据情况自动设置或者人工设置。比如,如果希望PE3成为隧道的主路径经过的节点,而PE4成为隧道的备用路径经过的节点,则可以把PE3到虚拟节点的链路的cost值设置为1,把PE4到虚拟节点的链路的cost值设置为IGP的最大cost值。根据PE3和PE4之间运行的不同的IGP,可以设置不同的链路最大cost值,比如该网络中运行OSPF时,链路最大cost值可以设置为65535。为了不让虚拟节点承担穿通流量(transit traffic),可以把虚拟节点到PE3的链路的cost值和虚拟节点到PE4的链路的cost值都设置为IGP最大cost值。为了避免穿通流量,需要将虚拟节点配置为overload模式。在OSPF协议下可通过将该虚拟节点到Egress PE节点PE3的链路的cost值以及该虚拟节点到PE4的链路的cost值置为IGP的最大cost值来实现。在ISIS协议下,可以通过将所述第二LSP和第四LSP的overload bit位置1来实现。在IGP中,一个物理链路通常是双向的,IGP里描述的链路都是有方向的,每个方向需要单独描述。一个物理链路在不同方向上的cost值可能不同,也可能相同。

虚拟节点在物理上并不是真实存在的,只是为了IGP域内的其他节点能够计算出一条经过PE3的隧道而生成的。PE3的上游节点P1能计算出另外一个到达PE4的备用隧道,比如PE1->P1->P2->PE4,该备用隧道不经过PE3。这样在PE3故障时能通过P1把流量切换到备用隧道到达PE4,从而达到保护PE3的目的。

因为PE3和PE4是对称的,也可以建立经过PE4的主隧道,而在PE4的上一跳节点(比如图3中的P2)建立经过PE3且不经过PE4的备用隧道,比如PE1->P2->P1->PE3,在PE4故障时,在P2上把流量切换到备份隧道上从而达到保护PE4的目的。

S206、第一Egress PE为第一虚拟专用网络VPN的第一转发等价类分配第一标签,第二Egress PE为所述第一VPN的第一转发等价类分配所述第一标签

第一Egress PE和第二Egress PE分别为所述第一VPN的第一转发等价类分配所述第一标签。分配标签可以是为每个路由分配标签,也可以是为每个VPN分配标签,还可以是为每个接口或端口分配标签。。每个PE都有自己的一个标签空间,并且独立地进行分配。如果是每个VPN分配标签,Ingress PE向Egress PE发送报文时,要给报文加上Egress PE为该VPN分配的标签。比如图13中,通常情况下,PE3为某个VPN(比如VPN1)分配的VPN标签为1100,而PE4为该VPN1分配的VPN标签可能是2100。在这种情况下,当PE1发送该VPN1的VPN报文给PE3时就需要使用PE3分配的VPN标签1100,该VPN报文到达PE3后,PE3能正确地用1100查找到对应的VPN(即VPN1)。如果携带VPN标签1100的该VPN报文被发送到了PE4,PE4将无法识别该VPN报文并正确处理,要么会错误地转发到其他VPN,要么由于在PE4上没有VPN标签1100对应的表项而丢弃该VPN报文或者不处理该VPN报文。

本发明的实施例中,由于PE3和PE4上生成了虚拟节点,PE3和PE4在发现自身位于冗余保护组中时,通过动态协商或通过静态配置为某个VPN(比如VPN1)分配相同的VPN标签,从而无论该VPN报文发送到主用PE(比如PE3)还是备用PE(比如PE4),该VPN报文都能被正确处理。

PE3和PE4之间可以建立ICCP会话,并且协商为VPN分配的相同的标签。PE3和PE4在发布VPN路由时都采用该相同标签来作为VPN路由的标签。这里采用的是每VPN标签分配方式(即:为每个VPN分配一个标签),实际上也可以采用每路由分配标签的方式(即:为VPN的每个路由分配一个标签),或者每接口分配标签方式(每个联接电路AC(Attached Circuit)接口分配一个标签)。以每VPN分配标签为例,如图12所示,协商分配VPN标签的方法,包括:

S1201,冗余保护组RG中的本端PE(比如图3中的PE3)和对端PE(比如图3中的PE4)分别向对方发送ICCP capability报文,请求建立ICCP连接;

S1202,ICCP连接建立后本端PE和对端PE重启;

S1203,本端PE和对端PE分别向对方发送VPN RG connect报文;

S1204,本端PE和对端PE收到对方发送到VPN RG connect报文后,向对方发送VPN RG connect A-bit=1;

S1205,本端PE和对端PE分别向对方发送VPN data消息,该VPN data消息包括VPN label TLV,该VPN label TLV中携带自身的优先级;

S1206,本端PE和对端PE收到对方发送的VPN data消息后,将对方发送的VPN data消息携带的优先级与自身的优先级比较,如果对方发送的VPN data消息携带的优先级大于自身的优先级,则优先级小的一方接受优先级大的一方分配的VPN标签,这里假定本端PE的优先级大于对端PE的优先级。

也就是说,如果本端PE的优先级比远端PE的优先级大,对端PE分配的标签(Lr)在本端PE还没有被占用(未分配),则选择本端PE给该VPN分配Lr。如果本端PE的优先级比远端PE的优先级大,对端PE分配的标签(Lr)在本端PE已经被占用,则从对端PE可用标签空间选择一个标签Li,该Li在本端PE未分配,本端PE给该VPN分配Li。用新分配的标签更新ICCP消息。如果本端PE的优先级比对端PE的优先级小,检查对端PE分配的标签Lr在本端PE是否已被占用,如果对端PE分配的标签Lr在本端PE没有被占用,则采用Lr。如果对端PE分配的标签Lr在本端PE被占用,则对端PE分配一个新的标签Ll,更新ICCP消息发给本端PE,如果该标签L1未被本端PE占用,则使用该标签L1作为VPN的标签;如果该标签L1被本端PE占用,则对端PE分配另一个标签Ln作为VPN的标签。如果本端PE的优先级与对端PE的优先级相等,则本端PE和对端PE分别报告错误,发送RG notification消息,携带reject TLV和优先级错误TLV。

S1207,本端PE确定一个双方都可用的标签,并将该标签携带在VPN data消息的VPN label TLV中发给对端PE

S1208,对端PE接收到优先级大的本端PE发送的VPN data消息后,校验本端PE确定的标签的可用性;

S1209,如果对端PE确定本端PE确定的标签不可用,则对端PE向本端PE发送VPN data消息,该VPN data消息的VPN label TLV中携带对端PE建议的标签值和对端PE的可用标签空间;

S1210,本端PE收到对端PE发送的携带对端PE建议的标签值和对端PE的可用标签空间的VPN data消息,重新选定标签,并将新选定的标签携带在VPN data消息的VPN label TLV中发送给对端PE;

S1211,如果对方发送的VPN data消息的VPN label TLV携带的优先级等于自身的优先级,则向对方发送disconnect消息断开双方的ICCP连接。

建立从Ingress PE到虚拟节点的隧道保护组之后,主用Egress PE(比如PE3)的该主用Egress PE的上一跳邻居(比如P3)就能在主用Egress PE(比如PE3)故障时把流量从主用Egress PE(比如PE3)迅速切换到备用Egress PE(比如PE4)。检测主用Egress PE故障的方法可以有多种,比如可以根据物理接口的状态来确定主用PE是否故障,也可以通过在Ingress PE(比如PE1)和Egress PE(比如PE3)之间运行BFD(Bidirectional Forwarding Detection,双向转发检测)协议来确定主用PE是否故障。备份路径可以预先计算并且安装在转发平面,通过BFD协议或者以太OAM(Operation Administration and Maintenance,操作管理维护)检测,检测时间也能控制在50ms以内,所以能在50ms内将流量从主用PE(比如PE3)到备用PE(比如PE4)。故障检测也可以局限在链路上直连的两个设备间的链路层面,无需端到端(比如PE1到PE3跨越多跳)的BFD检测,比如可以将故障检测局限在主隧道上的P1和PE3这两个直连设备之间。

备用PE(比如PE4)接收到从主用PE切换过来的流量后,需要能正确处理VPN内层标签,本发明实施例中,为主用PE(比如PE3)和备用PE(比如PE4)的相同VPN分配相同标签的方法,使得备用PE(比如PE4)收到从主用PE(比如PE3)切换过来的流量后能按照普通的VPN流程进行处理,无需特殊的转发硬件和流程。

以下对图12所示的VPN标签协商方法中涉及的报文的格式做一简要介绍。

VPN connect消息(VPN connect message)用于建立ICCP冗余保护组连接和冗余保护组内地PE之间的单个应用程序连接(individual Application connections)。如图14所示,VPN connect消息包括:

(1)带有消息类型值为"RG Connect Message"(0x0700)的ICC头部,

(2)ICC发送方名称TLV(ICC Sender Name TLV),以及

(3)0个或一个应用特性连接TLV(Application-specific connect TLV)。

VPN connect TLV包括:U比特、F比特、类型(Type)、长度(Length)、协议版本(Protocol Version)、A比特、保留字段(Reserved)和可选的子TLV。其中,类型(Type)的值自定义,比如可以为0x0111。协议版本字段的值可以为0x0001。U比特和F比特的值可以设为0。

VPN disconnect消息用作:

(1)特定应用程序连接(particular Application connection)被关闭时的信号,或者,

(2)由于PE希望离开冗余保护组而导致的ICCP冗余保护组连接本身被关闭的信号。

VPN disconnect消息的type值可以为0x0701。VPN disconnect消息携带有图15(a)所示的VPN disconnect code TLV,VPN disconnect消息中也可以携带其他可选的TLV。VPN disconnect code TLV中的Type和Length的长度为2字节,Type和Length的值自定义,比如VPN disconnect code TLV中的type可以为0x0114。

可选地,VPN disconnect消息还可以携带图15(b)所示的VPN disconnect Cause TLV。VPN disconnect Cause TLV包括:U比特、F比特、长度(Length)、类型(Type)和Disconnect Cause String。Disconnect Cause String表示VPN标签协商中ICCP连接断开的原因。U比特和F比特的值可以为0。VPN disconnect code TLV中的Type和Length的长度为2字节,Type和Length的值自定义,比如VPN disconnect code TLV中的type可以为0x0115。

VPN application data消息用于在同一冗余保护组内地PE之间传输数据。如图16所示,VPN application data消息包括:一个单个的VPN application data消息可以被用于携带一个应用程序(application)的数据,多个应用程序TLV(application TLV)可以携带在一个单独的VPN application data消息中,只要该多个应用程序TLV都属于该应用程序。VPN application data消息的格式包括带有消息类型为RG Application Data Message(0x703)的ICC头部、应用程序特性TLV(Application specific TLV)。图16中,除了ICC头部以外,VPN application data消息还包括VPN特性TLV:VPN config TLV。

VPN config TLV包括U比特、F比特、类型(Type)、长度(Length)、冗余对象标识ROID、业务名称TLV(service name TLV)和VPN标签TLV(VPN label TLV),其中U比特和F比特的值均可以为0。类型值可以为0x01112。ROID(Redundant Object Identifier)用于唯一地标识冗余保护组中被保护的一个冗余对象(Redundant Object)。该冗余对象可以是链路(link)、链路组(bundle)、VLAN(Virtual Local Area Network,虚拟局域网)等。业务名称TLV可以包括U比特、F比特、类型(Type)、长度(Length)和业务名称(service name)。U比特和F比特值可以为0,类型(Type)值为自定义,比如可以为0x0113,业务名称包括以UTF-8格式编码的L2VPN业务实例的名称,业务名称字段最长80个字符(character)。

其中VPN label TLV用于标识发送该VPN application data消息的PE为Ingress PE分配的VPN标签。主用PE(比如PE3)和备用PE(比如PE4)分别向对方发送VPN application data消息以协商为Ingress PE分配相同的VPN标签。VPN label TLV格式如图17所示,VPN label TLV包括U比特、F比特、类型(Type)、长度(Length)、标签下限(Label Lower)、标签上限(Label upper)和保留字段(Reserved)。其中U比特和F比特的值可以为0,类型(Type)的值为自定义值,比如可以为0x0102。Label Lower标识可用标签空间下限值;Label upper标识可用标签空间上限值。

上述消息中的消息类型和TLV类型的编码值只是一种可能的编码值,还可以是其他值,只要不和标准(draft-ietf-pwe3-iccp-11)中的已分配值冲突即可。

上述实施例的方法是针对一个冗余保护组中只包括两个出口PE(Egress PE)的场景,该方法可以应用在包括多个出口PE(Egress PE)的冗余保护组中,该冗余保护组中,一个PE为某个Ingress PE的主隧道经过的节点,其他PE都是备份隧道经过的节点,且备份隧道不经过主隧道经过的PE节点。在包括多个出口PE的场景中,需要静态配置或者选举出主用PE和备用PE。还可以静态配置或者通过选举指定多个备用PE的优先级顺序。主用PE故障时,多个备用PE可以按照优先级顺序来替换主用PE,即,将主用隧道切换到某个备用隧道上。在包括多个Egress PE的冗余保护组中,可以比较所述冗余保护组中所有Egress PE的优先级,选择优先级最高的Egress PE作为该冗余保护组的主用Egress PE,该冗余保护组中的其他Egress PE作为该冗余保护组的备用Egress PE。如果比较过程中,有多个Egress PE的优先级相等且均为该冗余保护组中优先级最高的Egress PE,则比较该多个优先级相等的Egress PE的地址,选择该多个优先级相等的Egress PE中地址最大或最小的Egress PE作为主用Egress PE。比如如果该冗余保护组中包括5个Egress PE:PE1、PE2、PE3、PE4、PE5,PE1、PE2和PE3的优先级相等且PE1、PE2和PE3的优先级均高于PE4和PE5的优先级,则比较PE1的地址、PE2的地址和PE3的地址之间的大小,假定比较结果是PE1的地址大于PE2的地址,PE2的地址大于PE3的地址,则可以选择地址最大的PE1作为该冗余保护组的主用Egress PE。当然,也可以选择地址最小的PE3作为该冗余保护组的主用Egress PE。

选举出主用Egress PE后,可以建立从Ingress PE经过主用Egress PE到达虚拟节点的隧道,还可以建立多条依次经过主用PE的上一跳节点、备用Egress PE,到达虚拟节点的备用隧道,所述备用隧道不经过主用Egress PE。

主用Egress PE故障时,多个备用Egress PE可以按照优先级顺序来替换主用Egress PE,即,将流量从经过主用Egress PE到达虚拟节点的主用隧道切换到某个经过主用PE的上一跳节点和备用Egress PE到达虚拟节点的备用隧道上。

同一冗余保护组中的多个Egress PE通过ICCP协商时,该多个Egress PE的ICCP协商是通过两两ICCP协商实现的。

本发明实施例的方法,还可以和MRT(Maximally Redundant Trees,最大冗余树)FRR(Fast ReRoute,快速重路由)配合使用,MRT FRR能确保只要网络是2-connected的就能够计算出备份隧道,并且主PE的上游邻居计算出的备份隧道不会经过主PE。也就是说一旦主PE故障后,报文一定能切换到备份PE上。一个网络被称为是2-connected的,如果这个网络仅在至少有两个节点被删除时才被分割成2部分或者更多部分(A graph that has no cut-vertices.This is a graph that requires two nodes to be removed before the network is partitioned)。2-connected网络的定义可以参考IETF draft-enyedi-rtgwg-mrt-frr-algorithm-02。

然而,有些网络可能不使用MRT FRR技术。对于使用基于IGP LFA(loop-free alternate,无环替代(下一跳))的LDP(Label Distribution Protocol,标签分发协议)FRR(Fast ReRoute,快速重路由)技术的网络,主用Egress PE的上游邻居可能计算不到备份隧道。本发明实施例还给出一个生成主备Egress PE到虚拟节点间的链路cost值的方法,可以改进基于IGP LFA的LDP FRR计算出备份隧道的可能性,提高本发明实施例的技术方案的可部署性。

对于图3所示的网络架构,假设主用Egress PE为PE3,备用Egress PE为PE4,PE3到虚拟节点的链路cost值为M,PE4到虚拟节点的链路cost值为S。所述链路的cost值有多种设置方法,比如对采用显式路由的MPLS TE隧道,S和M可以设置成任意合法的IGP cost值。也可以静态配置S和M。

此外本发明给出了一种用于GRE隧道和基于LDP建立的MPLS隧道的自动计算方法。

PE3和PE4中的至少一个,按照方式(1)或(2)确定PE3到所述虚拟节点的链路的cost值M以及PE4到所述虚拟节点的链路的cost值S,并将确定的PE3到所述虚拟节点的链路的cost值M以及PE4到所述虚拟节点的链路的cost值S同步到所述PE3和PE4所在的冗余保护组中:

(1)S和M满足:

Sxy4+S>Sxy3+M ①和

C34+S>M ②

其中,Px为PE3的任何邻居节点,Pxy为去掉PE3后的网络中所述Px的任意邻居节点,Sxy3为所述Pxy到PE3的最短路径的cost值,Sxy4为所述Pxy到PE4的最短路径的cost值,C34为PE3到PE4的最短路径cost值。

(2)S和M满足:

X+M<Y+S ③

其中X为从所述Ingress PE到所述第一Egress PE(PE3)的最短路径的cost值,大于从所述Ingress PE到所述第二Egress PE(PE4)的最短路径的cost值。

对于方式(1),求解同时满足上述不等式①和不等式②的S和M,即,求解同时满足不等式①和不等式②的M-S对。

对于Egress PE到虚拟节点的链路的cost值的计算,冗余保护组中的每个Egress PE均可计算满足不等式①和不等式②的M-S对,即冗余保护组中的PE3可以计算满足不等式①和不等式②的M-S对,冗余保护组中的PE4也可以计算满足不等式①和不等式②的M-S对。

如果冗余保护组中的多个Egress PE计算出了不同的M-S对,则多个Egress PE之间可以通过协商的方式确定最终部署在冗余保护组的所有Egress PE上的M和S。

可选地,如果根据方式(1)或(2)获得多组满足条件的M-S对,则选择S最小的M-S对或者M最小的M-S对,并将选择的M-S对同步到冗余保护组的所有Egress PE。将选择的M-S对中的M携带在所述第一链路状态信息中,将选择的M-S对中的S携带在所述第三链路状态信息中。

可选地,可以在冗余保护组中的任意一个Egress PE上根据方式(1)或方式(2)确定M-S对,并将确定的M-S对同步到冗余保护组中的其他Egress PE上。可选地,对于将确定的M-S对同步到冗余保护组中的其他Egress PE上,可以通过同步协议实现。

可选地,也可以直接按照方式(2)在冗余保护组的所有Egress PE上配置M和S。比如,可以将M设置为1,将S设置为IGP协议中的cost值的最大值。

可选地,还可以在冗余保护组的多个Egress PE上按照方式(1)或(2)计算M和S,如果根据方式(1)或(2)获得多组满足条件的M-S对,则选择S最小的M-S对或者M最小的M-S对,当然,也可以任选一组满足不等式①和②的M-S对。将选择的M-S对中的M携带在所述第一链路状态信息中,将选择的M-S对中的S携带在所述第三链路状态信息中。

特别地,图18所示,如果网络中互为保护的两个Egress PE(PE3和PE4)与网络侧的拓扑是口字型结构,主隧道为PE1->P1->PE3->虚拟节点,备用隧道为PE1->P1->P2->PE4->虚拟节点。假设P1到PE3的链路的cost值为A=10,P1到P2的链路的cost值为B=30,P2到PE4的链路的cost值为C=20,PE3到PE4之间的cost值为D=50,PE3到虚拟节点的cost值为M,PE4到虚拟节点的cost值为S,则根据这4台设备之间的链路cost也能找到合适的Egress PE到虚拟节点的链路的cost满足LFA计算要求。

如果C+D>A+B。C+S<A+B+M即可,即M-S>C-(A+B)。这里可以设置M=2+C-A-B,S=1。这只是其中一种设法,还可以有其他设置方法,只要满足M-S>C-(A+B)即可。

如果C+D<A+B则可以设置M=1,S=D即可。这只是其中一种设法,还可以有其他设置方法,只要满足S<D+M即可。

如果C+D=A+B则可以设置M=1,S=1即可。这只是其中一种设法,还可以把M和S设置为任意合法值。该合法值是指就是IGP协议规定的合法的值范围中的任何一个。

如果一个PE同时连接到两个或多个P设备,则对每组P设备都要满足上述关系。

实施例二

如图19所示,本发明实施例的方法应用于L3VPN,PE1、PE2、PE3、PE4、P1、P2均位于MPLS网络中,其中PE1、PE2、PE3、PE4位于MPLS网络的边缘。所述网络为对称网络。PE1、P3、PE3在A平面,PE2、P2、PE4在B平面,A平面和B平面对称,CE1和CE2属于一个VPN,比如VPN1。对于从CE1到CE2的报文来说,PE1为入节点,PE3和PE4为出节点。PE3上生成虚拟节点,该虚拟节点的Router ID为vNH1。PE4上也生成地址为vNH1的虚拟节点。可以通过动态协商或者静态配置虚拟节点的vNH1,动态协商vNH1的方法可以参考图4及对应的段落所描述的方法,也可以参考图5~11及对应的段落所描述的方法。假定该冗余保护组中PE3为主用PE(Primary PE),PE4为备用PE(Backup PE)。建立PE1到虚拟节点的隧道,PE1到虚拟节点的隧道包括主用路径和备用路径。PE1通过IGP计算出以PE1为起点,经过PE3的第一路径(主用路径):PE1->P1->PE3->虚拟节点。PE3的上一跳节点P1通过IGP计算出以P1为起点,不经过PE3,经过PE4的第三路径:P1->P2->PE4->虚拟节点,该第三路径和第一路径中的PE1->P1组成第二路径(备用路径):PE1->P1->P2->PE4->虚拟节点。第二路径不经过Egress PE PE3。Egress PE PE3与Ingress PE PE1之间建立BGP session。PE3和PE4发布VPN路由时,用相同的虚拟节点的Router ID vNH1作为VPN的BGP下一跳。比如,PE3发布的VPN路由可以是VPN1:prefix1->L1,vNH1;即,PE1收到属于VPN1的报文时,为该报文打上标签L1,经主路径PE1->P1->PE3发送到CE2。如果PE3故障,则自动把经过PE3的VPN1的报文切换到PE4,即切换到PE1到第一冗余保护组的备用路径PE1->P1->P2->PE4。

建立PE2到虚拟节点的隧道,PE2到虚拟节点的隧道包括主用路径和备用路径。PE2通过IGP计算出以PE2为起点,经过PE4的第四路径(主用路径):PE2->P2->PE4->虚拟节点。PE4的上一跳节点P2通过IGP计算出以P2为起点,不经过PE4,经过PE3的第六路径:P2->P1->PE3->虚拟节点,该第六路径和第四路径中的PE2->P2组成第五路径(备用路径):PE2->P2->P1->PE3->虚拟节点。第五路径不经过Egress PE PE4。Egress PE PE4与Ingress PE PE2之间建立BGP session,对应的PE3和PE2间也建立BGP session。PE3和PE4发布VPN路由时,用相同的虚拟节点的Router ID vNH1作为VPN的BGP下一跳。比如,PE4向PE2发布的VPN路由可以是VPN1:prefix1->L1,vNH1;即,PE2收到属于VPN1的报文时,为该报文打上标签L1,经主路径PE2->P2->PE4发送到CE2。如果PE4故障,则自动把经过PE4的VPN1的报文切换到PE3,即切换到PE3到冗余保护组的备用路径PE2->P2->P1->PE3。

实施例三

如图20所示,本发明实施例的方法应用于L3VPN,PE1、PE2、PE3、PE4、P1、P2均位于MPLS网络中,其中PE1、PE2、PE3、PE4位于MPLS网络的边缘。CE1和CE2属于一个VPN,比如VPN1。对于从CE1到CE2的报文来说,PE1为入节点,PE3和PE4为出节点。CE3和CE4属于一个VPN,比如VPN2。对于从CE3到CE4的报文来说,PE2为入节点,PE3和PE4为出节点。可以在PE3和PE4上分别生成两个虚拟节点:第一虚拟节点和第二虚拟节点,其中实线表示经过主用PE(Primary PE)的主路径,虚线表示经过备用PE(Backup PE)的备用路径。使得一部分经过Ingress PE的报文采用第一虚拟节点传输,另外一部分经过Ingress PE的报文采用第二虚拟节点传输,从而可以使得流量分布较为均匀。

假定在PE3上生成两个虚拟节点:第一虚拟节点和第二虚拟节点,所述第一虚拟节点(虚拟节点1)的地址为vHN1,第二虚拟节点(虚拟节点2)的地址为vNH2。在PE4上也生成地址为vNH1的第一虚拟节点和地址为vNH2的第二虚拟节点。可以通过动态协商或者静态配置确定第一虚拟节点的vNH1和第二虚拟节点的vNH2,动态协商vNH1或vNH2的方法可以参考图4及对应的段落所描述的方法,也可以参考图5~11及对应的段落所描述的方法。

如果采用LDP建立MPLS隧道,可以对PE3和PE4进行如下设置:PE3到虚拟节点1的链路cost值设置为一个较小的值,使得任一Ingress PE到虚拟节点的总cost值小于IGP的最大cost值,比如将PE3到虚拟节点1的链路cost值设置为1,将PE4到虚拟节点1的链路cost值设置为最大IGP cost值。或者也可以将PE3到虚拟节点2的链路cost值设置为最大IGP cost值,将PE4到虚拟节点2的链路cost值设置为一个较小的值,使得任一Ingress PE到虚拟节点的总cost值小于IGP的最大cost值,比如将PE4到虚拟节点2的链路cost值设置为1。动态协商vNH2的方法可以参考图4及对应的段落所描述的方法,也可以参考图5~11及对应的段落所描述的方法。

以vNH1为VPN1路由的BGP下一跳,可以建立第一冗余保护组,该第一冗余保护组包括PE3和PE4,其中可以假定PE3为主用PE(Primary PE),PE4为备用PE(Backup PE)。建立PE1到虚拟节点的隧道,PE1到虚拟节点的隧道包括主用路径和备用路径。PE1通过IGP计算出以PE1为起点,经过PE3的第一路径(主用路径):PE1->P1->PE3->虚拟节点。PE3的上一跳节点P1通过IGP计算出以P1为起点,不经过PE3,经过PE4的第三路径:P1->P2->PE4->虚拟节点,该第三路径和第一路径中的PE1->P1组成第二路径(备用路径):PE1->P1->P2->PE4->虚拟节点。第二路径不经过Egress PE PE3。Egress PE PE3与Ingress PE PE1之间建立BGP session,PE4与PE1之间建立BGP session。PE3和PE4发布VPN1路由时,用虚拟节点的Router ID vNH1作为VPN1的BGP下一跳。比如,PE3发布的VPN1的路由可以是VPN1:prefix1->L1,vNH1;即,PE1收到属于VPN1的报文时,为该报文打上标签L1,经PE1->P1->PE3发送到CE2。如果PE3故障,则自动把经过PE3的VPN1的报文切换到PE4,路径调整为PE1->P1->P2->PE4,PE4可以识别出该报文携带的标签L1对应于VPN1。

以vNH2为VPN2路由的BGP下一跳,可以建立第二冗余保护组,该第二冗余保护组包括PE3和PE4,其中可以假定PE4为主用PE(Primary PE),PE3为备用PE(Backup PE)。建立PE2到虚拟节点的隧道,PE2到虚拟节点的隧道包括主用路径和备用路径。PE2通过IGP计算出以PE2为起点,经过PE4的第四路径(主用路径):PE2->P2->PE4->虚拟节点。PE4的上一跳节点P2通过IGP计算出以P2为起点,不经过PE4,经过PE3的第六路径:P2->P1->PE3->虚拟节点,该第六路径和第四路径中的PE2->P2组成第五路径(备用路径):PE2->P2->P1->PE3->虚拟节点。第五路径不经过Egress PE PE4。Egress PE PE4与Ingress PE PE2之间建立BGP session,PE3与PE2之间建立BGP session。PE3和PE4发布VPN2路由时,用虚拟节点的Router IDvNH2作为VPN2的BGP下一跳。比如,PE4向PE2发布的VPN2的路由可以是VPN2:prefix1->L2,vNH2,即,PE2收到属于VPN2的报文时,为该报文打上标签L2,经PE2->P2->PE4发送到CE2,PE4可以识别出该报文携带的标签L2对应于VPN2。如果PE4故障,则自动把经过PE4的VPN2的报文切换到PE3,路径调整为PE2->P2->P1->PE3,PE3可以识别出该报文携带的标签L2对应于VPN2。

PE1和PE2收到VPN路由后即可根据vNH找到对应的隧道,该隧道在主用Egress PE的上一跳节点计算出保护隧道,具有保护主用PE的功能。

Ingress PE对PE保护对中哪个Egress PE为主用PE,哪个为备用PE并不关心。而不同的Ingress PE选择的隧道可能有不同的主Egress PE。所以本发明实施例中的Egress PE到虚拟节点的链路cost值的设置可以采用自动计算方法,采用基于IGP LFA的LDP FRR来计算备份路径,具体可以参见实施例一中的描述。也可以用基于MRT FRR的LDP FRR算法或者其他算法。流量可以分布到互为保护的Egress PE上。

实施例四

本发明实施例的方法可以应用于L2VPN或者PWE3,互为保护的Egress PE发送LDP mapping消息时,在LDP mapping消息中携带一个TLV,该TLV的值域为vNH。Ingress PE收到LDP mapping消息后即采用该TLV中的vNH找到对应的隧道,该隧道具有保护主PE的功能。

如果双归的CE的两个AC(attached circuit,CE连接PE的链路)处于负载均衡(load balance)模式,或者说两个AC都是活跃(active)的,则Ingress PE建立的到Egress PE的隧道中哪个Egress PE为主用PE,哪个PE为备用PE可以是任意的。不同的Ingress PE选择的隧道可能有不同的主Egress PE,从而流量可以分布到互为保护的Egress PE上。

如果Egress PE侧的CE的两个AC处于主备工作模式,则通常要求隧道的主Egress PE和AC的主用保持一致,比如AC采用MC-LAG(Multi-chassis Link Aggregation Group,跨框链路聚合组)。

如图21所示,PE1和PE3之间通过LDP来建立伪线PW,LDP采用下游自主分配的方式来分配PW标签,PE之间使用扩展到Hello发现机制来建立LDP会话。LDP Mapping消息包括FEC TLV、标签TLV和其他可选地参数。其中FEC TLV用来区别绑定PW标签的不同PW。在本发明的实施例中,可以在LDP mapping消息中携带一个TLV,该TLV的值域为vNH。Ingress PE收到LDP mapping消息后即采用该TLV中的vNH找到对应的隧道,该隧道具有保护主用PE的功能。

在图21中,PE1、PE2、PE3、PE4、P1、P2均位于MPLS网络中,其中PE1、PE2、PE3、PE4位于MPLS网络的边缘。CE1和CE2属于一个VPN,比如VPN1,CE3和CE4属于一个VPN,比如VPN2。对于从CE1到CE2的报文来说,PE1为入节点,PE3和PE4为出节点。对于从CE3到CE4的报文来说,PE2为入节点,PE3和PE4为出节点。当在该MPLS网络上传输二层报文时,报文在入节点被加上MPLS标签,经MPLS LSP隧道发送到出节点,出节点根据报文携带的标签解析该报文对应的下一跳,拆除标签后转发给CE。CE1依次经过PE1->P1->PE3与CE2通信;CE3依次经过PE2->P2->PE4与CE4通信。PE3上生成虚拟节点,该虚拟节点的Router ID为vNH1。PE4上也生成地址为vNH1的虚拟节点。可以通过动态协商或者静态配置确定虚拟节点的vNH1,动态协商vNH1的方法可以参考图4及对应的段落所描述的方法,也可以参考图5~11及对应的段落所描述的方法。建立包括PE3和PE4的第一冗余保护组。假定该第一冗余保护组中PE3为主用PE(Primary PE),PE4为备用PE(Backup PE)。建立PE1到虚拟节点的隧道,PE1到虚拟节点的隧道包括主用路径和备用路径。出节点PE3和入节点PE1之间建立第一LDP session。PE3为VPN1,也就是对应CE2的VPN发布第一LDP mapping消息,采用虚拟节点的Router ID vNH1作为该第一LDP mapping消息中的PW标签的下一跳,即,PE3为VPN1发布的PW标签可以为PW1->L1,vNH1,该PW标签表示从PE1到PE3存在一条伪线PW1,通过该伪线PW1传输的报文在入节点PE1将被加上标签L1,该报文的目的节点地址为vNH1,该报文在入节点PE1加上标签L1后,经P1到达PE3,PE3根据自身的标签映射表确定该报文携带的标签L1对应伪线PW1,则拆除标签L1,并将该报文发送到PW1的下一跳CE2。

如果PE3故障,则自动把经过PE3的VPN1的报文切换到PE4,路径调整为PE1->P1->P2->PE4,该VPN1的报文仍然使用标签L1,对于VPN业务来说,该切换并不能感知,由于该切换仅仅是从主用Egress PE(PE3)的上一跳节点切换到备用Egress PE(PE4),经过主用Egress PE到达虚拟节点的主用隧道和经过备用Egress PE到达虚拟节点的备用隧道,在Ingress PE看来并未切换隧道。出节点PE4和入节点PE2之间建立第二LDP session。PE4为VPN2,也就是对应CE4的VPN发布第二LDP mapping消息,采用虚拟节点的Router IDvNH1作为该第二LDP mapping消息中的PW标签的下一跳ILM,即,PE4为VPN2发布的PW标签可以为PW2->L2,vNH1,该PW标签表示从PE2到PE4存在一条伪线PW2,通过该伪线PW2传输的报文在入节点PE2将被加上标签L2,该报文的目的节点地址为vNH1,该报文在入节点PE2加上标签L2后,经P2到达PE4,PE4根据自身的标签映射表确定该报文携带的标签L2对应伪线PW2,则拆除标签L2,并将该报文发送到PW2的下一跳CE4。

如果PE4故障,则自动把经过PE4的VPN2的报文切换到PE3,路径调整为PE2->P2->P1->PE3,该VPN2的报文仍然使用标签L2,对于VPN业务来说,该切换并不能感知,由于该切换仅仅是从主用Egress PE(PE4)的上一跳节点切换到备用Egress PE(PE3),经过主用Egress PE到达虚拟节点的主用隧道和经过备用Egress PE到达虚拟节点的备用隧道,在Ingress PE看来并未切换隧道。

如图22所示,采用两个虚拟节点,使得一部分PW采用虚拟节点1,另外一部分采用虚拟节点2可以使得流量分布较为均匀。

PE1、PE2、PE3、PE4、P1、P2均位于MPLS网络中,其中PE1、PE2、PE3、PE4位于MPLS网络的边缘。CE1和CE2属于一个VPN,比如VPN1,CE3和CE4属于一个VPN,比如VPN2。对于从CE1到CE2的报文来说,PE1为入节点,PE3和PE4为出节点。对于从CE3到CE4的报文来说,PE1为入节点,PE3和PE4为出节点。CE1依次经过PE1->P1->PE3与CE2通信;CE3依次经过PE1->PE2->P2->PE4与CE4通信。

PE3上生成虚拟节点1,该虚拟节点1的地址为vNH1。PE4上也生成地址为vNH1的虚拟节点。可以通过动态协商或者静态配置确定虚拟节点的vNH1,动态协商vNH1的方法可以参考图4及对应的段落所描述的方法,也可以参考图5~11及对应的段落所描述的方法。建立包括PE3和PE4的第一冗余保护组。假定该第一冗余保护组中PE3为主用PE(Primary PE),PE4为备用PE(Backup PE)。建立PE1到虚拟节点的隧道,PE1到虚拟节点的隧道包括主用路径和备用路径。

出节点PE3和入节点PE1之间建立第一LDP session。PE3为VPN1,也就是对应CE2的VPN发布第一LDP mapping消息,采用虚拟节点1的地址vNH1作为该第一LDP mapping消息中的PW标签的下一跳,即,PE3为VPN1发布的PW标签可以为PW1->L1,vNH1,该PW标签表示从PE1到PE3存在一条伪线PW1,通过该伪线PW1传输的报文在入节点PE1将被加上标签L1,该报文的目的节点地址为vNH1,该报文在入节点PE1加上标签L1后,经P1到达PE3,PE3根据自身的标签映射表确定该报文携带的标签L1对应伪线PW1,则拆除标签L1,并将该报文发送到PW1的下一跳CE2。

如果PE3故障,则自动把经过PE3的VPN1的报文切换到PE4,路径调整为PE1->P1->P2->PE4,该VPN1的报文仍然使用标签L1,对于VPN业务来说,该切换并不能感知,由于该切换仅仅是从主用Egress PE(PE3)的上一跳节点切换到备用Egress PE(PE4),经过主用Egress PE到达虚拟节点1的主用隧道和经过备用Egress PE到达虚拟节点1的备用隧道,在Ingress PE看来并未切换隧道。

PE3和PE4还可以建立第二冗余保护组及生成对应的虚拟节点2。PE3上生成虚拟节点2,该虚拟节点2的地址为vNH2。PE4上也生成地址为vNH2的虚拟节点2。可以通过动态协商或者静态配置确定虚拟节点2的vNH2,动态协商vNH2的方法可以参考图4及对应的段落所描述的方法,也可以参考图5~11及对应的段落所描述的方法。假定该第二冗余保护组中PE4为主用PE(Primary PE),PE3为备用PE(Backup PE)。出节点PE4和入节点PE1之间建立第二LDP session。PE4为VPN2,也就是对应CE4的VPN发布第二LDP mapping消息,采用虚拟节点2的地址vNH2作为该第二LDP mapping消息中的PW标签的下一跳ILM,即,PE4为VPN2发布的PW标签可以为PW2->L2,vNH2,该PW标签表示从PE1到PE4存在一条伪线PW2,通过该伪线PW2传输的报文在入节点PE1将被加上标签L2,该报文的目的节点地址为vNH2,该报文在入节点PE1加上标签L2后,经PE2->P2到达PE4,PE4根据自身的标签映射表确定该报文携带的标签L2对应伪线PW2,则拆除标签L2,并将该报文发送到PW2的下一跳CE4。

如果PE4故障,则自动把经过PE4的VPN2的报文切换到PE3,路径调整为PE1->PE2->P2->P1->PE3,该VPN2的报文仍然使用标签L2,对于VPN业务来说,该切换并不能感知,由于该切换仅仅是从主用Egress PE(PE4)的上一跳节点切换到备用Egress PE(PE3),经过主用Egress PE到达虚拟节点的主用隧道和经过备用Egress PE到达虚拟节点的备用隧道,在Ingress PE看来并未切换隧道。

实施例五

本发明实施例还提供一种网络系统,该网络系统包括第一出接口运营商边缘设备Egress PE、第二Egress PE和入接口运营商边缘设备Ingress PE,该第一Egress PE与客户边缘设备CE通信,该第二Egress PE和所述CE通信,所述第一Egress PE和第二Egress PE位于包括所述第一Egress PE和第二Egress PE的冗余保护组内,其中所述第一Egress PE为主用设备,所述第二Egress PE为备用设备。如图3所示,第一Egress PE为PE3,第二Egress PE为PE4,CE2分别与PE3和PE4通信。

如图23所示,所述第一Egress PE包括:第一虚拟节点生成模块2301、第一状态发布模块2302、第一虚拟节点状态发布模块2303,其中:

第一虚拟节点生成模块2301,用于在所述第一Egress PE上生成虚拟节点,所述虚拟节点具有所述网络系统中全局唯一的Router ID,所述虚拟节点用作所述第一Egress PE的下一跳节点,所述虚拟节点用作所述第二Egress PE的下一跳节点;

第一状态发布模块2302,用于发送第一链路状态消息给所述Ingress PE,所述第一链路状态消息包括:所述第一Egress PE的Router ID和所述第一Egress PE到所述虚拟节点的链路的状态信息,所述第一Egress PE到所述虚拟节点的链路的状态信息包括所述第一Egress PE到所述虚拟节点的链路的cost值M和所述虚拟节点的Router ID;

第一虚拟节点状态发布模块2303,用于发送第二链路状态消息给所述Ingress PE,所述第二链路状态消息包括:所述虚拟节点的Router ID、所述虚拟节点到所述第一Egress PE的链路的状态信息和所述虚拟节点到所述第二Egress PE的链路的状态信息,所述虚拟节点到所述第一Egress PE的链路的状态信息包括所述虚拟节点到所述第一Egress PE的链路的cost值N和所述第一Egress PE的Router ID,所述虚拟节点到所述第二Egress PE的链路的状态信息包括所述虚拟节点到所述第二Egress PE的链路的cost值T和所述第二Egress PE的Router ID。其中所述N和所述T为内部网关协议IGP的最大cost值。

所述第二Egress PE包括:第二虚拟节点生成模块2304、第二状态发布模块2305、第二虚拟节点状态发布模块2306,其中:

第二虚拟节点生成模块2304,用于在所述第二Egress PE上生成所述第一虚拟PE上生成的虚拟节点;

第二状态发布模块2305,用于发送第三链路状态消息给所述Ingress PE,所述第三链路状态消息包括:所述第二Egress PE的Router ID和所述第二Egress PE到所述虚拟节点的链路的状态信息,所述第二Egress PE到所述虚拟节点的链路的状态信息包括所述第二Egress PE到所述虚拟节点的链路的cost值S和所述虚拟节点的Router ID;

第二虚拟节点状态发布模块2306,用于发送第四链路状态消息给所述Ingress PE,所述第四链路状态消息包括:所述虚拟节点的Router ID、所述虚拟节点到所述第一Egress PE的链路的状态信息和所述虚拟节点到所述第二Egress PE的链路的状态信息,所述虚拟节点到所述第一Egress PE的链路的状态信息包括所述虚拟节点到所述第一Egress PE的链路的cost值N和所述第一Egress PE的Router ID,所述虚拟节点到所述第二Egress PE的链路的状态信息包括所述虚拟节点到所述第二Egress PE的链路的cost值T和所述第二Egress PE的Router ID。其中所述N和所述T为内部网关协议IGP的最大cost值。

所述Ingress PE(比如PE1)收到所述第一链路状态消息、所述第二链路状态消息、所述第三链路状态消息和所述第四链路状态消息后,获得所述虚拟节点的vNH、所述第一Egress PE到所述虚拟节点的链路的cost值M和所述第二Egress PE到所述虚拟节点的链路的cost值S。

根据网络中采用的隧道类型不同,所述第一链路状态消息、所述第二链路状态消息、所述第三链路状态消息和所述第四链路状态消息中的任何一个还可能包括其他属性,比如对MPLS TE隧道,还包括带宽、亲和属性、颜色等中的一个或多个。

所述链路的cost值有多种设置方法,比如对采用显式路由的MPLS TE隧道,链路的cost值S和M可以设置成任意合法的IGP cost值。也可以静态配置链路的cost值S和M。

所述第一Egress PE和所述第二Egress PE中的至少一个,按照方式(1)或(2)确定所述第一Egress PE到所述虚拟节点的链路的cost值M以及所述第二Egress PE到所述虚拟节点的链路的cost值S,并将确定的所述第一Egress PE到所述虚拟节点的链路的cost值M以及所述第二Egress PE到所述虚拟节点的链路的cost值S同步到所述第一Egress PE和所述第二Egress PE所在的冗余保护组中:

(1)S和M满足:

Sxy4+S>Sxy3+M ①和

C34+S>M ②

其中,Px为所述第一Egress PE的任何邻居节点,Pxy为去掉所述第一Egress PE后的网络中所述Px的任意邻居节点,Sxy3为所述Pxy到所述第一Egress PE的最短路径的cost值,Sxy4为所述Pxy到所述第二Egress PE的最短路径的cost值,C34为所述第一Egress PE到所述第二Egress PE的最短路径的cost值。

(2)S和M满足:

X+M<Y+S ③

其中X为从所述Ingress PE到所述第一Egress PE的最短路径的cost值,Y为从所述Ingress PE到所述第二Egress PE的最短路径的cost值。

对于方式(1),求解同时满足上述不等式①和不等式②的S和M,即,求解同时满足不等式①和不等式②的M-S对。

对于Egress PE到虚拟节点的链路的cost值的计算,冗余保护组中的每个Egress PE均可计算满足不等式①和不等式②的M-S对,即冗余保护组中的PE3可以计算满足不等式①和不等式②的M-S对,冗余保护组中的PE4也可以计算满足不等式①和不等式②的M-S对。

如果冗余保护组中的多个Egress PE计算出了不同的M-S对,则多个Egress PE之间可以通过协商的方式确定最终部署在冗余保护组的所有Egress PE上的M和S。

可选地,如果根据方式(1)或(2)获得多组满足条件的M-S对,则选择S最小的M-S对或者M最小的M-S对,并将选择的M-S对同步到冗余保护组的所有Egress PE。将选择的M-S对中的M携带在所述第一链路状态信息中,将选择的M-S对中的S携带在所述第三链路状态信息中。

可选地,可以在冗余保护组中的任意一个Egress PE上根据方式(1)或方式(2)确定M-S对,并将确定的M-S对同步到冗余保护组中的其他Egress PE上。可选地,对于将确定的M-S对同步到冗余保护组中的其他Egress PE上,可以通过同步协议实现。

可选地,也可以直接按照方式(2)在冗余保护组的所有Egress PE上配置M和S。比如,可以将M设置为1,将S设置为IGP协议中的cost值的最大值。

可选地,还可以在冗余保护组的多个Egress PE上按照方式(1)或(2)计算M和S,如果根据方式(1)或(2)获得多组满足条件的M-S对,则选择S最小的M-S对或者M最小的M-S对,当然,也可以任选一组满足不等式①和②的M-S对。将选择的M-S对中的M携带在所述第一链路状态信息中,将选择的M-S对中的S携带在所述第三链路状态信息中。

当网络中的各个设备之间运行OSPF(Open Shortest Path First,开放式最短路径优先)协议时,PE3上生成虚拟节点后,PE3的链路状态及邻居关系均发生了变化,因此PE3更新自身的链路状态和邻居关系,构造第一链路状态广播数据LSA(Link State Advertisement,LSA),并将该第一LSA洪泛到整个网络中,该第一LSA包括:PE3的Router ID和PE3到该虚拟节点的链路的状态信息,PE3到该虚拟节点的链路的状态信息包括PE3到该虚拟节点的链路的cost值和该虚拟节点的Router ID。由于PE3上生成了该虚拟节点,PE3还会“代表”该虚拟节点构造第二LSA,并将该第二LSA洪泛到整个网络中。该第二LSA包括:该虚拟节点的Router ID、该虚拟节点到PE3的链路的状态信息和该虚拟节点到PE4的链路的链路的状态信息。该虚拟节点到PE3的链路的状态信息包括该虚拟节点到PE3的链路的cost值和PE3的Router ID,该虚拟节点到PE4的链路的状态信息包括该虚拟节点到PE4的链路的cost值和PE4的Router ID。类似地,冗余保护组中的其他Egress PE,也构造相应的LSA并将这些LSA洪泛到整个OSPF域中,该OSPF域可以是整个网络。比如PE4上生成该虚拟节点后,PE4的链路状态及邻居关系均发生了变化,因此PE4更新自身的链路状态和邻居关系,构造第三LSA,并将该第三LSA洪泛到整个网络中。该第三LSA包括:PE4的Router ID和PE4到该虚拟节点的链路的状态信息,PE4到该虚拟节点的链路的状态信息包括PE4到该虚拟节点的链路的cost值和该虚拟节点的Router ID。由于PE4上生成了该虚拟节点,PE4还会“代表”该虚拟节点构造第四LSA,并将该第四LSA洪泛到整个网络中,该第四LSA包括:该虚拟节点的Router ID、该虚拟节点到PE3的链路的状态信息、该虚拟节点到PE4的链路的状态信息。该虚拟节点到PE3的链路的状态信息包括该虚拟节点到PE3的链路的cost值和PE3的Router ID,该虚拟节点到PE4的链路的状态信息包括该虚拟节点到PE4的链路的cost值和PE4的Router ID。PE3和PE4把这些LSA泛洪到OSPF域中,这样,与PE3和PE4处于同一OSPF域内的其他节点,比如PE1就能“看到”该虚拟节点、该虚拟节点与PE3之间的链路、该虚拟节点与PE4之间的链路,从而能够建立从PE1到该虚拟节点的vNH的隧道。链路状态就是路由器的OSPF接口上的描述信息,例如接口上的IP地址、子网掩码、网络类型、cost值等等。OSPF路由器之间交换的并不是路由表,而是链路状态,OSPF路由器(比如PE1)通过获得网络中所有的链路状态信息,从而计算出到达每个目标精确的网络路径。

当PE3和PE4之间运行ISIS(Intermediate system to intermediate system,中间系统到中间系统)协议时,PE3上生成虚拟节点后,PE3的链路状态及邻居关系均发生了变化,因此PE3更新自身的链路状态和邻居关系,构造第一链路状态报文LSP(Link-state PDU),并将该第一LSP洪泛到整个网络中,该第一LSP包括:PE3的Router ID和PE3到该虚拟节点的链路的状态信息,PE3到该虚拟节点的链路的状态信息包括PE3到该虚拟节点的链路的cost值和虚拟节点的Router ID。由于PE3上生成了该虚拟节点,PE3还会“代表”该虚拟节点构造第二LSP,并将该第二LSP洪泛到整个网络中,该第二LSP包括:该虚拟节点的Router ID、该虚拟节点到PE3的链路的状态信息和该虚拟节点到PE4的链路的链路的状态信息。该虚拟节点到PE3的链路的状态信息包括该虚拟节点到PE3的链路的cost值和PE3的Router ID,该虚拟节点到PE4的链路的状态信息包括该虚拟节点到PE4的链路的cost值和PE4的Router ID。类似地,冗余保护组中的其他Egress PE,比如也构造相应的LSP并将这些LSP洪泛到整个ISIS域中,该ISIS域可以是整个网络。比如PE4上生成虚拟节点后,PE4的链路状态及邻居关系均发生了变化,因此PE4更新自身的链路状态和邻居关系,构造第三LSP,并将该第三LSP洪泛到整个网络中,该第三LSP包括:PE4的Router ID和PE4到该虚拟节点的链路的状态信息,PE4到该虚拟节点的链路的状态信息包括PE4到该虚拟节点的链路的cost值和该虚拟节点的Router ID。由于PE4上生成了该虚拟节点,PE4还会“代表”该虚拟节点构造第四LSP,并将该第四LSP洪泛到整个网络中,该第四LSP包括:该虚拟节点的Router ID、该虚拟节点到PE3的链路的状态信息、该虚拟节点到PE4的链路的状态信息。该虚拟节点到PE3的链路的状态信息包括该虚拟节点到PE3的链路的cost值和PE3的Router ID,该虚拟节点到PE4的链路的状态信息包括该虚拟节点到PE4的链路的cost值和PE4的Router ID。PE3和PE4把这些LSP泛洪到ISIS域中,这样,与PE3和PE4处于同一ISIS域内的其他节点,比如PE1就能“看到”该虚拟节点、该虚拟节点与PE3之间的链路、该虚拟节点与PE4之间的链路,从而能够建立从PE1到该虚拟节点的vNH的隧道。

生成的虚拟节点与冗余保护组中的Egress PE之间的链路的属性值(cost值)可以根据情况自动设置或者人工设置。比如,如果希望PE3成为隧道的主路径经过的节点,而PE4成为隧道的备用路径经过的节点,则可以把PE3到虚拟节点的链路的cost值设置为1,把PE4到虚拟节点的链路的cost值设置为IGP的最大cost值。根据PE3和PE4之间运行的不同的IGP,可以设置不同的链路最大cost值,比如该网络中运行OSPF时,链路最大cost值可以设置为65535。为了不让虚拟节点承担穿通流量(transit traffic),可以把虚拟节点到PE3的链路的cost值和虚拟节点到PE4的链路的cost值都设置为IGP最大cost值。为了避免穿通流量,需要将虚拟节点配置为overload模式。在OSPF协议下可通过将该虚拟节点到Egress PE节点PE3的链路的cost值以及该虚拟节点到PE4的链路的cost值置为IGP的最大cost值来实现。在ISIS协议下,可以通过将所述第二LSP和第四LSP的overload bit位置1来实现。在IGP中,一个物理链路通常是双向的,IGP里描述的链路都是有方向的,每个方向需要单独描述。一个物理链路在不同方向上的cost值可能不同,也可能相同。

虚拟节点在物理上并不是真实存在的,只是为了IGP域内的其他节点能够计算出一条经过PE3的隧道而生成的。PE3的上游节点P1能计算出另外一个到达PE4的备用隧道,比如PE1->P1->P2->PE4,该备用隧道不经过PE3。这样在PE3故障时能通过P1把流量切换到备用隧道到达PE4,从而达到保护PE3的目的。

因为PE3和PE4是对称的,也可以建立经过PE4的主隧道,而在PE4的上一跳节点(比如图3中的P2)建立经过PE3且不经过PE4的备用隧道,比如PE1->P2->P1->PE3,在PE4故障时,在P2上把流量切换到备份隧道上从而达到保护PE4的目的。

可选地,如图24所示,所述第一Egress PE还可以包括第一虚拟节点地址协商模块2307,用于与所述第二Egress PE协商确定相同的虚拟节点的Router ID。相应地,所述第二第一Egress PE还可以包括第二虚拟节点地址协商模块2308,用于与所述第一Egress PE的虚拟节点地址协商模块2307协商确定相同的虚拟节点的Router ID。关于虚拟节点的vNH的协商方法,具体可以参考图4及其对应的段落,也可以参考图5-10及其对应的段落。

可选地,如图25所示,所述第一Egress PE还可以包括第一标签协商模块2309,用于与所述第二Egress PE协商确定相同的标签。相应地,所述第二Egress PE还可以包括第二标签协商模块2310,用于与所述第一Egress PE协商确定相同的标签。关于协商确定相同标签的方法,具体可以参考图12-17及其对应的段落。

可选地,该网络系统中还可以第三Egress PE,第三Egress PE位于包括所述第一Egress PE和所述第二Egress PE的冗余保护组中,第三Egress PE作为备用设备。所述第一Egress PE、所述第二Egress PE和第三Egress PE之间可以通过静态配置或动态协商来确定虚拟节点的vNH,动态协商vNH的方法可以参考图4及其对应的段落,也可以参考图5-10及其对应的段落。所述第一Egress PE、所述第二Egress PE和第三Egress PE之间可以通过动态协商来确定分配相同的标签。关于协商确定相同标签的方法,具体可以参考图12-17及其对应的段落。

可选地,本发明实施例中的各个模块,均可通过相应的硬件来实现。

所述网络系统、所述第一Egress PE、所述第二Egress PE可以应用于L2VPN或L3VPN。

实施例六

本发明实施例还提供了另一种网络系统,该网络系统包括第一PE设备、第二PE设备和Igress PE,所述第一PE设备和所述第二PE设备作为Egress PE,所述第一PE设备与客户边缘设备CE通信,所述第二PE设备与所述CE通信。所述第一PE设备和所述第二PE设备处于包括所述第一PE设备和所述第二PE设备的冗余保护组内,其中所述第一PE设备为主用设备,所述第二PE设备为备用设备。所述第一PE设备用于:

生成虚拟节点,所述虚拟节点具有所述网络系统中全局唯一的Router ID,所述虚拟节点用作所述第一PE设备的下一跳节点,所述虚拟节点用作所述第二PE设备的下一跳节点;

发送第一链路状态消息给所述Ingress PE,所述第一链路状态消息包括:所述第一PE设备的Router ID和所述第一PE设备到所述虚拟节点的链路的状态信息,所述第一PE设备到所述虚拟节点的链路的状态信息包括所述第一PE设备到所述虚拟节点的链路的cost值M和所述虚拟节点的Router ID;

发送第二链路状态消息给所述Ingress PE,所述第二链路状态消息包括:所述虚拟节点的Router ID、所述虚拟节点到所述第一PE设备的链路的状态信息和所述虚拟节点到所述第二PE设备的链路的状态信息,所述虚拟节点到所述第一Egress PE的链路的状态信息包括所述虚拟节点到所述第一PE设备的链路的cost值N和所述第一PE设备的Router ID,所述虚拟节点到所述第二Egress PE的链路的状态信息包括所述虚拟节点到所述第二PE设备的链路的cost值T和所述第二PE设备的Router ID;

所述第二PE设备用于:

生成所述虚拟节点,

发送第三链路状态消息给所述Ingress PE,所述第三链路状态消息包括:所述第二PE设备的Router ID和所述第二PE设备到所述虚拟节点的链路的状态信息,所述第二PE设备到所述虚拟节点的链路的状态信息包括所述第二PE设备到所述虚拟节点的链路的cost值S和所述虚拟节点的Router ID;

发送第四链路状态消息给所述Ingress PE,所述第四链路状态消息包括:所述虚拟节点的Router ID、所述虚拟节点到所述第一PE设备的链路的状态信息和所述虚拟节点到所述第二PE设备的链路的状态信息,所述虚拟节点到所述第一PE设备的链路的状态信息包括所述虚拟节点到所述第一PE设备的链路的cost值N和所述第一PE设备的Router ID,所述虚拟节点到所述第二Egress PE的链路的状态信息包括所述虚拟节点到所述第二PE设备的链路的cost值T和所述第二PE设备的Router ID;

所述第一PE设备还用于为第一虚拟专用网络VPN的第一转发等价类分配第一标签,并发送所述第一标签给所述Ingress PE;

所述第二PE设备还用于为所述第一VPN的第一转发等价类分配所述第一标签,并发送所述第一标签给所述Ingress PE。

当网络中的各个设备之间运行OSPF(Open Shortest Path First,开放式最短路径优先)协议时,所述第一PE设备上生成虚拟节点后,所述第一PE设备的链路状态及邻居关系均发生了变化,因此第一PE设备更新自身的链路状态和邻居关系,构造第一链路状态广播数据LSA(Link State Advertisement,LSA),并将该第一LSA洪泛到整个网络中,该第一LSA包括:所述第一PE设备的Router ID和所述第一PE设备到该虚拟节点的链路的状态信息,所述第一PE设备到该虚拟节点的链路的状态信息包括所述第一PE设备到该虚拟节点的链路的cost值和该虚拟节点的Router ID。由于所述第一PE设备上生成了该虚拟节点,所述第一PE设备还会“代表”该虚拟节点构造第二LSA,并将该第二LSA洪泛到整个网络中。该第二LSA包括:该虚拟节点的Router ID、该虚拟节点到所述第一PE设备的链路的状态信息和该虚拟节点到所述第二PE设备的链路的链路的状态信息。该虚拟节点到所述第一PE设备的链路的状态信息包括该虚拟节点到所述第一PE设备的链路的cost值和所述第一PE设备的Router ID,该虚拟节点到所述第二PE设备的链路的状态信息包括该虚拟节点到所述第二PE设备的链路的cost值和所述第二PE设备的Router ID。类似地,冗余保护组中的其他Egress PE,也构造相应的LSA并将这些LSA洪泛到整个OSPF域中,该OSPF域可以是整个网络。比如所述第二PE设备上生成该虚拟节点后,所述第二PE设备的链路状态及邻居关系均发生了变化,因此所述第二PE设备更新自身的链路状态和邻居关系,构造第三LSA,并将该第三LSA洪泛到整个网络中。该第三LSA包括:所述第二PE设备的Router ID和所述第二PE设备到该虚拟节点的链路的状态信息,所述第二PE设备到该虚拟节点的链路的状态信息包括所述第二PE设备到该虚拟节点的链路的cost值和该虚拟节点的Router ID。由于所述第二PE设备上生成了该虚拟节点,所述第二PE设备还会“代表”该虚拟节点构造第四LSA,并将该第四LSA洪泛到整个网络中,该第四LSA包括:该虚拟节点的Router ID、该虚拟节点到所述第一PE设备的链路的状态信息、该虚拟节点到所述第二PE设备的链路的状态信息。该虚拟节点到所述第一PE设备的链路的状态信息包括该虚拟节点到所述第一PE设备的链路的cost值和所述第一PE设备的Router ID,该虚拟节点到所述第二PE设备的链路的状态信息包括该虚拟节点到所述第二PE设备的链路的cost值和所述第二PE设备的Router ID。所述第一PE设备和所述第二PE设备把这些LSA泛洪到OSPF域中,这样,与所述第一PE设备和所述第二PE设备处于同一OSPF域内的其他节点,比如PE1就能“看到”该虚拟节点、该虚拟节点与所述第一PE设备之间的链路、该虚拟节点与所述第二PE设备之间的链路,从而能够建立从PE1到该虚拟节点的vNH的隧道。链路状态就是路由器的OSPF接口上的描述信息,例如接口上的IP地址、子网掩码、网络类型、cost值等等。OSPF路由器之间交换的并不是路由表,而是链路状态,OSPF路由器(比如PE1)通过获得网络中所有的链路状态信息,从而计算出到达每个目标精确的网络路径。

当所述第一PE设备和所述第二PE设备之间运行ISIS(Intermediate system to intermediate system,中间系统到中间系统)协议时,所述第一PE设备上生成虚拟节点后,所述第一PE设备的链路状态及邻居关系均发生了变化,因此所述第一PE设备更新自身的链路状态和邻居关系,构造第一链路状态报文LSP(Link-state PDU),并将该第一LSP洪泛到整个网络中,该第一LSP包括:所述第一PE设备的Router ID和所述第一PE设备到该虚拟节点的链路的状态信息,所述第一PE设备到该虚拟节点的链路的状态信息包括所述第一PE设备到该虚拟节点的链路的cost值和虚拟节点的Router ID。由于所述第一PE设备上生成了该虚拟节点,所述第一PE设备还会“代表”该虚拟节点构造第二LSP,并将该第二LSP洪泛到整个网络中,该第二LSP包括:该虚拟节点的Router ID、该虚拟节点到所述第一PE设备的链路的状态信息和该虚拟节点到所述第二PE设备的链路的链路的状态信息。该虚拟节点到所述第一PE设备的链路的状态信息包括该虚拟节点到所述第一PE设备的链路的cost值和所述第一PE设备的Router ID,该虚拟节点到所述第二PE设备的链路的状态信息包括该虚拟节点到所述第二PE设备的链路的cost值和所述第二PE设备的Router ID。类似地,冗余保护组中的其他Egress PE,比如也构造相应的LSP并将这些LSP洪泛到整个ISIS域中,该ISIS域可以是整个网络。比如所述第二PE设备上生成虚拟节点后,所述第二PE设备的链路状态及邻居关系均发生了变化,因此所述第二PE设备更新自身的链路状态和邻居关系,构造第三LSP,并将该第三LSP洪泛到整个网络中,该第三LSP包括:所述第二PE设备的Router ID和所述第二PE设备到该虚拟节点的链路的状态信息,所述第二PE设备到该虚拟节点的链路的状态信息包括所述第二PE设备到该虚拟节点的链路的cost值和该虚拟节点的Router ID。由于所述第二PE设备上生成了该虚拟节点,所述第二PE设备还会“代表”该虚拟节点构造第四LSP,并将该第四LSP洪泛到整个网络中,该第四LSP包括:该虚拟节点的Router ID、该虚拟节点到所述第一PE设备的链路的状态信息、该虚拟节点到所述第二PE设备的链路的状态信息。该虚拟节点到所述第一PE设备的链路的状态信息包括该虚拟节点到所述第一PE设备的链路的cost值和所述第一PE设备的Router ID,该虚拟节点到所述第二PE设备的链路的状态信息包括该虚拟节点到所述第二PE设备的链路的cost值和所述第二PE设备的Router ID。所述第一PE设备和所述第二PE设备把这些LSP泛洪到ISIS域中,这样,与所述第一PE设备和所述第二PE设备处于同一ISIS域内的其他节点,比如PE1就能“看到”该虚拟节点、该虚拟节点与所述第一PE设备之间的链路、该虚拟节点与所述第二PE设备之间的链路,从而能够建立从PE1到该虚拟节点的vNH的隧道。

生成的虚拟节点与冗余保护组中的Egress PE之间的链路的属性值(cost值)可以根据情况自动设置或者人工设置。比如,如果希望所述第一PE设备成为隧道的主路径经过的节点,而所述第二PE设备成为隧道的备用路径经过的节点,则可以把所述第一PE设备到虚拟节点的链路的cost值设置为1,把PE4到虚拟节点的链路的cost值设置为IGP的最大cost值。根据所述第一PE设备和所述第二PE设备之间运行的不同的IGP,可以设置不同的链路最大cost值,比如该网络中运行OSPF时,链路最大cost值可以设置为65535。为了不让虚拟节点承担穿通流量(transit traffic),可以把虚拟节点到所述第一PE设备的链路的cost值和虚拟节点到所述第二PE设备的链路的cost值都设置为IGP最大cost值。为了避免穿通流量,需要将虚拟节点配置为overload模式。在OSPF协议下可通过将该虚拟节点到所述第一PE设备的链路的cost值以及该虚拟节点到所述第二PE设备的链路的cost值置为IGP的最大cost值来实现。在ISIS协议下,可以通过将所述第二LSP和第四LSP的overload bit位置1来实现。在IGP中,一个物理链路通常是双向的,IGP里描述的链路都是有方向的,每个方向需要单独描述。一个物理链路在不同方向上的cost值可能不同,也可能相同。

可选地,所述第一PE设备还可以包括第一虚拟节点地址协商模块,用于与所述第二PE设备协商确定相同的虚拟节点的Router ID。相应地,所述第二PE设备还可以包括第二虚拟节点地址协商模块,用于与所述第一PE设备的虚拟节点地址协商模块协商确定相同的虚拟节点的Router ID。关于虚拟节点的Router ID协商方法,具体可以参考图4及其对应的段落,也可以参考图5-10及其对应的段落。

可选地,如图25所示,所述第一PE设备还可以包括第一标签协商模块,用于与所述第二PE设备协商确定相同的标签。相应地,所述第二PE设备还可以包括第二标签协商模块,用于与所述第一PE设备协商确定相同的标签。关于协商确定相同标签的方法,具体可以参考图12-17及其对应的段落。

实施例七

本发明实施例还提供了另一种网络系统,该网络系统包括第一PE设备和第二PE设备,所述第一PE设备和所述第二PE设备作为Egress PE,分别与客户边缘设备CE通信。所述网络系统还包括第三PE设备,作为Ingress PE。所述第一PE设备和所述第二PE设备处于包括所述第一PE设备和所述第二PE设备的冗余保护组内,其中所述第一PE设备为主用设备,所述第二PE设备为备用设备。如图26所示,该第一PE设备包括:第一总线2601;以及连接到第一总线2601的第一处理器2602、第一存储器2603和第一接口2604,该第一存储器2603用于存储指令,该第一处理器2602用于执行该指令执行如下操作:

在所述第一PE设备生成虚拟节点,所述虚拟节点具有所述网络系统中全局唯一的Router ID,所述虚拟节点用作所述第一PE设备的下一跳节点,所述虚拟节点用作所述第二PE设备的下一跳节点;

触发第一接口2604通过第一总线2601发送第一链路状态消息给所述Ingress PE,所述第一链路状态消息包括:所述第一PE设备的Router ID和所述第一PE设备到所述虚拟节点的链路的状态信息,所述第一PE设备到所述虚拟节点的链路的状态信息包括所述第一PE设备到所述虚拟节点的链路的cost值M和所述虚拟节点的Router ID;

触发第一接口2604通过第一总线2601发送第二链路状态消息给所述Ingress PE,所述第二链路状态消息包括:所述虚拟节点的Router ID、所述虚拟节点到所述第一PE设备的链路的状态信息和所述虚拟节点到所述第二PE设备的链路的状态信息,所述虚拟节点到所述第一PE设备的链路的状态信息包括所述虚拟节点到所述第一PE设备的链路的cost值N和所述第一PE设备的Router ID,所述虚拟节点到所述第二PE设备的链路的状态信息包括所述虚拟节点到所述第二PE设备的链路的cost值T和所述第二PE设备的ID;其中所述N和所述T为内部网关协议IGP的最大cost值;

类似地,所述第二PE设备也可以包括第二总线;以及连接到第二总线的第二处理器、第二存储器和第二接口,该第二存储器用于存储指令,该第二处理器用于执行该指令执行如下操作:

在所述第二PE设备生成所述虚拟节点;

触发所述第二接口通过所述第二总线发送第三链路状态消息给所述Ingress PE,所述第三链路状态消息包括:所述第二PE设备的Router ID和所述第二PE设备到所述虚拟节点的链路的状态信息,所述第二PE设备到所述虚拟节点的链路的状态信息包括所述第二PE设备到所述虚拟节点的链路的cost值S和所述虚拟节点的Router ID;

触发所述第二接口通过所述第二总线发送第四链路状态消息给所述Ingress PE,所述第四链路状态消息包括:所述虚拟节点的Router ID、所述虚拟节点到所述第一PE设备的链路的状态信息和所述虚拟节点到所述第二PE设备的链路的状态信息,所述虚拟节点到所述第一PE设备的链路的状态信息包括所述虚拟节点到所述第一PE设备的链路的cost值N和所述第一PE设备的Router ID,所述虚拟节点到所述第二PE设备的链路的状态信息包括所述虚拟节点到所述第二PE设备的链路的cost值T和所述第二PE设备的Router ID。其中所述N和所述T为内部网关协议IGP的最大cost值。

所述Ingress PE收到所述第一链路状态消息、所述第二链路状态消息、所述第三链路状态消息和所述第四链路状态消息后,获得所述虚拟节点的vNH、所述第一PE设备到所述虚拟节点的链路的cost值M和所述第二PE设备到所述虚拟节点的链路的cost值S。

根据网络中采用的隧道类型不同,所述第一链路状态消息、所述第二链路状态消息、所述第三链路状态消息和所述第四链路状态消息中的任何一个还可能包括其他属性,比如对MPLS TE隧道,还包括带宽、亲和属性、颜色等中的一个或多个。

所述链路的cost值有多种设置方法,比如对采用显式路由的MPLS TE隧道,链路S或M的cost值可以设置成任意合法的IGP cost值。也可以静态配置链路S或M的cost值。

所述第一处理器和所述第二处理器中的至少一个,按照方式(1)或(2)确定所述第一PE设备到所述虚拟节点的链路的cost值M以及所述第二PE设备到所述虚拟节点的链路的cost值S,并将确定的所述第一PE设备到所述虚拟节点的链路的cost值M以及所述第二PE设备到所述虚拟节点的链路的cost值S同步到所述第一PE设备和所述第二PE设备所在的冗余保护组中:

(1)S和M满足:

Sxy4+S>Sxy3+M ①和

C34+S>M ②

其中,Px为所述第一PE设备的任何邻居节点,Pxy为去掉所述第一PE设备后的网络中所述Px的任意邻居节点,Sxy3为所述Pxy到所述第一PE设备的最短路径的cost值,Sxy4为所述Pxy到所述第二Egress PE的最短路径的cost值,C34为所述第一PE设备到所述第二PE设备的最短路径的cost值。

(2)S和M满足:

X+M<Y+S ③

其中X为从所述Ingress PE到所述第一Egress PE的最短路径的cost值,Y为从所述Ingress PE到所述第二Egress PE的最短路径的cost值。

对于方式(1),求解同时满足上述不等式①和不等式②的S和M,即,求解同时满足不等式①和不等式②的M-S对。

对于Egress PE到虚拟节点的链路的cost值的计算,冗余保护组中的每个Egress PE均可计算满足不等式①和不等式②的M-S对,即冗余保护组中的PE3可以计算满足不等式①和不等式②的M-S对,冗余保护组中的PE4也可以计算满足不等式①和不等式②的M-S对。

如果冗余保护组中的多个Egress PE计算出了不同的M-S对,则多个Egress PE之间可以通过协商的方式确定最终部署在冗余保护组的所有Egress PE上的M和S。

可选地,如果根据方式(1)或(2)获得多组满足条件的M-S对,则选择S最小的M-S对或者M最小的M-S对,并将选择的M-S对同步到冗余保护组的所有Egress PE。将选择的M-S对中的M携带在所述第一链路状态信息中,将选择的M-S对中的S携带在所述第三链路状态信息中。

可选地,可以在冗余保护组中的任意一个Egress PE上根据方式(1)或方式(2)确定M-S对,并将确定的M-S对同步到冗余保护组中的其他Egress PE上。可选地,对于将确定的M-S对同步到冗余保护组中的其他Egress PE上,可以通过同步协议实现。

可选地,也可以直接按照方式(2)在冗余保护组的所有Egress PE上配置M和S。比如,可以将M设置为1,将S设置为IGP协议中的cost值的最大值。

可选地,还可以在冗余保护组的多个Egress PE上按照方式(1)或(2)计算M和S,如果根据方式(1)或(2)获得多组满足条件的M-S对,则选择S最小的M-S对或者M最小的M-S对,当然,也可以任选一组满足不等式①和②的M-S对。将选择的M-S对中的M携带在所述第一链路状态信息中,将选择的M-S对中的S携带在所述第三链路状态信息中。

当网络中的各个设备之间运行OSPF(Open Shortest Path First,开放式最短路径优先)协议时,所述第一PE设备上生成虚拟节点后,所述第一PE设备的链路状态及邻居关系均发生了变化,因此第一PE设备更新自身的链路状态和邻居关系,构造第一链路状态广播数据LSA(Link State Advertisement,LSA),并将该第一LSA洪泛到整个网络中,该第一LSA包括:所述第一PE设备的Router ID和所述第一PE设备到该虚拟节点的链路的状态信息,所述第一PE设备到该虚拟节点的链路的状态信息包括所述第一PE设备到该虚拟节点的链路的cost值和该虚拟节点的Router ID。由于所述第一PE设备上生成了该虚拟节点,所述第一PE设备还会“代表”该虚拟节点构造第二LSA,并将该第二LSA洪泛到整个网络中。该第二LSA包括:该虚拟节点的Router ID、该虚拟节点到所述第一PE设备的链路的状态信息和该虚拟节点到所述第二PE设备的链路的链路的状态信息。该虚拟节点到所述第一PE设备的链路的状态信息包括该虚拟节点到所述第一PE设备的链路的cost值和所述第一PE设备的Router ID,该虚拟节点到所述第二PE设备的链路的状态信息包括该虚拟节点到所述第二PE设备的链路的cost值和所述第二PE设备的Router ID。类似地,冗余保护组中的其他Egress PE,也构造相应的LSA并将这些LSA洪泛到整个OSPF域中,该OSPF域可以是整个网络。比如所述第二PE设备上生成该虚拟节点后,所述第二PE设备的链路状态及邻居关系均发生了变化,因此所述第二PE设备更新自身的链路状态和邻居关系,构造第三LSA,并将该第三LSA洪泛到整个网络中。该第三LSA包括:所述第二PE设备的Router ID和所述第二PE设备到该虚拟节点的链路的状态信息,所述第二PE设备到该虚拟节点的链路的状态信息包括所述第二PE设备到该虚拟节点的链路的cost值和该虚拟节点的Router ID。由于所述第二PE设备上生成了该虚拟节点,所述第二PE设备还会“代表”该虚拟节点构造第四LSA,并将该第四LSA洪泛到整个网络中,该第四LSA包括:该虚拟节点的Router ID、该虚拟节点到所述第一PE设备的链路的状态信息、该虚拟节点到所述第二PE设备的链路的状态信息。该虚拟节点到所述第一PE设备的链路的状态信息包括该虚拟节点到所述第一PE设备的链路的cost值和所述第一PE设备的Router ID,该虚拟节点到所述第二PE设备的链路的状态信息包括该虚拟节点到所述第二PE设备的链路的cost值和所述第二PE设备的Router ID。所述第一PE设备和所述第二PE设备把这些LSA泛洪到OSPF域中,这样,与所述第一PE设备和所述第二PE设备处于同一OSPF域内的其他节点,比如PE1就能“看到”该虚拟节点、该虚拟节点与所述第一PE设备之间的链路、该虚拟节点与所述第二PE设备之间的链路,从而能够建立从PE1到该虚拟节点的vNH的隧道。链路状态就是路由器的OSPF接口上的描述信息,例如接口上的IP地址、子网掩码、网络类型、cost值等等。OSPF路由器之间交换的并不是路由表,而是链路状态,OSPF路由器(比如PE1)通过获得网络中所有的链路状态信息,从而计算出到达每个目标精确的网络路径。

当所述第一PE设备和所述第二PE设备之间运行ISIS(Intermediate system to intermediate system,中间系统到中间系统)协议时,所述第一PE设备上生成虚拟节点后,所述第一PE设备的链路状态及邻居关系均发生了变化,因此所述第一PE设备更新自身的链路状态和邻居关系,构造第一链路状态报文LSP(Link-state PDU),并将该第一LSP洪泛到整个网络中,该第一LSP包括:所述第一PE设备的Router ID和所述第一PE设备到该虚拟节点的链路的状态信息,所述第一PE设备到该虚拟节点的链路的状态信息包括所述第一PE设备到该虚拟节点的链路的cost值和虚拟节点的Router ID。由于所述第一PE设备上生成了该虚拟节点,所述第一PE设备还会“代表”该虚拟节点构造第二LSP,并将该第二LSP洪泛到整个网络中,该第二LSP包括:该虚拟节点的Router ID、该虚拟节点到所述第一PE设备的链路的状态信息和该虚拟节点到所述第二PE设备的链路的链路的状态信息。该虚拟节点到所述第一PE设备的链路的状态信息包括该虚拟节点到所述第一PE设备的链路的cost值和所述第一PE设备的Router ID,该虚拟节点到所述第二PE设备的链路的状态信息包括该虚拟节点到所述第二PE设备的链路的cost值和所述第二PE设备的Router ID。类似地,冗余保护组中的其他Egress PE,比如也构造相应的LSP并将这些LSP洪泛到整个ISIS域中,该ISIS域可以是整个网络。比如所述第二PE设备上生成虚拟节点后,所述第二PE设备的链路状态及邻居关系均发生了变化,因此所述第二PE设备更新自身的链路状态和邻居关系,构造第三LSP,并将该第三LSP洪泛到整个网络中,该第三LSP包括:所述第二PE设备的Router ID和所述第二PE设备到该虚拟节点的链路的状态信息,所述第二PE设备到该虚拟节点的链路的状态信息包括所述第二PE设备到该虚拟节点的链路的cost值和该虚拟节点的Router ID。由于所述第二PE设备上生成了该虚拟节点,所述第二PE设备还会“代表”该虚拟节点构造第四LSP,并将该第四LSP洪泛到整个网络中,该第四LSP包括:该虚拟节点的Router ID、该虚拟节点到所述第一PE设备的链路的状态信息、该虚拟节点到所述第二PE设备的链路的状态信息。该虚拟节点到所述第一PE设备的链路的状态信息包括该虚拟节点到所述第一PE设备的链路的cost值和所述第一PE设备的Router ID,该虚拟节点到所述第二PE设备的链路的状态信息包括该虚拟节点到所述第二PE设备的链路的cost值和所述第二PE设备的Router ID。所述第一PE设备和所述第二PE设备把这些LSP泛洪到ISIS域中,这样,与所述第一PE设备和所述第二PE设备处于同一ISIS域内的其他节点,比如PE1就能“看到”该虚拟节点、该虚拟节点与所述第一PE设备之间的链路、该虚拟节点与所述第二PE设备之间的链路,从而能够建立从PE1到该虚拟节点的vNH的隧道。

生成的虚拟节点与冗余保护组中的Egress PE之间的链路的属性值(cost值)可以根据情况自动设置或者人工设置。比如,如果希望所述第一PE设备成为隧道的主路径经过的节点,而所述第二PE设备成为隧道的备用路径经过的节点,则可以把所述第一PE设备到虚拟节点的链路的cost值设置为1,把PE4到虚拟节点的链路的cost值设置为IGP的最大cost值。根据所述第一PE设备和所述第二PE设备之间运行的不同的IGP,可以设置不同的链路最大cost值,比如该网络中运行OSPF时,链路最大cost值可以设置为65535。为了不让虚拟节点承担穿通流量(transit traffic),可以把虚拟节点到所述第一PE设备的链路的cost值和虚拟节点到所述第二PE设备的链路的cost值都设置为IGP最大cost值。为了避免穿通流量,需要将虚拟节点配置为overload模式。在OSPF协议下可通过将该虚拟节点到所述第一PE设备的链路的cost值以及该虚拟节点到所述第二PE设备的链路的cost值置为IGP的最大cost值来实现。在ISIS协议下,可以通过将所述第二LSP和第四LSP的overload bit位置1来实现。在IGP中,一个物理链路通常是双向的,IGP里描述的链路都是有方向的,每个方向需要单独描述。一个物理链路在不同方向上的cost值可能不同,也可能相同。

可选地,所述第一处理器还可以还可以执行该指令执行如下操作:与所述第二PE设备协商确定相同的虚拟节点的Router ID。相应地,所述第二处理器还可以执行该指令执行如下操作:与所述第一PE设备的第一处理器协商确定相同的虚拟节点的Router ID。关于虚拟节点的Router ID协商方法,具体可以参考图4及其对应的段落,也可以参考图5-10及其对应的段落。

可选地,所述第一处理器2602还可以执行该指令执行如下操作:与所述第二PE设备协商确定相同的标签。相应地,所述第二处理器还可以执行该指令执行如下操作:与所述第一PE设备协商确定相同的标签。关于协商确定相同标签的方法,具体可以参考图12-17及其对应的段落。

可选地,本发明实施例中的各个模块,均可通过相应的硬件来实现。

所述网络系统、所述第一Egress PE、所述第二Egress PE可以应用于L2VPN或L3VPN。

本发明实施例中,主用Egress PE和备用Egress PE发布CE节点所属的VRF(Virtual Routing Forwarding,虚拟路由转发)路由时,主用Egress PE和备用Egress PE分别为每个VRF标签(比如第一VRF标签)分配相同的VPN路由标签。

本发明实施例所述的方法、设备、系统,通过在冗余保护组中的Egress PE上配置相同的虚拟下一跳,并将该虚拟下一跳节点的地址发送给Ingress PE,从而Ingress PE能够建立经过主用Egress PE的主隧道,以及依次经过主用Egress EP的上一跳节点、备用Egress PE的上一跳节点、备用Egress的备用隧道,当主用Egress PE发生故障时,可以直接切换到备用隧道,该切换所涉及的节点设备相对较少,因而可以以较短的时间完成保护切换,对该隧道上承载的上层业务来说,该切换是无缝的、不被上层业务感知的。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。比如,检测器、发送器、接收器、获得单元都可以通过通用中央处理器CPU或专用集成电路(Application Specific Integrated Circuit,ASIC)或现场可编程门阵列(Field-Programmable Gate Array,FPGA)来实现。

上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

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