一、基本原理
1、私网标签分配
在 BGP/MPLS IP VPN 中,PE 通过 MP-BGP 发布私网路由给骨干网的其他相关的 PE 前,需
要为私网路由分配 MPLS 标签(私网标签)。当数据包在骨干网传输时,携带私网标签。
PE 上分配私网标签的方法有如下两种:
1)、基于路由的 MPLS 标签分配:为 VPN 路由表的每一条路由分配一个标签(one
label per route)。这种方式的缺点是:当路由数量比较多时,设备入标签映射表
ILM(Incoming Label Map)需要维护的表项也会增多,从而提高了对设备容量的
要求。
2)、基于 VPN 实例的 MPLS 标签分配:为整个 VPN 实例分配一个标签,该 VPN 实例里
的所有路由都共享一个标签。使用这种分配方法的好处是节约了标签。
2、私网路由交叉
两台 PE 之间通过 MP-BGP 传播的路由是 VPNv4 路由。当接收到 VPNv4 路由,PE 先进行
如下处理:
1)、 检查其下一跳是否可达。如果下一跳不可达,该路由被丢弃。
2)、 对于 RR 发送过来的 VPNv4 路由,如果收到的路由中 cluster_list 包含自己的
cluster_id,则丢弃这条路由。
3)、 进行 BGP 的路由策略过滤,如果不通过,则丢弃该路由。
之后,PE 把没有丢弃的路由与本地的各个 VPN 实例的 Import Target 属性匹配。VPNv4 路
由与本地 VPN 实例的 Import VPN-Target 进行匹配的过程称为私网路由交叉。
PE 上有种特殊的路由,即来自本地 CE 的属于不同 VPN 的路由。对于这种路由,如果其下
一跳直接可达或可迭代成功,PE 也将其与本地的其他 VPN 实例的 Import Target 属性匹
配,该过程称为本地交叉。例如:CE1 所在的 Site 属于 VPN1,CE2 所在的 Site 属于
VPN2,且 CE1 和 CE2 同时接入 PE1。当 PE1 收到来自 CE1 的 VPN1 的路由时,也会与
VPN2 对应的 VPN 实例的 Import Target 属性匹配。
3、公网隧道迭代
为了将私网流量通过公网传递到另一端,需要有一条公网隧道承载这个私网流量。因此私
网路由交叉完成后,需要根据目的 IPv4 前缀进行路由迭代,查找合适的隧道(本地交叉的
路由除外);只有隧道迭代成功,该路由才被放入对应的 VPN 实例路由表。将路由迭代到
相应的隧道的过程叫做隧道迭代。
隧道迭代成功后,保留该隧道的标识符(Tunnel ID),供后续转发报文时使用。Tunnel ID
用于唯一标识一条隧道。VPN 报文转发时根据 Tunnel ID 查找对应的隧道,然后从隧道上
发送出去。
4、私网路由的选择规则
经过路由交叉和隧道迭代的路由并不是全部被放入 VPN 实例路由表。从本地 CE 收到的路
由和本地交叉路由也不是全部被放入 VPN 实例路由表。
对于到同一目的地址的多条路由,如果不进行路由的负载分担,按如下规则选择其中的一
条:
1)、 同时存在直接从 CE 收到的路由和交叉成功后的同一目的地址路由,则优选从 CE
收到的路由。
2)、 同时存在本地交叉路由和从其他 PE 接收并交叉成功后的同一目的地址路由,则优
选本地交叉路由。
对于到同一目的地址的多条路由,如果进行路由的负载分担,则:
3)、 优先选择从本地 CE 收到的路由。只有一条从本地 CE 收到的路由而有多条交叉路
由的情况下,也只选择从本地 CE 收到的路由。
4)、 只在从本地 CE 收到的路由之间分担或只在交叉路由之间分担,不会在本地 CE 收
到的路由和交叉路由之间分担。
二、 跨域 VPN
一般的 MPLS VPN 体系结构都是在一个自治系统 AS(Autonomous System)内运行,任
何 VPN 的路由信息都是只能在一个 AS 内按需扩散,没有提供 AS 内的 VPN 信息向其他
AS 扩散的功能。因此,为了支持运营商之间的 VPN 路由信息交换,就需要扩展现有的协
议和修改 MPLS VPN 体系框架,提供一个不同于基本的 MPLS VPN 体系结构所提供的互
连模型——跨域(Inter-AS)的 MPLS VPN,以便可以穿过运营商间的链路来发布路由前
缀和标签信息。
1、跨域 VPN-OptionA(Inter-Provider Backbones Option A)方式:需要跨域的 VPN 在
ASBR(AS Boundary Router)间通过专用的接口管理自己的 VPN 路由,也称为
VRF-to-VRF
跨域 VPN-OptionA 的特点
优点是配置简单:由于 ASBR 之间不需要运行 MPLS,也不需要为跨域进行特殊配置。
缺点是可扩展性差:由于 ASBR 需要管理所有 VPN 路由,为每个 VPN 创建 VPN 实例。
这将导致 ASBR 上的 VPN-IPv4 路由数量过大。并且,由于 ASBR 间是普通的 IP 转发,
要求为每个跨域的 VPN 使用不同的接口,从而提高了对 PE 设备的要求。如果跨越多个
自治域,中间域必须支持 VPN 业务,不仅配置量大,而且对中间域影响大。在需要跨域
的 VPN 数量比较少的情况,可以优先考虑使用。
2、跨域 VPN-OptionB(Inter-Provider Backbones Option B)方式:ASBR 间通过 MP-
EBGP 发布标签 VPN-IPv4 路由,也称为 EBGP redistribution of labeled VPN-IPv4
routes
跨域 VPN-OptionB 的特点
不同于 OptionA,OptionB 方案不受 ASBR 之间互连链路数目的限制。
局限性:VPN 的路由信息是通过 AS 之间的 ASBR 来保存和扩散的,当 VPN 路由较多
时,ASBR 负担重,容易成为故障点。因此在 MP-EBGP 方案中,需要维护 VPN 路由信
息的 ASBR 一般不再负责公网 IP 转发。
3、跨域 VPN-OptionC(Inter-Provider Backbones Option C)方式:PE 间通过 Multi-
hop MP-EBGP 发布标签 VPN-IPv4 路由,也称为 Multihop EBGP redistribution of
labeled VPN-IPv4 routes
跨域 VPN-OptionC 的特点
VPN 路由在入口 PE 和出口 PE 之间直接交换,不需要中间设备的保存和转发。
VPN 的路由信息只出现在 PE 设备上,而 P 和 ASBR 只负责报文的转发,使得中间域的设备可以不支
持 MPLS VPN 业务,只需支持 MPLS转发,ASBR 设备不再成为性能瓶颈。因此跨域 VPN-OptionC
更适合在跨越多个 AS 时使用。更适合支持 MPLS VPN 的负载分担。缺点是维护一条端到端的 PE 连
接管理代价较大。