1 概述
传统的VPN通常建立在ATM/DDN/FR网上,随着IP网的大规模部署及ATM技术应用的衰落,在IP网上提供VPN业务被认为是一种非常经济的方式,随着MPLS技术的出现,基于MPLS的VPN技术发展迅速并已获得商用。根据RFC 2764中对IP VPN技术的分类,IP VPN可划分为:VLL(Virtual Leased Lines)、VPDN(Virtual Private Dial Networks)、VPRN(Virtual Private Routed Networks)和VPLS(Virtual Private LAN Segment)四种。MPLS VPN属于VPRN。 2 MPLS路由器的结构 MPLS路由器结构与传统的仅支持逐跳路由的路由器结构有所不同,MPLS中的标签交换路由器(LSR)结构如图1所示,图中实线为传统路由器部分,虚线为LSR增加的部分,LSR分为路由模块和转发模块,路由模块中的路由协议可以是OSPF或IS-IS,也可以是它们基于流量工程的扩展,MPLS信令可以是RSVP或CR-LDP,标签分组根据转发模块中的标签转发表来交换标签,IP转发表用于传统逐跳路由的第三层查找。MPLS通常采用拓扑驱动方式,路由器根据路由表项来建立LSP 。 3 MPLS VPN的数据转发过程 MPLS VPN中的路由器有三种:P路由器、PE路由器和CE路由器。P路由器为运营商主干路由器,负责VPN分组外层标签的交换;PE路由器为运营商边界路由器,存放着VRF表和全局路由表,VRF中存放着VPN路由,全局路由表中存放着运营商的域内路由;CE路由器为客户端路由器,由客户负责维护。当CE路由器将一个VPN分组转发给入口PE路由器后,PE路由器查找该VPN对应的VRF,从VRF中得到一个VPN标签和下一跳出口PE路由器的地址,VPN标签作为内层标签打在VPN分组上,根据下一跳出口PE路由器的地址可以在全局路由表中查出到达该PE路由器应打上的域内路由的标签,即外层标签,于是VPN分组被打上了两层标签,主干网的P路由器根据外层标签转发VPN分组,在最后一个P路由器处,外层标签弹出,VPN分组只剩下内层标签(此过程被称作次末级弹出机制),接着VPN分组被发往出口PE路由器。出口PE路由器根据内层标签查找到相应的出口后,将VPN分组上的内层标签删除,将不含标签的VPN分组转发给正确的CE路由器,CE路由器根据自己的路由表将分组转发到正确的目的地。 4 MP-iBGP 协议 在基于MP-iBGP协议的MPLS VPN体系中,存在两个层面的路由,即域内路由和VPN路由。 所有的PE路由器及P路由器上要运行主干网的域内路由(OSPF或IS-IS等),生成的路由表将触发主干网中LSP的建立(拓扑驱动方式),通过CR-LDP或RSVP等信令协议建立LSP,产生的标签转发表用于VPN分组外层标签的交换。PE路由器之间运行MP-iBGP协议,该协议跨越主干的P路由器在PE之间分发VPN标签,形成VPN路由,MP-iBGP发布的一条VPN路由包含的信息有:IPv4地址、路由区分符(RD)、路由目标(RT)、VPN标签和下一跳PE地址,其中RD用来消除IPv4地址的歧义,以重用IPv4地址;RT用来控制VRF的导入和导出策略,从而控制网络的连通和拓扑;下一跳PE地址是连接域内路由和VPN路由的纽带,在PE路由器上根据在VRF中得到的下一跳PE地址可以在全局路由表中查找到到达该地址应打上的外层标签。 由于运行MP-iBGP协议的PE路由器之间必须构成全网状网的会话(因为运行iBGP的路由器不能转发收到的iBGP路由,这种机制用于避免路由环路),因此在大规模的网络应用中存在可扩展性的问题,解决的方法是采用路由反射器或路由域联合,路由反射器允许路由器转发收到的iBGP路由,以避免全网状的会话;采用路由域联合可以将路由域划分成多个区域,这样,只有区域内的路由器需要构成全网状的连接,减少了域内iBGP路由器的邻接数,当然采用路由域联合需考虑对跨域连接的规划。 5 VPN路由转发实例(VRF)、路由区分符(RD)和路由目标(RT)的概念 5.1 VPN路由转发实例(VRF) VPN IP路由表及相关的VPN IP转发表被统称为VPN路由和转发实例。在极端的情况下,可以为连接到PE路由器上的每个站点都分配一个VRF来存放VPN路由,但连接在同一PE路由器上的站点如果满足以下三个条件则可以共享一个VRF:(1)各站点属于同一个VPN; (2)路由信息相同; (3)站点之间允许相互直接通信。通常PE路由器上每个用户的端口与一个特定的VRF相关联,从该端口输入的VPN分组将根据各自对应的VRF查找其VPN标签和下一跳的出口PE路由器地址。VRF隔离了不同的VPN。 5.2 路由区分符(RD) 由于VPN数量巨大且不少原先的VPN用户不愿修改自身的IPv4地址,因此有必要允许不同的VPN客户使用相同的IPv4地址,对于不同VPN中相同的地址,采用RD可以实现IPv4地址的重用。PE路由器通过MP-iBGP协议通告站点的路由时,将同时携带各路由的RD,即将IPv4地址转化为VPN-IPv4地址,PE路由器在收到MP-iBGP通告的路由后,将查看该路由的RD,然后将VPN-IPv4地址转化成IPv4地址,即将地址中的RD去掉,将其导入到相应的VRF中。由于不同VPN被VRF隔离了,因此不同VPN中相同的IPv4地址,将被导入到不同的VRF中。在同一个VPN中,地址必须是唯一的;当多个VPN之间需要相互通信时(例如有公共的站点),则要求地址必须在多个VPN中是唯一的,此时多个VPN只能使用同一个RD。 5.3 路由目标(RT) RT来控制VRF的导入和导出策略,以构成各种复杂的VPN拓扑。一个VPN有可能不止使用一个RT,RT的具体使用与VPN的拓扑结构密切相关, 对于全网状相接的VPN可以用一个RT,对于非全网状相连的VPN,一个VPN往往需要多个RT。当从PE导出VPN路由时,要用RT对VPN路由进行标记,在往VRF中导入路由时,可以使用多个RT,只要有一个VPN路由中附带的RT与导入路由中的任意RT相同,都将被导入到该VRF中。
1 概述
传统的VPN通常建立在ATM/DDN/FR网上,随着IP网的大规模部署及ATM技术应用的衰落,在IP网上提供VPN业务被认为是一种非常经济的方式,随着MPLS技术的出现,基于MPLS的VPN技术发展迅速并已获得商用。根据RFC 2764中对IP VPN技术的分类,IP VPN可划分为:VLL(Virtual Leased Lines)、VPDN(Virtual Private Dial Networks)、VPRN(Virtual Private Routed Networks)和VPLS(Virtual Private LAN Segment)四种。MPLS VPN属于VPRN。
2 MPLS路由器的结构 MPLS路由器结构与传统的仅支持逐跳路由的路由器结构有所不同,MPLS中的标签交换路由器(LSR)结构如图1所示,图中实线为传统路由器部分,虚线为LSR增加的部分,LSR分为路由模块和转发模块,路由模块中的路由协议可以是OSPF或IS-IS,也可以是它们基于流量工程的扩展,MPLS信令可以是RSVP或CR-LDP,标签分组根据转发模块中的标签转发表来交换标签,IP转发表用于传统逐跳路由的第三层查找。MPLS通常采用拓扑驱动方式,路由器根据路由表项来建立LSP 。 3 MPLS VPN的数据转发过程 MPLS VPN中的路由器有三种:P路由器、PE路由器和CE路由器。P路由器为运营商主干路由器,负责VPN分组外层标签的交换;PE路由器为运营商边界路由器,存放着VRF表和全局路由表,VRF中存放着VPN路由,全局路由表中存放着运营商的域内路由;CE路由器为客户端路由器,由客户负责维护。当CE路由器将一个VPN分组转发给入口PE路由器后,PE路由器查找该VPN对应的VRF,从VRF中得到一个VPN标签和下一跳出口PE路由器的地址,VPN标签作为内层标签打在VPN分组上,根据下一跳出口PE路由器的地址可以在全局路由表中查出到达该PE路由器应打上的域内路由的标签,即外层标签,于是VPN分组被打上了两层标签,主干网的P路由器根据外层标签转发VPN分组,在最后一个P路由器处,外层标签弹出,VPN分组只剩下内层标签(此过程被称作次末级弹出机制),接着VPN分组被发往出口PE路由器。出口PE路由器根据内层标签查找到相应的出口后,将VPN分组上的内层标签删除,将不含标签的VPN分组转发给正确的CE路由器,CE路由器根据自己的路由表将分组转发到正确的目的地。 4 MP-iBGP 协议 在基于MP-iBGP协议的MPLS VPN体系中,存在两个层面的路由,即域内路由和VPN路由。 所有的PE路由器及P路由器上要运行主干网的域内路由(OSPF或IS-IS等),生成的路由表将触发主干网中LSP的建立(拓扑驱动方式),通过CR-LDP或RSVP等信令协议建立LSP,产生的标签转发表用于VPN分组外层标签的交换。PE路由器之间运行MP-iBGP协议,该协议跨越主干的P路由器在PE之间分发VPN标签,形成VPN路由,MP-iBGP发布的一条VPN路由包含的信息有:IPv4地址、路由区分符(RD)、路由目标(RT)、VPN标签和下一跳PE地址,其中RD用来消除IPv4地址的歧义,以重用IPv4地址;RT用来控制VRF的导入和导出策略,从而控制网络的连通和拓扑;下一跳PE地址是连接域内路由和VPN路由的纽带,在PE路由器上根据在VRF中得到的下一跳PE地址可以在全局路由表中查找到到达该地址应打上的外层标签。 由于运行MP-iBGP协议的PE路由器之间必须构成全网状网的会话(因为运行iBGP的路由器不能转发收到的iBGP路由,这种机制用于避免路由环路),因此在大规模的网络应用中存在可扩展性的问题,解决的方法是采用路由反射器或路由域联合,路由反射器允许路由器转发收到的iBGP路由,以避免全网状的会话;采用路由域联合可以将路由域划分成多个区域,这样,只有区域内的路由器需要构成全网状的连接,减少了域内iBGP路由器的邻接数,当然采用路由域联合需考虑对跨域连接的规划。 5 VPN路由转发实例(VRF)、路由区分符(RD)和路由目标(RT)的概念 5.1 VPN路由转发实例(VRF) VPN IP路由表及相关的VPN IP转发表被统称为VPN路由和转发实例。在极端的情况下,可以为连接到PE路由器上的每个站点都分配一个VRF来存放VPN路由,但连接在同一PE路由器上的站点如果满足以下三个条件则可以共享一个VRF:(1)各站点属于同一个VPN; (2)路由信息相同; (3)站点之间允许相互直接通信。通常PE路由器上每个用户的端口与一个特定的VRF相关联,从该端口输入的VPN分组将根据各自对应的VRF查找其VPN标签和下一跳的出口PE路由器地址。VRF隔离了不同的VPN。 5.2 路由区分符(RD) 由于VPN数量巨大且不少原先的VPN用户不愿修改自身的IPv4地址,因此有必要允许不同的VPN客户使用相同的IPv4地址,对于不同VPN中相同的地址,采用RD可以实现IPv4地址的重用。PE路由器通过MP-iBGP协议通告站点的路由时,将同时携带各路由的RD,即将IPv4地址转化为VPN-IPv4地址,PE路由器在收到MP-iBGP通告的路由后,将查看该路由的RD,然后将VPN-IPv4地址转化成IPv4地址,即将地址中的RD去掉,将其导入到相应的VRF中。由于不同VPN被VRF隔离了,因此不同VPN中相同的IPv4地址,将被导入到不同的VRF中。在同一个VPN中,地址必须是唯一的;当多个VPN之间需要相互通信时(例如有公共的站点),则要求地址必须在多个VPN中是唯一的,此时多个VPN只能使用同一个RD。 5.3 路由目标(RT) RT来控制VRF的导入和导出策略,以构成各种复杂的VPN拓扑。一个VPN有可能不止使用一个RT,RT的具体使用与VPN的拓扑结构密切相关, 对于全网状相接的VPN可以用一个RT,对于非全网状相连的VPN,一个VPN往往需要多个RT。当从PE导出VPN路由时,要用RT对VPN路由进行标记,在往VRF中导入路由时,可以使用多个RT,只要有一个VPN路由中附带的RT与导入路由中的任意RT相同,都将被导入到该VRF中。