VPN实现方法和PE设备转让专利

申请号 : CN201710765864.6

文献号 : CN107483311B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 庄顺万李振斌宋宝华

申请人 : 华为技术有限公司

摘要 :

提供一种VPN实现方法和PE设备,其中方法包括:将本端的VPN拓扑信息发送至对端的PE设备,并接收所述对端的PE设备发送的对端的VPN拓扑信息;根据所述本端的VPN拓扑信息和对端的VPN拓扑信息,使得本端和对端选择共同支持的拓扑;通过所述相同的拓扑连接所述各VPN成员,实现所述VPN。可以实现多拓扑环境下的VPN且提高多拓扑VPN的服务质量。

权利要求 :

1.一种虚拟专用网VPN实现方法,应用于存在多个拓扑的多协议标签交换MPLS VPN,所述MPLS VPN包括MPLS骨干网、以及通过所述MPLS骨干网连接的各VPN成员,所述MPLS骨干网中包括至少两个PE设备,所述至少两个PE设备用于将各VPN成员连接在所述MPLS VPN中;其特征在于,所述方法包括:本端PE将本端的VPN拓扑信息发送至对端的PE设备,并接收所述对端的PE设备发送的对端的VPN拓扑信息;

所述本端PE根据所述本端的VPN拓扑信息和对端的VPN拓扑信息,使得本端和对端选择共同支持的拓扑;

所述本端PE通过所述共同支持的拓扑连接所述各VPN成员,实现所述MPLS VPN;

所述将本端的VPN拓扑信息发送至对端的PE设备,接收对端的PE设备发送的对端的VPN拓扑信息,包括:将与本端连接的所有VPN成员支持的拓扑信息作为所述本端的VPN拓扑信息,发送至对端的PE设备;并接收对端的PE设备发送的对端PE设备连接的所有VPN成员支持的拓扑信息;

所述通过所述共同支持的拓扑连接所述各VPN成员,包括:向所述对端PE设备发送VPN路由信息、以及所述共同支持的VPN拓扑信息;

所述将本端的VPN拓扑信息发送至对端的PE设备,接收对端的PE设备发送的对端的VPN拓扑信息,进一步包括:将所述本端的VPN拓扑信息所属的VPN成员的VPN标识、所述VPN成员所在的本端PE设备的IP地址以及路由目标RT发送至对端的PE设备;并接收对端的PE设备发送的VPN拓扑信息所属的VPN成员的VPN标识、对端PE设备的IP地址以及RT;

根据所述本端的VPN拓扑信息和对端的VPN拓扑信息,使得本端和对端选择共同支持的拓扑,包括:根据接收的所述对端的PE设备发送的RT,获得与所述RT匹配的本端的VPN拓扑信息,获得的所述本端的VPN拓扑信息所属的VPN成员与对端的VPN成员相同;

根据获得的所述本端的VPN拓扑信息和对端的VPN拓扑信息,得到本端和对端的相同的所述VPN成员共同支持的VPN拓扑信息;

所述通过所述相同的拓扑连接所述各VPN成员,还包括:还向所述对端PE设备发送本端PE设备的IP地址。

2.根据权利要求1所述的VPN实现方法,其特征在于,

所述将本端的VPN拓扑信息发送至对端的PE设备,包括:将本端的VPN拓扑信息封装在边界网关协议网络层可达性信息BGP NLRI中发送至对端的PE设备;

所述向所述对端PE设备发送共同支持的VPN拓扑信息,包括:将所述共同支持的VPN拓扑信息封装在边界网关协议BGP扩展团体属性中发送至所述对端PE设备。

3.根据权利要求1所述的VPN实现方法,其特征在于,

在所述将本端的VPN拓扑信息发送至对端的PE设备之前,还包括:

接收对端的PE设备发送的边界网关协议打开BGP Open消息,所述BGP Open消息中携带用于表示所述对端的PE设备支持VPN拓扑发现能力的标识;

所述将本端的VPN拓扑信息发送至对端的PE设备的操作根据所述标识执行。

4.一种PE设备,应用于存在多个拓扑的多协议标签交换MPLS虚拟专用网VPN,所述MPLS VPN包括MPLS骨干网、以及通过所述MPLS骨干网连接的各VPN成员,用于分别连接各VPN成员的至少两个所述PE设备位于所述MPLS骨干网中;其特征在于,每个所述PE设备包括:信息交换单元,用于将本端的VPN拓扑信息发送至对端的PE设备,并接收所述对端的PE设备发送的对端的VPN拓扑信息;

拓扑确定单元,用于根据所述本端的VPN拓扑信息和对端的VPN拓扑信息,使得本端和对端选择共同支持的拓扑;

VPN处理单元,用于通过所述共同支持的拓扑连接所述各VPN成员,实现所述MPLS VPN;

所述信息交换单元,具体用于将与本端连接的所有VPN成员支持的拓扑信息作为所述本端的VPN拓扑信息,发送至对端的PE设备;并接收对端的PE设备发送的与对端PE设备连接的所有VPN成员支持的拓扑信息;

所述VPN处理单元,具体用于向所述对端PE设备发送VPN路由信息、以及所述共同支持的VPN拓扑信息;

所述信息交换单元,还用于将所述本端的VPN拓扑信息所属的VPN成员的VPN标识、所述VPN成员所在的本端PE设备的IP地址以及路由目标RT发送至对端的PE设备;并接收对端的PE设备发送的VPN拓扑信息所属的VPN成员的VPN标识、对端PE设备的IP地址以及RT;

所述拓扑确定单元,具体用于根据接收的所述对端的PE设备发送的RT,获得与所述RT匹配的本端的VPN拓扑信息,获得的所述本端的VPN拓扑信息所属的VPN成员与所述对端的VPN成员相同;以及,获得的根据所述本端的VPN拓扑信息和对端的VPN拓扑信息,得到本端和对端的相同的所述VPN成员共同支持的VPN拓扑信息对应的拓扑作为所述相同的拓扑;

所述VPN处理单元,还用于向所述对端PE设备发送本端PE设备的IP地址。

5.根据权利要求4所述的PE设备,其特征在于,

所述信息交换单元,具体用于将本端的VPN拓扑信息封装在边界网关协议网络层可达性信息BGP NLRI中发送至对端的PE设备;

所述VPN处理单元,具体用于将所述共同支持的VPN拓扑信息封装在边界网关协议BGP扩展团体属性中发送至所述对端PE设备。

6.根据权利要求4所述的PE设备,其特征在于,

所述信息交换单元,还用于在所述将本端的VPN拓扑信息发送至对端的PE设备之前,接收对端的PE设备发送的边界网关协议打开BGP Open消息,所述BGP Open消息中携带用于表示所述对端的PE设备支持VPN拓扑发现能力的标识。

说明书 :

VPN实现方法和PE设备

技术领域

[0001] 本发明涉及通信技术,尤其涉及一种虚拟专用网络(Virtual Private Network,简称VPN)实现方法和PE设备。

背景技术

[0002] 在多协议标签交换虚拟专用网(Multi-Protocol Label Switching Virtual Private Network,简称:MPLS VPN)的实现中,是通过MPLS骨干网将处在不同位置的VPN成员连接,例如将第一VPN成员和第二VPN成员连接,该第一VPN成员和第二VPN成员通过MPLS骨干网连通在同一个VPN。其中,第一VPN成员通过第一用户边缘(Customer Edge,简称:CE)设备连接MPLS骨干网的第一运营商边缘(Provider Edge,简称:PE)设备,该第一PE设备通过MPLS骨干网连接第二PE设备,第二PE设备通过第二CE连接第二VPN成员;第一VPN成员和第二VPN成员可以通过第一CE、第一PE、MPLS骨干网、第二PE和第二CE连接的通路进行通信。
[0003] 在MPLS骨干网中,可能会划分具有不同的服务质量(Quality of Service,简称:Qos)的多个拓扑,例如,在MPLS骨干网中划分出具有不同Qos的第一拓扑和第二拓扑。现有技术中,不同VPN成员在通过MPLS骨干网连通时,不同方向的流量可能选择的是MPLS骨干网的不同拓扑,例如,第一VPN成员向第二VPN成员发送报文时是通过MPLS骨干网的第一拓扑传输,而第二VPN成员向第一VPN成员发送报文时是通过MPLS骨干网的第二拓扑传输,这样会造成同一VPN的两端通信的服务质量不一致,降低该VPN的服务质量。
[0004] 此外,随着MPLS VPN技术的不断发展,在VPN成员侧,用户需要在VPN中划分用于承载不同业务流的逻辑拓扑,例如,分别用于承载语音、视频和数据等业务流的逻辑拓扑;处在不同位置的VPN成员连接时必须选择相同的拓扑才能实现VPN。例如,第一VPN成员中选择的是用于承载语音业务流的拓扑1,则第二VPN成员中也必须是选择该用于承载语音业务流的拓扑1(相同的拓扑ID表示拓扑承载的业务流相同),这样第一VPN成员和第二VPN成员才能组成同一个VPN;否则,如果第一VPN成员选择的是拓扑1,第二VPN成员选择的是用于承载视频业务流的拓扑2,这两个VPN成员是不能组成VPN的。但是,现有技术中MPLS VPN将处在不同位置的多拓扑的VPN成员连接时,无法保证各VPN成员间选择相同的拓扑,从而无法实现MPLS骨干网两端的VPN成员中存在多拓扑时的MPLS VPN,不能够满足用户的需求。

发明内容

[0005] 提供一种VPN实现方法和PE设备,实现存在多拓扑环境时的MPLS VPN,且提高多拓扑VPN的服务质量。
[0006] 本发明的第一个方面是提供一种VPN实现方法,应用于存在多个拓扑的多协议标签交换虚拟专用网MPLS VPN,所述MPLS VPN包括MPLS骨干网、以及通过所述MPLS骨干网连接的各VPN成员,所述MPLS骨干网中包括至少两个PE设备,所述至少两个PE设备用于将各VPN成员连接在所述MPLS VPN中;所述方法包括:
[0007] 将本端的VPN拓扑信息发送至对端的PE设备,并接收所述对端的PE设备发送的对端的VPN拓扑信息;
[0008] 根据所述本端的VPN拓扑信息和对端的VPN拓扑信息,使得本端和对端选择共同支持的拓扑;
[0009] 通过所述共同支持的拓扑连接所述各VPN成员,实现所述MPLSVPN。
[0010] 在一种可能的实现方式中,所述多个拓扑存在于MPLS VPN的VPN成员中;将本端的VPN拓扑信息发送至对端的PE设备,接收对端的PE设备发送的对端的VPN拓扑信息,包括:将与本端连接的所有VPN成员支持的拓扑信息作为本端的VPN拓扑信息,发送至对端的PE设备;并接收对端的PE设备发送的与对端PE设备连接的所有VPN成员支持的拓扑信息;所述通过所述共同支持的拓扑连接各VPN成员,包括:向所述对端PE设备发送VPN路由信息、以及共同支持的VPN拓扑信息。
[0011] 在另一种可能的实现方式中,所述将本端的VPN拓扑信息发送至对端的PE设备,接收对端的PE设备发送的对端的VPN拓扑信息,进一步包括:将本端的VPN拓扑信息所属的VPN成员的VPN标识、所述VPN成员所在的本端PE设备的IP地址以及路由目标RT发送至对端的PE设备;并接收对端的PE设备发送的VPN拓扑信息所属的VPN成员的VPN标识、对端PE设备的IP地址以及RT;根据本端的VPN拓扑信息和对端的VPN拓扑信息,使得本端和对端选择共同支持的拓扑,包括:根据接收的所述对端的PE设备发送的RT,获得与所述RT匹配的本端的VPN拓扑信息,获得的所述本端的VPN拓扑信息所属的VPN成员与对端的VPN成员相同;根据所述本端的VPN拓扑信息和对端的VPN拓扑信息,得到本端和对端的相同的所述VPN成员共同支持的VPN拓扑信息;所述通过所述相同的拓扑连接所述各VPN成员,还包括:还向所述对端PE设备发送本端PE设备的IP地址。
[0012] 在又一种可能的实现方式中,所述将本端的VPN拓扑信息发送至对端的PE设备,包括:将本端的VPN拓扑信息封装在BGP NLRI中发送至对端的PE设备;所述向所述对端PE设备发送共同支持的VPN拓扑信息,包括:将所述共同支持的VPN拓扑信息封装在BGP扩展团体属性中发送至所述对端PE设备。
[0013] 在又一种可能的实现方式中,在所述将本端的VPN拓扑信息发送至对端的PE设备之前,还包括:接收对端的PE设备发送的BGP Open消息,所述BGP Open消息中携带用于表示对端的PE设备支持VPN拓扑发现能力的标识;所述将本端的VPN拓扑信息发送至对端的PE设备的操作根据所述标识执行。
[0014] 在又一种可能的实现方式中,所述多个拓扑存在于所述MPLS VPN的MPLS骨干网中;所述将本端的VPN拓扑信息发送至对端的PE设备,接收所述对端的PE设备发送的对端的VPN拓扑信息,包括:将本端PE设备选择的MPLS骨干网拓扑的拓扑标识发送至对端的PE设备,并接收所述对端的PE设备发送的对端选择的MPLS骨干网拓扑的拓扑标识;所述根据本端的VPN拓扑信息和对端的VPN拓扑信息,使得本端和对端选择共同支持的拓扑,包括:根据本端选择的MPLS骨干网拓扑的拓扑标识和对端选择的MPLS骨干网拓扑的拓扑标识,使得本端和对端选择具有相同的拓扑标识的MPLS骨干网拓扑;所述通过所述共同支持的拓扑连接所述各VPN成员,包括:通过所述本端和对端选择的相同的拓扑标识对应的MPLS骨干网拓扑,实现所述各成员间的通信。
[0015] 在又一种可能的实现方式中,本端PE设备为VPN业务的业务主动方;则所述将本端选择的MPLS骨干网拓扑的拓扑标识发送至对端的PE设备,并接收所述对端的PE设备发送的对端选择的MPLS骨干网拓扑的拓扑标识,包括:在执行所述将本端选择的MPLS骨干网拓扑的拓扑标识发送至对端的PE设备之后,接收所述对端的PE设备发送的对端选择的MPLS骨干网拓扑的拓扑标识,所述对端选择的MPLS骨干网拓扑的拓扑标识与所述本端选择的MPLS骨干网拓扑的拓扑标识相同。
[0016] 在又一种可能的实现方式中,本端PE设备为VPN业务的业务被动方,则所述将本端选择的MPLS骨干网拓扑的拓扑标识发送至对端的PE设备,并接收所述对端的PE设备发送的对端选择的MPLS骨干网拓扑的拓扑标识,包括:接收所述对端的PE设备发送的对端选择的MPLS骨干网拓扑的拓扑标识;若本端支持所述对端PE设备发送的对端选择的MPLS骨干网拓扑的拓扑标识对应的MPLS骨干网拓扑,则将本端选择的MPLS骨干网拓扑的拓扑标识发送至对端的PE设备,本端选择的所述拓扑标识与对端选择的拓扑标识相同。
[0017] 在又一种可能的实现方式中,将本端选择的MPLS骨干网拓扑的拓扑标识发送至对端的PE设备,包括:将本端选择的MPLS骨干网拓扑的拓扑标识封装在BGP NLRI中发送至对端的PE设备。
[0018] 在又一种可能的实现方式中,在将本端选择的MPLS骨干网拓扑的拓扑标识封装在BGP NLRI中发送至对端的PE设备,之前还包括:接收对端的PE设备发送的BGP Open消息,所述BGP Open消息中携带用于表示所述对端的PE设备支持VPN拓扑选择能力的标识;所述将本端选择的MPLS骨干网拓扑的拓扑标识封装在BGP NLRI中发送至对端的PE设备,根据所述标识执行。
[0019] 在又一种可能的实现方式中,在所述将本端选择的MPLS骨干网拓扑的拓扑标识封装在BGP NLRI中发送至对端的PE设备,之前还包括:将本端的IP地址、与本端连接的各VPN成员的VPN标识、以及路由目标RT封装在BGP NLRI中,发送至对端的PE设备;并接收对端的PE设备通过BGP NLRI封装发送的对端PE设备的IP地址、与对端的PE设备连接的各VPN成员的VPN标识以及RT;根据接收的对端的PE设备发送的RT,获得与RT匹配的本端的VPN成员的VPN标识,获得的本端的VPN成员与对端的VPN成员属于同一VPN;将本端的VPN拓扑信息发送至对端的PE设备,包括:将本端选择的MPLS骨干网拓扑的拓扑标识、选择MPLS骨干网拓扑的本端VPN成员的VPN标识、本端的IP地址、与本端VPN成员属于同一VPN的对端VPN成员的VPN标识、对端PE设备的IP地址,同时封装在BGP NLRI中,发送至对端的PE设备。
[0020] 在又一种可能的实现方式中,将本端所选择的MPLS骨干网拓扑的拓扑标识发送至对端的PE设备,包括:将本端选择的MPLS骨干网拓扑的拓扑标识封装在LDP Mapping消息或者BGP扩展团体属性中,发送至对端的PE设备。
[0021] 本发明的另一个方面是提供一种PE设备,应用于存在多个拓扑的多协议标签交换虚拟专用网MPLS VPN,所述MPLS VPN包括MPLS骨干网、以及通过所述MPLS骨干网连接的各VPN成员,用于分别连接各VPN成员的至少两个所述PE设备位于所述MPLS骨干网中;每个所述PE设备包括:
[0022] 信息交换单元,用于将本端的VPN拓扑信息发送至对端的PE设备,并接收所述对端的PE设备发送的对端的VPN拓扑信息;
[0023] 拓扑确定单元,用于根据所述本端的VPN拓扑信息和对端的VPN拓扑信息,使得本端和对端选择共同支持的拓扑;
[0024] VPN处理单元,用于通过所述共同支持的拓扑连接所述各VPN成员,实现所述MPLSVPN。
[0025] 在一种可能的实现方式中,所述多个拓扑存在于所述MPLS VPN的VPN成员中;所述信息交换单元,具体用于将与本端连接的所有VPN成员支持的拓扑信息作为所述本端的VPN拓扑信息,发送至对端的PE设备;并接收对端的PE设备发送的与对端PE设备连接的所有VPN成员支持的拓扑信息;所述VPN处理单元,具体用于向所述对端PE设备发送VPN路由信息、以及所述共同支持的VPN拓扑信息。
[0026] 在另一种可能的实现方式中,所述信息交换单元,还用于将所述本端的VPN拓扑信息所属的VPN成员的VPN标识、所述VPN成员所在的本端PE设备的IP地址以及路由目标RT发送至对端的PE设备;并接收对端的PE设备发送的VPN拓扑信息所属的VPN成员的VPN标识、对端PE设备的IP地址以及RT;所述拓扑确定单元,具体用于根据接收的所述对端的PE设备发送的RT,获得与所述RT匹配的本端的VPN拓扑信息,获得的所述本端的VPN拓扑信息所属的VPN成员与所述对端的VPN成员相同;以及,获得的根据所述本端的VPN拓扑信息和对端的VPN拓扑信息,得到本端和对端的相同的所述VPN成员共同支持的VPN拓扑信息对应的拓扑作为所述相同的拓扑;所述VPN处理单元,还用于向所述对端PE设备发送本端PE设备的IP地址。
[0027] 在又一种可能的实现方式中,所述信息交换单元,具体用于将本端的VPN拓扑信息封装在BGP NLRI中发送至对端的PE设备;所述VPN处理单元,具体用于将所述共同支持的VPN拓扑信息封装在BGP扩展团体属性中发送至所述对端PE设备。
[0028] 在又一种可能的实现方式中,所述信息交换单元,还用于在所述将本端的VPN拓扑信息发送至对端的PE设备之前,接收对端的PE设备发送的BGP Open消息,所述BGP Open消息中携带用于表示所述对端的PE设备支持VPN拓扑发现能力的标识。
[0029] 在又一种可能的实现方式中,所述多个拓扑存在于所述MPLS VPN的MPLS骨干网中;所述信息交换单元,具体用于将本端选择的MPLS骨干网拓扑的拓扑标识发送至对端的PE设备,并接收所述对端的PE设备发送的对端选择的MPLS骨干网拓扑的拓扑标识;所述拓扑确定单元,具体用于根据本端选择的MPLS骨干网拓扑的拓扑标识和对端选择的MPLS骨干网拓扑的拓扑标识,使得本端和对端选择的拓扑标识相同;所述VPN处理单元,具体用于通过所述本端和对端选择的相同的拓扑标识对应的MPLS骨干网拓扑,实现所述各成员间的通信。
[0030] 在又一种可能的实现方式中,所述PE设备为VPN业务的业务主动方;则所述信息交换单元,具体用于在执行所述将本端选择的MPLS骨干网拓扑的拓扑标识发送至对端的PE设备之后,接收所述对端的PE设备发送的对端选择的MPLS骨干网拓扑的拓扑标识。
[0031] 在又一种可能的实现方式中,所述PE设备为VPN业务的业务被动方;则所述信息交换单元,具体用于接收所述对端的PE设备发送的对端选择的MPLS骨干网拓扑的拓扑标识;若本端支持所述拓扑标识对应的MPLS骨干网拓扑,则将本端选择的MPLS骨干网拓扑的拓扑标识发送至对端的PE设备,本端选择的所述拓扑标识与对端选择的拓扑标识相同。
[0032] 在又一种可能的实现方式中,所述信息交换单元,具体用于将本端PE设备选择的MPLS骨干网拓扑的拓扑标识封装在BGP NLRI中发送至对端的PE设备。
[0033] 在又一种可能的实现方式中,所述信息交换单元,还用于在将本端PE设备选择的MPLS骨干网拓扑的拓扑标识封装在BGP NLRI中发送至对端的PE设备之前,接收对端的PE设备发送的BGP Open消息,所述BGP Open消息中携带用于表示所述对端的PE设备支持VPN拓扑选择能力的标识。
[0034] 在又一种可能的实现方式中,所述信息交换单元,还用于在所述将本端选择的MPLS骨干网拓扑的拓扑标识封装在BGP NLRI中发送至对端的PE设备之前,将本端PE设备的IP地址、与本端连接的各VPN成员的VPN标识、以及路由目标RT封装在BGP NLRI中,发送至所述对端的PE设备;并接收对端的PE设备通过BGP NLRI封装发送的对端PE设备的IP地址、与对端的PE设备连接的各VPN成员的VPN标识以及RT;以及,用于将本端选择的MPLS骨干网拓扑的拓扑标识、选择所述MPLS骨干网拓扑的本端VPN成员的VPN标识、本端的IP地址、与所述本端VPN成员属于同一VPN的对端VPN成员的VPN标识、对端PE设备的IP地址,同时封装在BGP NLRI中,发送至所述对端的PE设备;所述拓扑确定单元,还用于根据接收的所述对端的PE设备发送的RT,获得与所述RT匹配的本端的VPN成员的VPN标识,所述本端的VPN成员与对端的VPN成员属于同一VPN。
[0035] 在又一种可能的实现方式中,所述信息交换单元,具体用于将本端选择的MPLS骨干网拓扑的拓扑标识封装在LDP Mapping消息或者BGP扩展团体属性中,发送至对端的PE设备。
[0036] 采用上述技术方案,本端PE设备与对端PE设备之间执行VPN拓扑信息的交换,并根据该交换的VPN拓扑信息在本端和对端选择相同的拓扑实现VPN,实现了多拓扑环境下的VPN且提高了多拓扑VPN的服务质量。

附图说明

[0037] 图1是本发明VPN实现方法实施例的应用系统架构图;
[0038] 图2为本发明VPN实现方法一实施例的流程示意图;
[0039] 图3为本发明VPN实现方法另一实施例的系统架构示意图;
[0040] 图4为本发明VPN实现方法另一实施例的流程示意图;
[0041] 图5为本发明VPN实现方法再一实施例的流程示意图;
[0042] 图6为本发明VPN实现方法又一实施例的系统架构示意图;
[0043] 图7为本发明VPN实现方法又一实施例的流程示意图;
[0044] 图8为本发明VPN实现方法又一实施例的流程示意图;
[0045] 图9为本发明VPN实现方法又一实施例的流程示意图;
[0046] 图10为本发明PE设备实施例的结构示意图;
[0047] 图11为本发明PE设备实施例的实体构造图。

具体实施方式

[0048] 图1是本发明VPN实现方法实施例的应用系统架构图,如图1所示,该系统是MPLS VPN的网络架构,该MPLS VPN中包括MPLS骨干网11、多个VPN成员12。处在不同位置的各VPN成员12通过MPLS骨干网11连通,并且,多个VPN成员12可以是属于同一VPN;例如,图1中所示例的两个VPN成员12通过MPLS骨干网11连接且均属于VPNA。在MPLS骨干网11的边缘设置有至少两个PE设备,该PE设备是用于连接VPN成员的;例如,图1中所示的MPLS骨干网一端的VPN成员12是通过CE连接到PE设备,再通过PE设备在MPLS骨干网的连接而与MPLS骨干网另一端的VPN成员12连接起来。需要说明的是,MPLS VPN中的VPN成员和PE设备等的数量并不局限于两个,图1仅是以两个为例。
[0049] 下面将在图1所示网络架构的基础上,详细描述本发明实施例的VPN实现方法以及PE设备的具体结构;其中,在本发明实施例中,图1所示的MPLS VPN存在多个拓扑,该多个拓扑例如可以是位于VPN成员12中,或者是位于MPLS骨干网11中,本发明实施例将描述在该多拓扑的环境下VPN的实现方式。
[0050] 其中,在如下的各实施例中,涉及到了“本端”和“对端”的概念,这是对通过MPLS骨干网连接的两个VPN成员侧的互称;比如,第一VPN成员和第二VPN成员通过MPLS骨干网连接,则从第一VPN成员的角度说,第一VPN成员所在的一端即为本端,第二VPN成员所在的一端即为对端;同理,从第二VPN成员的角度说,第二VPN成员所在的一端即为本端,第一VPN成员所在的一端即为对端。
[0051] 实施例一
[0052] 图2为本发明VPN实现方法一实施例的流程示意图,本实施例的VPN实现方法可以由MPLS骨干网中的某一PE设备执行,如图2所示,该方法包括:
[0053] 201、将本端的VPN拓扑信息发送至对端的PE设备,并接收所述对端的PE设备发送的对端的VPN拓扑信息;
[0054] 本实施例中,本端的PE设备与对端的PE设备交换VPN拓扑信息,即本端的PE设备将本端VPN拓扑信息发送至对端,对端也将其VPN拓扑信息发送至本端。
[0055] 例如,当MPLS VPN中的多个拓扑存在于VPN成员中时,例如,可以从VPN成员的网络结构中划分出不同的路径,该不同路径对应于不同的拓扑,分别用于承载不同的业务流,比如其中包括分别用于承载语音、视频流的两个逻辑拓扑;此时,所述的VPN拓扑信息例如是两个逻辑拓扑的拓扑标识(例如是拓扑ID)。
[0056] 再例如,当MPLS VPN中的多个拓扑存在于MPLS骨干网中时,例如,MPLS骨干网中包括两个拓扑;此时,所述的VPN拓扑信息指的是例如是两个拓扑的拓扑标识(例如是拓扑ID)。
[0057] 其中,当MPLS VPN中的多个拓扑存在于VPN成员中时,VPN拓扑信息是由PE设备收集的,例如,可以是由CE将其连接的VPN成员中存在的拓扑信息发送至PE设备。
[0058] 或者,当MPLS VPN中的多个拓扑存在于MPLS骨干网中时,可以由PE设备根据连接在其上的VPN成员的相关信息(例如是VPN成员的业务需求),为VPN成员从MPLS骨干网的多个拓扑中选择一个拓扑。
[0059] 202、根据所述本端的VPN拓扑信息和对端的VPN拓扑信息,使得本端和对端选择共同支持的拓扑;
[0060] 本实施例中,通过本端与对端的PE设备执行VPN拓扑信息的交换,使得本端和对端可以根据交换的所述VPN拓扑信息从多个拓扑中选择相同的拓扑,该相同的拓扑指的是拓扑ID相同的拓扑,比如两端的VPN拓扑信息都包括拓扑1,那么选择的相同的拓扑包括拓扑1。
[0061] 例如,当MPLS VPN中的多个拓扑存在于VPN成员中时,本端PE设备可以根据本端的VPN成员中的拓扑信息(例如存在拓扑1、拓扑2、拓扑3)、以及接收到的对端的VPN成员中的拓扑信息(例如存在拓扑1、拓扑4),从而使得本端和对端选择共同支持的拓扑(例如是拓扑1),本端和对端选择相同的拓扑,即共同支持的拓扑(拓扑1),所选择的是一个相同的拓扑,如果共同支持的拓扑有多个,也可以从中选择一个即可组成一个VPN。
[0062] 再例如,当MPLS VPN中的多个拓扑存在于MPLS骨干网中时,即从MPLS骨干网中的网络中规划出不同的流量传输路径,该不同的路径即对应着不同的拓扑,MPLS骨干网中可以存在多种路径,因此存在多个拓扑,比如,MPLS骨干网中的本端PE设备发送业务流到达对端PE设备,可以是经过路径1传输,也可以是经过路径2传输;这种情况下,本端PE设备可以根据本端选择的MPLS骨干网拓扑信息(例如拓扑1),以及对端PE设备选择的MPLS骨干网拓扑信息(例如拓扑1),使得本端和对端从所述多个拓扑中选择相同的拓扑;如上所述的,MPLS骨干网中存在多个拓扑,业务流在MPLS骨干网传输时,可以是经过拓扑1传输,也可以经过拓扑2传输等,具体通过哪个拓扑传输是由PE设备决定的,即由PE设备负责从MPLS骨干网的多个拓扑中选择一个,例如可以是根据业务流的传输需求等确定,不同的拓扑对应的传输路径可能具有不同的传输质量。其中,本端PE设备和对端PE设备,分别是业务主动方和业务被动方,先进行拓扑选择的即为业务主动方,后进行拓扑选择的即为业务被动方,可以是预先配置PE设备为业务主动方或业务被动方即可;业务主动方首先从MPLS骨干网的多个拓扑中选择一个拓扑并通知业务被动方,业务被动方则执行与业务主动方相同的选择即可。
[0063] 203、通过所述共同支持的拓扑连接各VPN成员,实现所述MPLSVPN。
[0064] 本实施例中,在本端和对端从多个拓扑中选择了相同的拓扑后,将基于该相同的拓扑实现VPN。
[0065] 例如,当MPLS VPN中的多个拓扑存在于VPN成员中时,通过MPLS骨干网连接的本端的VPN成员和对端的VPN成员就可以通过其共同支持的拓扑1实现VPN;或者,当MPLS VPN中的多个拓扑存在于MPLS骨干网中时,本端的VPN成员和对端的VPN成员就可以均通过MPLS骨干网中的拓扑1进行通信。
[0066] 本实施例的VPN实现方法,在多拓扑环境时的MPLS VPN,通过本端PE设备与对端PE设备之间执行VPN拓扑信息的交换,并根据该交换的VPN拓扑信息在本端和对端选择相同的拓扑实现多拓扑环境下的VPN,保证了多拓扑VPN的服务质量,例如,在MPLS骨干网多拓扑时,本端和对端选择相同的MPLS骨干网拓扑,能够保证两端通信时的服务质量一致。
[0067] 实施例二
[0068] 图3为本发明VPN实现方法另一实施例的系统架构示意图,图4为本发明VPN实现方法另一实施例的流程示意图。本实施例中,多个拓扑是存在于MPLS VPN的VPN成员中。
[0069] 如图3所示,PE1连接VPNA和VPNB,需要说明的是,该VPNA和VPNB是在PE1侧的VPN成员;PE2连接VPNA和VPNB,该PE2连接的VPNA和VPNB是在PE2侧的VPN成员;连接PE1的VPNA与连接PE2的VPNA通过MPLS骨干网连通,且均属于同一个VPN即VPNA,这里所述的VPNA是一个VPN,即如上所述的,PE1和PE2分别连接的例如所述VPNA指的是VPN成员,而连接在PE1和PE2的各VPN组合起来的VPNA指的是一个VPN。连接PE1的VPNB与连接PE2的VPNB通过MPLS骨干网连通,且均属于同一个VPN即VPNB。每一个VPN成员连接在一个CE设备上,例如,PE1侧的VPNA连接CE1。其中,连接PE1的VPNA中存在三个拓扑,即拓扑1(VPN Topo 1)、拓扑2(VPN Topo 2)和拓扑3(VPN Topo 3),连接在PE2侧的VPNA中存在三个拓扑即拓扑1、拓扑3和拓扑5(VPN Topo 5)。各VPNB成员的拓扑存在同理参见图3所示。
[0070] 在图3所示的系统架构下,本实施例的VPN实现方法参见图4,其中,在以下的说明中,将PE1所在侧称为本端,将PE2所在侧称为对端;包括:
[0071] 401、PE1和PE2在BGP会话建立阶段,通过BGP Open(边界网关协议打开)消息确认双方都支持VPN拓扑发现能力;
[0072] 其中,PE1和PE2在MPLS骨干网中建立连接后,将执行PE1和PE2之间的BGP会话建立过程;在该边界网关协议(Border Gateway Protocol,简称:BGP)会话建立阶段,PE1和PE2将通过发送BGP Open消息进行会话建立的相关参数的确认。
[0073] 本实施例中,定义了用于表示PE设备支持VPN拓扑发现能力的标识,例如,采用标识“240”代表VPN拓扑发现能力;并将该标识携带在BGP Open消息中的能力协商参数对应的字段中(BGP Open消息中本来就有该字段,本实施例只是定义了一种新的标识来代表这种新的能力,即VPN拓扑发现能力,并将该标识设置在该字段中)。假如PE1支持VPN拓扑发现能力,则其在向对端的PE2发送的BGP Open消息中携带该标识“240”;而PE2在接收到该Open消息时,根据其中携带的标识“240”就可以确认PE1是支持VPN拓扑发现能力的。同理,PE1也可以根据PE2发送的BGP Open消息中携带的标识,确认PE2支持VPN拓扑发现能力。
[0074] 所述的VPN拓扑发现能力指的是,PE设备能够获取与其连接的各VPN成员的拓扑信息的能力。当PE1和PE2均确认双方都支持VPN拓扑发现能力时,则继续执行402;否则,若其中一方不支持VPN拓扑发现能力,则该多拓扑环境下的VPN仍然不能实现,流程至此结束。
[0075] 402、PE1收集本端即PE1能够支持的VPN拓扑信息发送至PE2,PE2收集其本端即PE2能够支持的VPN拓扑信息发送至PE1;
[0076] 其中,PE1和PE2分别收集本端的VPN拓扑信息,采用的方式可以是,由CE将连接的VPN成员支持的拓扑信息上报至PE。例如,参见图3所示,CE1可以将其连接的VPNA所支持的拓扑信息(支持拓扑1、拓扑2、拓扑3)发送至PE1;同理,CE3可以将其连接的VPNA所支持的拓扑信息(支持拓扑1、拓扑3、拓扑5)发送至PE2。
[0077] 本实施例中,PE1和PE2收集的本端VPN拓扑信息,指的是本端连接的所有VPN成员支持的拓扑信息。例如,PE1连接的VPN成员包括连接在CE1的VPNA、以及连接在CE2的VPNB,VPNA支持的拓扑信息是拓扑1、拓扑2和拓扑3,VPNB支持的拓扑信息是拓扑2、拓扑4和拓扑6,则PE1得到的本端拓扑信息即为拓扑1、拓扑2、拓扑3、拓扑4和拓扑6,包括了所有VPN成员支持的拓扑信息。同理,PE2得到的本端VPN拓扑信息是拓扑1、拓扑3和拓扑5。
[0078] PE1和PE2将各自端的VPN拓扑信息,封装在BGP的网络层可达性信息(Network Layer Reachability Information,简称:NLRI)中发送至对端。本实施例定义了PE设备向对端通告VPN拓扑信息的报文帧格式,参见如下的表1,该表1可以称为VPN拓扑发现路由中的帧:
[0079] 表1 封装VPN拓扑信息的BGP NLRI报文帧
[0080]Origin AS(4octets)
VPN MT ID 1(2octets)
VPN MT ID 2(2octets)
……
VPN MT ID N(2octets)
[0081] 如表1所示,MT(Multiple Topology)表示多拓扑;ID是拓扑标识,例如,上面所述的拓扑1、拓扑2等,其中的“1”、“2”就相当于拓扑ID,用该ID代表了对应的拓扑,具体实施中也可以采用其他标识;例如,VPN MT ID 1就表示多拓扑中的拓扑1;并且,本实施例中的每个拓扑信息(如VPN MT ID 1)设计为占用2个字节(2octets)。从表1还可以看到,PE设备可以通过表1所示的BGP NLRI报文帧将其对应的所有VPN拓扑信息同时发送至对端,如“VPN MT ID 1、VPN MT ID 2……VPN MT ID N”。
[0082] 可选的,参见表1,本实施例在表1中还可以加入本端的PE设备自身所在的自治域(Autonomous System,简称:AS)信息,即表1中所示的“Origin AS”,该信息可以占用4个字节(4octets)。通过加入PE设备所在的AS信息,可以使得对端识别域内或跨域的场景,从而据此进行不同的路由信息处理;例如,对端的PE设备能够根据接收到的表1所示报文帧中的AS,判断得到该VPN是域内还是跨域,即,MPLS骨干网连接的本端VPN成员和对端VPN成员是属于同一个AS(即域内),还是分别属于不同的AS(即跨域);PE设备在识别出该场景后,将会根据不同的场景进行路由信息的处理,例如当是跨域的场景时,PE设备将会对接收到的路由信息进行跨域场景下的转换,具体的路由信息处理采用常用技术,不再描述。
[0083] 403、PE1和PE2分别根据本端和对端支持的VPN拓扑信息,得到本端和对端共同支持的VPN拓扑信息对应的拓扑作为相同的拓扑;
[0084] 其中,如上所述的,PE1支持的VPN拓扑信息包括拓扑1、拓扑2、拓扑3、拓扑4和拓扑6,PE2支持的VPN拓扑信息包括拓扑1、拓扑3和拓扑5。PE1和PE2各自根据两端支持的VPN拓扑信息,就可以得到双方共同支持的VPN拓扑信息是拓扑1和拓扑3,该拓扑1和拓扑3则为双方选择的相同的拓扑,即,连接PE1的VPN成员与连接PE2的VPN成员可以通过拓扑1和拓扑3连通。
[0085] 例如,参见图3所示,连接CE1的VPNA和连接CE3的VPNA可以均选择自身的拓扑1进行连通,或者均选择自身的拓扑3进行连通。而对于VPNB,由于连接CE2的VPNB中不存在两端共同支持的拓扑1或拓扑3,则实际该VPNB与连接在CE4的VPNB是不存在共同支持的拓扑的,所以,MPLS骨干网两端的两个VPNB成员即CE2的VPNB和CE4的VPNB,不能够通过MPLS骨干网连通在同一个VPN中。
[0086] 404、PE1和PE2分别向对端发送两端共同支持的VPN拓扑信息、以及与所述VPN拓扑信息对应的VPN路由信息;
[0087] 其中,为了保证VPN的连通性,PE设备之间需要交换路由信息;本实施例中,在确定了本端和对端共同支持的VPN拓扑信息之后,PE设备会将两端共同支持的VPN拓扑信息发送至对端PE设备,例如可以在向对端PE设备发送VPN路由信息时携带该共同支持的VPN拓扑信息。
[0088] 举例如下,PE1连接的VPNA与PE2连接的VPNA通过MPLSMPLS骨干网连通,并且两端VPNA共同支持的拓扑是拓扑1和拓扑3,则PE1在向PE2发送本端的VPN路由信息时,将携带上该路由信息所属的拓扑的标识。例如,本实施例PE1在通过VPNv4(Virtual Private Network Version 4,第4版虚拟专用网)报文发送拓扑1对应的路由信息时,携带上该拓扑1的标识,以使得对端的PE2据此知道所述的路由信息是属于拓扑1的。同理,PE2在向PE1通告路由信息时,也会携带上路由信息对应的拓扑标识。
[0089] 本实施例定义了一种新的BGP扩展团体属性,在该BGP扩展团体属性中封装VPN路由信息对应的拓扑标识,该BGP扩展团体属性和VPNv4报文的路由信息一起发送(该BGP扩展团体属性和路由信息都是携带在VPNv4报文中的),可以使得对端知道路由信息与拓扑的对应关系。参见如下的表2,为一种BGP扩展团体属性的示例:
[0090] 表2封装VPN拓扑信息的BGP扩展团体属性
[0091]
[0092] 上述的表1中,0x03代表该封装表表示的是扩展团体属性,TBD代表未定义,Reserved代表保留位,VPN MT ID即为路由信息所属的拓扑标识。
[0093] 通过上述的步骤,CE1将VPNA的路由信息及对应的拓扑发送至PE1,PE1再通过MPLS骨干网发送至PE2,PE2接着将其转发给CE3,同理,CE3也通过相反的路径将CE3侧的VPNA的路由信息及对应的拓扑通告至CE1;上述路由信息的交换使得连接MPLS骨干网两端的两个VPNA成员的各个转发设备,例如PE设备和CE设备,都能获知VPNA中的拓扑信息,并在后续的报文转发的过程中根据该拓扑信息执行报文转发,从而实现VPN连通。
[0094] 此外,若不同的VPN中具有相同的拓扑,则VPN的区分可以通过发送路由信息时的路由目标(Route Target,简称:RT)来确定;举例如下:本端在发送拓扑1对应的路由信息时携带出RT(export RT),对端假设有两个分别属于不同VPN的VPN成员,均存在拓扑1,此时对端PE设备将根据出RT,查找与该出RT匹配的入RT(import RT),所述的对端两个VPN具有的入RT是不同的,只有一个是与所述本端的出RT匹配的,相匹配的出RT和入RT对应的两个VPN成员才属于同一个VPN;据此对端PE设备就可以将路由信息发送到同属于一个VPN的VPN成员。
[0095] 实施例三
[0096] 图5为本发明VPN实现方法再一实施例的流程示意图,本实施例仍然是针对多个拓扑存在于VPN成员中的场景,与实施例二不同的是,为了使得接收端能够明确识别出VPN拓扑信息对应的VPN,本实施例中的PE设备在向对端发送VPN拓扑信息时,携带了该VPN拓扑信息所对应的VPN的标识。
[0097] 如下的方法描述中,与实施例二相同的处理将简单说明,重点介绍与实施例二的不同之处。如图5所示,该方法可以包括:
[0098] 501、PE1和PE2在BGP会话建立阶段,通过BGP Open消息确认双方都支持VPN拓扑发现能力;
[0099] 502、PE1收集PE1侧的每个VPN支持的VPN拓扑信息发送至PE2,PE2收集PE2侧的每个VPN支持的VPN拓扑信息发送至PE1;
[0100] 本实施例中,收集VPN拓扑信息的粒度是连接在PE设备上的每个VPN;例如,在实施例二中,PE1是收集连接的所有VPN成员的拓扑信息,得到PE1支持拓扑1、拓扑2、拓扑3、拓扑4和拓扑6,但是并不区分各个拓扑是属于哪个VPN成员的;而本实施例中,PE1在收集VPN拓扑信息时,将区分出各拓扑所属的VPN成员,例如,拓扑1属于VPNA、拓扑4属于VPNB。
[0101] 相应的,PE设备在将各自端的VPN拓扑信息,封装在BGP NLRI中向对端发送时,将携带上该VPN拓扑信息对应的VPN的标识。参见如下的表3,表3是PE设备向对端通告VPN拓扑信息的报文帧格式,该表3也可以称为VPN拓扑发现路由中的帧;
[0102] 表3 封装VPN拓扑信息的BGP NLRI报文帧
[0103] MY VPN RD(8octets)MY PE Address(Variable)
VPN MT ID 1(2octets)
VPN MT ID 2(2octets)
……
VPN MT ID N(2octets)
[0104] 如表3所示,其中包括了VPN拓扑信息所属的VPN成员的VPN标识,例如,该拓扑信息对应的VPN实例(VPN实例即VPN路由转发表,由PE为直接相连的VPN成员建立并维护,包含该VPN成员相关的路由信息)的路由标识符(Route Distinguisher,简称:RD),以及该VPN实例所在的本端PE设备的互联网协议(Internet Protocol,简称:IP)地址,本实施例是采用所述的VPN实例的RD及其所在的PE的IP地址的组合表示唯一对应的VPN成员;表3还包括该VPN成员所支持的拓扑信息,以及路由目标(Route Target,简称:RT),此时携带的RT是出RT(export RT)。
[0105] 同理,PE2也将PE2每个VPN支持的VPN拓扑信息,采用与表3相同的格式发送至PE1。其中,表3中的“VPN MT ID 1、VPN MT ID 2……VPN MT ID N”是与“VPN RD和PE Address即PE的IP地址”组合对应的VPN成员所支持的拓扑信息,例如,与CE1连接的VPNA支持拓扑1、拓扑2和拓扑3,则PE1发送的采用表3格式封装的信息是VPNA的RD、PE1的IP地址以及该VPNA支持的拓扑信息(拓扑1、拓扑2和拓扑3),而不再是PE连接的所有VPN成员支持的所有拓扑信息。
[0106] 503、PE1和PE2分别根据本端和对端支持的VPN拓扑信息,得到本端和对端的相同的VPN成员共同支持的VPN拓扑信息对应的拓扑,作为相同的拓扑;
[0107] 其中,PE1和PE2将首先根据502中发送的RT,获得与所述RT匹配的本端的VPN拓扑信息。例如,PE1接收到PE2发送的表3格式的VPN拓扑发现路由,以及该路由对应的RT,该RT为export RT;PE1将查找自身存储的VPN拓扑发现路由,如果该路由的RT(本端路由表的对应RT是import RT)与export RT匹配,则表明这两个VPN拓扑发现路由表属于同一个VPN成员。例如,通过上述方式可以找到连接在PE1的VPNA的拓扑发现路由、以及对应的连接在PE2的VPNA的拓扑发现路由。
[0108] PE1和PE2在确定出属于同一个VPN成员(这里的同一个VPN成员指的是例如两端都是VPNA,其中PE1的VPNA的出RT等于PE2的VPNA的入RT,PE1的VPNA的入RT等于PE2的VPNA的出RT)的VPN拓扑发现路由后,将针对该VPN成员寻找本端和对端所共同支持的VPN拓扑信息。例如,连接在PE1的VPNA支持拓扑1、拓扑2和拓扑3,连接在PE2的VPNA支持拓扑1、拓扑3和拓扑5,则PE1和PE2的VPNA共同支持的是拓扑1和拓扑3。至此,交互信息的VPN成员双方都获得了重要的五元组信息:本地PE地址、本地VPN RD、远端PE地址、远端VPN RD、共同支持的拓扑信息。
[0109] 504、PE1和PE2分别向对端发送VPN路由信息,并携带两端共同支持的VPN拓扑信息、以及本端PE设备的IP地址;
[0110] 本实施例中,为了使得接收端能够明确识别出VPN拓扑信息对应的VPN,PE设备将在向对端PE设备发送VPN路由信息时,在携带该路由信息所属的拓扑标识之外,还将携带本端PE设备的IP地址。参见如下的表4,表4为一种BGP扩展团体属性的示例:
[0111] 表4 封装VPN拓扑信息的BGP扩展团体属性
[0112]
[0113] 例如,PE1在向PE2发送VPNv4报文通告VPN路由信息时,就可以携带表4格式封装的VPN MT ID,该VPN MT ID是路由信息所属的拓扑标识,以及PE1的IP地址(即PE Address)。此外,在发送该VPN路由信息时还携带了VPN RD(该RD未和VPN MT ID、PE Address设在同一个BGP扩展团体属性中,是VPNv4路由信息的一部分);对端的PE2在获得该路由信息对应的拓扑标识的同时,还可以根据PE1的IP地址、以及所述的VPN RD,得到该拓扑所在的VPN成员;并且,根据上述三个信息、再加上本地PE地址、本地VPN RD,与504所述获得的五元组信息匹配,PE2就可以精确得知应该将接收的路由信息发往本地的哪个VPN。
[0114] 通过携带拓扑标识对应的VPN成员信息,使得接收端识别出VPN拓扑信息对应的VPN,能够使得接收端更快速的将VPN路由信息通告至对应的VPN,提高VPN路由信息交互的效率。
[0115] 实施例四
[0116] 图6为本发明VPN实现方法又一实施例的系统架构示意图,图7为本发明VPN实现方法又一实施例的流程示意图。本实施例中,多个拓扑是存在于MPLS VPN的MPLS骨干网中。
[0117] 如图6所示,PE1连接VPNA和VPNB,该VPNA和VPNB是在PE1侧的VPN成员;PE2连接VPNA和VPNB,该VPNA和VPNB是在PE2侧的VPN成员;连接在PE1的VPNA与连接在PE2的VPNA通过MPLS骨干网连通,且均属于同一个VPN即VPNA;连接在PE1的VPNB与连接在PE2的VPNB通过MPLS骨干网连通,且均属于同一个VPN即VPNB。每一个VPN成员均通过CE与PE设备连接,图6中未显示出CE。本实施例中,MPLS骨干网中存在多个拓扑,例如,存在拓扑A(即图6中的Topo A所指示的虚线代表的路径)和拓扑B(即图6中的Topo B所指示的虚线代表的路径)。
[0118] 在图6所示的系统架构下,本实施例的VPN实现方法参见图7,将描述MPLS骨干网两端的同属于同一VPN的各VPN成员之间是如何在MPLS骨干网的多个拓扑中选择相同的拓扑的。其中,在MPLS骨干网中存在多拓扑的场景下,两端的PE设备需要预先配置为业务主动方或者业务被动方,本实施例假设PE1是业务主动方,PE2是业务被动方。
[0119] 如图7所示,本实施例的VPN实现方法包括:
[0120] 701、PE1和PE2在BGP会话建立阶段,通过BGP Open消息确认双方都支持VPN拓扑选择能力;
[0121] 本实施例中,在BGP Open消息中定义了用于表示PE设备支持VPN拓扑选择能力的标识,例如,采用标识“120”代表VPN拓扑选择能力,假如PE1支持VPN拓扑选择能力,则其将在向对端的PE2发送的Open消息中携带该标识“120”;而PE2在接收到该BGP Open消息时,根据其中携带的标识“120”就可以确认PE1是支持VPN拓扑选择能力的。同理,PE1也可以根据PE2发送的BGP Open消息中携带的标识“120”,确认PE2支持VPN拓扑选择能力。
[0122] 所述的VPN拓扑选择能力指的是,PE设备能够从MPLS骨干网的多个拓扑中进行拓扑选择的能力,具体可以是PE设备根据VPN业务的业务需求进行选择。当PE1和PE2均确认双方都支持VPN拓扑选择能力时,则继续执行702;否则,若其中一方不支持VPN拓扑选择能力,尽管MPLS骨干网两端的各VPN成员可以通过MPLS骨干网连通在同一VPN,但是将不能保证两端的VPN成员选择同一拓扑,即不能保证该VPN的服务质量。
[0123] 702、PE1和PE2相互交换各自连接的VPN成员信息,并确定两端的VPN成员属于同一个VPN;
[0124] 其中,由于本实施例是对于同一个VPN中来说,使得MPLS骨干网两端的同属于该VPN的VPN成员选择MPLS骨干网的相同拓扑,所以首先是需要确定后续的拓扑选择信息的交换(即业务主动方和被动方所选择的拓扑信息的交互)是建立在同一VPN的VPN成员之间的。
[0125] 本实施例中,在PE设备之间通告VPN成员信息可以是通过BGP中的Update(更新)消息,该BGP Update消息中的BGP NLRI的帧格式参见如下的表5所示:
[0126] 表5 通告VPN成员信息的帧格式
[0127]
[0128]
[0129] 如表5所示,通告的VPN成员信息包括本端PE设备的IP地址(MY PE Address)、与本端连接的VPN成员的VPN标识(MY VPN RD)。此外,还携带本端的入RT(该RT可以是通过另外的BGP NLRI承载)。
[0130] 例如,PE1接收对端的PE2发送的通过表5所示的BGP NLRI封装的VPNA的信息,例如VPNA的RD、PE2的IP地址以及RT,PE1将首先根据所述的RT,查找自身存储的与该RT相匹配的本端的VPN成员信息,该VPN成员信息中的VPN标识对应的VPN成员与对端PE2连接的VPN成员属于同一VPN,例如,PE1连接的VPNA成员与PE2连接的VPNA成员是通过MPLS骨干网连接在同一个VPN中(即VPNA)。
[0131] 703、业务主动方PE1将本端即PE1选择的MPLS骨干网拓扑信息发送至业务被动方PE2;
[0132] 其中,作为业务主动方,PE1将首先向对端的业务被动方PE2通告本端所选择的MPLS骨干网隧道属于哪一个拓扑,PE1可以是根据VPN业务需求来选择,MPLS骨干网中的多个拓扑通常是具有不同的Qos,PE1可以根据业务需求选择具有对应Qos的拓扑。
[0133] 参见表6,表6是通告VPN选择拓扑的帧格式;其中,发送该VPN选择的拓扑信息可以称为VPN选拓扑路由消息,所述的VPN选择拓扑是PE根据VPN信息为该VPN选择的拓扑;
[0134] 表6 通告VPN选择拓扑的帧格式
[0135] MY VPN RD(8octets)MY PE Address(Variable)
YOUR VPN RD(8octets)
YOUR PE Address(Variable)
Selected MT ID(2octets)
[0136] 具体的,PE1将本端VPN成员的VPN标识(MY VPN RD)、本端的IP地址(MY PE Address)、与本端VPN成员属于同一VPN的对端VPN成员的VPN标识(YOUR VPN RD,该信息是通过702中的VPN成员信息交换得到)、对端PE设备的IP地址(YOUR PE Address,即PE2的IP地址)、本端选择的MPLS骨干网拓扑的拓扑标识(Selected MT ID,例如选择MPLS骨干网中的拓扑A),按照表6所示的格式同时封装在BGP NLRI中,发送至PE2。
[0137] 704、PE2接收到PE1发送的PE1选择的MPLS骨干网拓扑信息后,向PE1发送对端即PE2的MPLS骨干网拓扑信息,PE2的拓扑选择与PE1的拓扑选择相同;
[0138] 本实施例中,所述的PE1选择的MPLS骨干网拓扑信息即PE1选择的MPLS骨干网拓扑标识。PE2在接收到PE1选择的MPLS骨干网拓扑标识后,将进行合法性验证,该验证指的是PE2将查看自身侧是否支持该拓扑标识对应的拓扑;如果可以支持,则PE2将向PE1发送PE2所选择的MPLS骨干网拓扑信息(即MPLS骨干网拓扑标识),并且,PE2选择的MPLS骨干网拓扑与PE1选择的MPLS骨干网拓扑相同。
[0139] 从本实施例可以看到,对于从MPLS骨干网的多个拓扑中选择相同拓扑的场景,是由业务主动方的PE设备先进行选择,并将该业务主动方的选择通知业务被动方;而业务被动方的PE设备将选择与业务主动方相同的拓扑即可,从而实现两端的选择相同。
[0140] 705、PE1和PE2通过本端和对端选择的相同的拓扑标识对应的骨干网拓扑,实现VPN的各成员间的通信。
[0141] 其中,PE1和PE2在将MPLS骨干网两端的VPN成员连接通信时,两个方向的通信都通过确定的相同的MPLS骨干网拓扑进行。例如,PE1将PE1的VPN成员的报文向PE2发送时,通过选定的MPLS骨干网拓扑发送;PE2将PE2的VPN成员的报文向PE1发送时,也是通过选定的相同的MPLS骨干网拓扑发送;两个方向由于选择的MPLS骨干网拓扑相同,所以具有相同的Qos,提高了VPN的服务质量。
[0142] 实施例五
[0143] 图8为本发明VPN实现方法又一实施例的流程示意图,本实施例是针对二层业务在多拓扑的MPLS骨干网中选择相同的拓扑的实现方式,以标签分发协议(Label Distribution Protocol,简称:LDP)信令扩展实现,使得MPLS骨干网的伪线(Pseudo Wire,简称:PW)两端的PE设备选择同一拓扑上的隧道。
[0144] 本实施例的VPN实现方法中,MPLS骨干网中的PE设备仍然预先配置为业务主动方和业务被动方,如图8所示,该方法可以包括:
[0145] 801、业务主动方通过LDP Mapping(标签分发协议映射)消息携带Selected MT ID TLV(选定的多拓扑标识TLV),通知业务被动方本端所选择的MPLS骨干网拓扑标识;
[0146] 其中,LDP Mapping消息中包括很多不同用途的类型/长度/值(Type/Length/Value,简称:TLV),本实施例进行LDP扩展设计了新的TLV,即所述的Selected MT ID TLV,用于携带二层业务所选用的MPLS骨干网的拓扑ID,其具体格式参见如下的表7:
[0147] 表7 Selected MT ID TLV封装格式
[0148]
[0149] 该表7中携带了二层业务所选用的MPLS骨干网的拓扑标识即Selected MT ID。在LDP Mapping消息中,还携带有FEC TLV(等价转发类TLV)和Generic Label TLV(通用标签TLV,是与FEC对应的分配标签),本实施例是在该LDP Mapping消息中增加了表7所示的Selected MT ID TLV。
[0150] 802、业务被动方根据业务主动方选择的MPLS骨干网拓扑标识,向业务主动方发送LDP Mapping消息,该LDP Mapping消息中携带Selected MT ID TLV,对业务主动方的选择进行确认;
[0151] 其中,业务被动方也会根据业务主动方选择的MPLS骨干网拓扑标识,进行合法性验证,即看自身是否支持业务主动方所选择的MPLS骨干网拓扑。如果可以支持,则业务被动方发送LDP Mapping消息给业务主动方,携带Selected MT ID TLV;该Selected MT ID TLV的格式与表7相同,其中封装了业务主动方所选择的MPLS骨干网拓扑标识即Selected MT ID,表明对业务主动方选择的确认,即业务被动方也选择相同的MPLS骨干网拓扑。
[0152] 803、业务主动方和业务被动方经过如上的信息交换,通过MPLS骨干网的同一个拓扑建立PW。
[0153] 其中,业务主动方和业务被动方将通过建立的PW实现VPN的各成员间的通信。
[0154] 实施例六
[0155] 图9为本发明VPN实现方法又一实施例的流程示意图,本实施例也是针对二层业务在多拓扑的MPLS骨干网中选择相同的拓扑的实现方式,并且是以BGP协议扩展实现,使得MPLS骨干网的PW两端的PE设备选择同一拓扑上的隧道。
[0156] 本实施例的VPN实现方法中,MPLS骨干网中的PE设备仍然预先配置为业务主动方和业务被动方,如图9所示,该方法可以包括:
[0157] 901、业务主动方通过BGP Update消息携带BGP扩展团体属性,即Used Topo ID Extended Community(使用的拓扑标识扩展团体)属性,将本端所选择的MPLS骨干网拓扑标识通知业务被动方;其中,所述的Used Topo ID即为选择的MPLS骨干网拓扑标识;
[0158] 其中,上述的BGP扩展团体属性的具体格式参见如下的表8:
[0159] 表8 封装MPLS骨干网拓扑信息的BGP扩展团体属性
[0160]
[0161] 902、业务被动方根据业务主动方选择的MPLS骨干网拓扑标识,向业务主动方发送BGP Update消息,其中携带Used Topo ID Extended Community,对业务主动方的选择进行确认;
[0162] 其中,业务被动方也会根据业务主动方选择的MPLS骨干网拓扑标识,进行合法性验证,即看自身是否支持业务主动方所选择的MPLS骨干网拓扑。如果可以支持,则业务被动方发送BGP Update消息给业务主动方,携带Used Topo ID Extended Community;该Used Topo ID Extended Community的格式与表8所示的格式相同,其中封装了业务主动方所选择的MPLS骨干网拓扑标识即Used Topo ID,表明对业务主动方选择的确认,即业务被动方也选择相同的MPLS骨干网拓扑。
[0163] 903、业务主动方和业务被动方经过如上的信息交换,通过MPLS骨干网的同一个拓扑建立PW。
[0164] 其中,业务主动方和业务被动方将通过该PW,即两端选择的相同的拓扑,实现VPN的各成员间的通信。
[0165] 实施例七
[0166] 图10为本发明PE设备实施例的结构示意图,该PE设备可以执行本发明任意实施例的VPN实现方法,其具体的工作原理可以结合本发明任意的方法实施例所述,本实施例仅对该PE设备的结构做简单说明。
[0167] 如图10所示,该PE设备可以包括:信息交换单元91、拓扑确定单元92和VPN处理单元93;其中,
[0168] 信息交换单元91,用于将本端的VPN拓扑信息发送至对端的PE设备,并接收所述对端的PE设备发送的对端的VPN拓扑信息;
[0169] 拓扑确定单元92,用于根据所述本端的VPN拓扑信息和对端的VPN拓扑信息,使得本端和对端选择共同支持的拓扑;
[0170] VPN处理单元93,用于通过所述共同支持的拓扑连接各VPN成员,实现所述VPN。
[0171] 进一步的,当多个拓扑存在于所述MPLS VPN的VPN成员中时;
[0172] 所述信息交换单元91,具体用于将与本端连接的所有VPN成员支持的拓扑信息作为所述本端的VPN拓扑信息,发送至对端的PE设备;并接收对端的PE设备发送的与对端PE设备连接的所有VPN成员支持的拓扑信息;
[0173] 所述VPN处理单元93,具体用于向所述对端PE设备发送VPN路由信息、以及所述共同支持的VPN拓扑信息。
[0174] 进一步的,所述信息交换单元91,还用于将所述本端的VPN拓扑信息所属的VPN成员的VPN标识、所述VPN成员所在的本端的IP地址以及路由目标(RT)发送至对端的PE设备;并接收对端的PE设备发送的VPN拓扑信息所属的VPN成员的VPN标识、对端PE设备的IP地址以及RT;
[0175] 所述拓扑确定单元92,具体用于根据接收的所述对端的PE设备发送的RT,获得与所述RT匹配的本端的VPN拓扑信息,所述本端的VPN拓扑信息所属的VPN成员与所述对端的VPN成员相同;以及,根据所述本端的VPN拓扑信息和对端的VPN拓扑信息,得到本端和对端的相同的所述VPN成员共同支持的VPN拓扑信息对应的拓扑作为所述相同的拓扑;
[0176] 所述VPN处理单元93,还用于向所述对端PE设备发送本端的IP地址。
[0177] 进一步的,所述信息交换单元91,具体用于将本端的VPN拓扑信息封装在BGP NLRI中发送至对端的PE设备;
[0178] 所述VPN处理单元93,具体用于将所述共同支持的VPN拓扑信息封装在BGP扩展团体属性中发送至所述对端PE设备。
[0179] 进一步的,所述信息交换单元91,还用于在所述将本端的VPN拓扑信息发送至对端的PE设备之前,接收对端的PE设备发送的BGP Open消息,所述BGP Open消息中携带用于表示所述对端的PE设备支持VPN拓扑发现能力的标识。
[0180] 进一步的,当多个拓扑存在于所述MPLS VPN的MPLS骨干网中时;
[0181] 所述信息交换单元91,具体用于将本端选择的MPLS骨干网拓扑的拓扑标识发送至对端的PE设备,并接收所述对端的PE设备发送的对端选择的MPLS骨干网拓扑的拓扑标识;
[0182] 所述拓扑确定单元92,具体用于根据本端选择的MPLS骨干网拓扑的拓扑标识和对端选择的MPLS骨干网拓扑的拓扑标识,确定本端和对端选择的拓扑标识相同;
[0183] 所述VPN处理单元93,具体用于通过所述本端和对端选择的相同的拓扑标识对应的MPLS骨干网拓扑,实现所述各成员间的通信。
[0184] 进一步的,所述PE设备为VPN业务的业务主动方;则所述信息交换单元91,具体用于在执行所述将本端选择的MPLS骨干网拓扑的拓扑标识发送至对端的PE设备之后,接收所述对端的PE设备发送的对端选择的MPLS骨干网拓扑的拓扑标识。
[0185] 进一步的,所述PE设备为VPN业务的业务被动方;则所述信息交换单元91,具体用于接收所述对端的PE设备发送的对端选择的MPLS骨干网拓扑的拓扑标识;若本端支持所述拓扑标识对应的MPLS骨干网拓扑,则将本端选择的MPLS骨干网拓扑的拓扑标识发送至对端的PE设备,本端选择的所述拓扑标识与对端选择的拓扑标识相同。
[0186] 进一步的,所述信息交换单元91,具体用于将本端选择的MPLS骨干网拓扑的拓扑标识封装在BGP NLRI中发送至对端的PE设备。
[0187] 进一步的,所述信息交换单元91,还用于在将本端选择的MPLS骨干网拓扑的拓扑标识封装在BGP NLRI中发送至对端的PE设备之前,接收对端的PE设备发送的BGP Open消息,所述BGP Open消息中携带用于表示所述对端的PE设备支持VPN拓扑选择能力的标识。
[0188] 进一步的,所述信息交换单元91,还用于在所述将本端选择的MPLS骨干网拓扑的拓扑标识封装在BGP NLRI中发送至对端的PE设备之前,将本端的IP地址、与本端连接的各VPN成员的VPN标识、以及路由目标(RT)封装在BGP NLRI中,发送至所述对端的PE设备;并接收对端的PE设备通过BGP NLRI封装发送的对端PE设备的IP地址、与对端的PE设备连接的各VPN成员的VPN标识以及RT;
[0189] 以及,用于将本端选择的MPLS骨干网拓扑的拓扑标识、选择所述MPLS骨干网拓扑的本端VPN成员的VPN标识、本端的IP地址、与所述本端VPN成员属于同一VPN的对端VPN成员的VPN标识、对端PE设备的IP地址,同时封装在BGP NLRI中,发送至所述对端的PE设备。
[0190] 所述拓扑确定单元92,还用于根据接收的所述对端的PE设备发送的RT,获得与所述RT匹配的本端的VPN成员的VPN标识,所述本端的VPN成员与对端的VPN成员属于同一VPN。
[0191] 进一步的,信息交换单元91,具体用于将本端选择的MPLS骨干网拓扑的拓扑标识封装在LDP Mapping消息中发送至对端的PE设备。
[0192] 本实施例的PE设备,通过在本端与对端PE设备之间执行VPN拓扑信息的交换,并根据该交换的VPN拓扑信息在本端和对端选择相同的拓扑实现VPN,实现了多拓扑环境下的VPN且提高了多拓扑VPN的服务质量。
[0193] 实施例八
[0194] 图11为本发明PE设备实施例的实体构造图,该PE设备包括至少一个处理器、以及与所述至少一个处理器连接的存储器;所述至少一个处理器读取存储器中的存储信息,执行对应的处理步骤。为了简明起见,在图11中仅以一个处理器、存储器包括只读存储器(Read-Only Memory,简称:ROM)和随机存取存储器(random access memory,简称:RAM)为例进行说明。
[0195] 所述存储器,用于保存存储信息,所述存储信息包括:本端的VPN拓扑信息以及对端的VPN拓扑信息;
[0196] 所述处理器,被配置:将本端的VPN拓扑信息发送至对端的PE设备,并接收所述对端的PE设备发送的对端的VPN拓扑信息,发送至存储器;还用于根据所述本端的VPN拓扑信息和对端的VPN拓扑信息,使本端和对端从所述多个拓扑中选择相同的拓扑;以及通过所述相同的拓扑连接所述各VPN成员,实现所述VPN。
[0197] 所述处理器还可以被配置用于执行方法实施例中的各个步骤,在这里不再一一描述。
[0198] 本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
[0199] 最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。