2. RD
VPN中IP地址的规划是由客户自行制订的,因而有可能会出现客户选择在RFC1918中定义的私有地址作为他们的站点地址或者不同的VPN使用相同的地址域,也就是所谓的地址重叠现象 。地址重叠的后果之一就是BGP无法区分来自不同VPN的重叠路由,从而导致某个站点不可达 。
为了解决这个问题,BGP/MPLS VPN除了采用在PE路由器上使用多个VRF表的方法,还引入了RD的概念 。RD具有全局唯一性,通过将8个字节的RD作为IPv4地址前缀的扩展,使不唯一的IPv4地址转化为唯一的VPN-IPv4地址 。VPN-IPv4地址对客户端设备来说是不可见的,它只用于骨干网络上路由信息的分发 。
RD和VRF表之间建立了一一对应的关系 。通常情况下,对于不同PE路由器上属于同一个VPN的子接口,为其所对应的VRF表分配相同的RD,换句话说,就是为每一个VPN分配一个唯一的RD 。但是对于重叠VPN,即某个站点属于多个VPN的情况,由于PE路由器上的某个子接口属于多个VPN,此时,该子接口所对应的VRF表只能被分配一个RD,从而多个VPN共享一个RD 。
3. RT
RT的作用类似于BGP中扩展团体属性,用于路由信息的分发 。它分成Import RT和EXPort RT,分别用于路由信息的导入、导出策略 。当从VRF表中导出VPN路由时,要用Export RT对VPN路由进行标记;在往VRF表中导入VPN路由时,只有所带RT标记与VRF表中任意一个Import RT相符的路由才会被导入到VRF表中 。RT使得PE路由器只包含和其直接相连的VPN的路由,而不是全网所有VPN的路由,从而节省了PE路由器的资源,提高了网络拓展性 。
RT具有全局唯一性,并且只能被一个VPN使用 。通过对Import RT和Export RT的合理配置,运营商可以构建不同拓扑类型的VPN,如重叠式VPN和Hub-and-spoke VPN 。
四、BGP/MPLS VPN的体系结构
1. BGP/MPLS VPN的
体系结构
体系结构主要分成数据面和控制面 。数据面定义了VPN数据的转发过程;控制面则定义了LSP的建立和VPN路由信息的分发过程 。在此,我们主要讨论一下数据的转发过程和路由信息的分发过程 。
2. 数据转发过程
在MPLS网络中传输的VPN数据采用外标签(又称隧道标签)和内标签(又称VPN标签)两层标签栈结构,它们分别对应于两个层面的路由:域内路由和VPN路由 。域内路由即MPLS中的LSP是由PE路由器和P路由器通过运行标签分发协议(Label Distribution Protocol:LDP)或资源预留协议(Resource Reservation Protocol:RSVP)建立的,它所产生的标签转发表用于VPN分组外层标签的交换 。VPN路由是由PE路由器之间通过运行MP-iBGP建立的,该协议跨越骨干网的P路由器分发VPN标签形成VPN路由 。
在PE路由器上除了VRF表外,还有MPLS路由表,该表用于存放VPN标签和子接口的对应关系,为出口PE路由器到CE路由器之间的数据转发提供依据 。
具体数据转发过程如下:当CE路由器通过某个子接口将一个VPN分组发给入口PE路由器后,PE路由器查找该子接口对应的VRF表,从VRF表中得到VPN标签、初始外层标签以及到出口PE路由器的输出接口 。当VPN分组被打上两层标签之后,就通过输出接口发送到相应LSP上的第一个P路由器 。骨干网中P路由器根据外层标签逐跳转发VPN分组,直至最后一个P路由器弹出外层标签,将只含有VPN标签的分组转发给出口PE路由器 。出口PE路由器根据VPN标签,查找MPLS路由表得到对应的输出接口,在弹出VPN标签后通过该接口将VPN分组发送给正确的CE路由器,从而实现了整个数据转发过程 。非凡的,当出口PE路由器和入口PE路由器是同一个路由器时,PE路由器对收到的VPN分组将不经过任何处理直接转发给目的CE路由器 。
推荐阅读
- 如何提高bgpas-path的编写效率
- 原创 如何更改电脑外网ip
- GMPLS--IP与WDM无缝结合的关键
- 边界网关协议 BGP简介(1)
- BGP常用命令
- BGP配置示例
- 聚合BGP
- BGP资料
- 关于BGP-4的一些概念解答
- 关于BGP 抖动参数设置
