9. 运营商的运营商
9. 运营商的运营商 (Carriers' Carriers)
有时,一个 VPN 实际上可能是一个 ISP 的网络,拥有自己的对等(peering)与路由策略。有时,一个 VPN 可能是某个向自身客户提供 VPN 服务的 SP 的网络。像这样的 VPN,也可以使用本文档描述的基本相同的方法,从另一个 SP(即"运营商的运营商")处获得骨干网服务。然而,在这些情形下,CE 路由器必须支持 MPLS。具体而言:
-
CE 路由器应当只向 PE 路由器分发那些 VPN 内部的路由。这就使该 VPN 能够作为存根 VPN 来处理。
-
CE 路由器应当支持 MPLS,即它们应当能够接收来自 PE 路由器的标签,并向 PE 路由器发送带标签的报文。不过,它们不需要分发自己的标签。
-
PE 路由器应当为自己分发给 CE 路由器的路由,向这些 CE 路由器分发标签。
PE 不得将同一个标签分发给两个不同的 CE,除非满足以下任一条件:
-
这两个 CE 恰好与同一组 VRF 相关联;
-
PE 为每个 CE 维护一张不同的入向标签映射(Incoming Label Map,简称 ILM)[MPLS-ARCH]。
此外,当 PE 从一个 CE 收到一个带标签的报文时,它必须核实:栈顶标签(top label)是它分发给该 CE 的那个标签。
-
-
不同站点的路由器应当彼此建立 BGP 连接,以交换外部路由(external route,即,通往 VPN 外部的路由)。
-
所有外部路由都必须为 CE 路由器所知。
随后,当一台 CE 路由器查表一个报文的目的地址时,该路由查表将解析为一个内部地址,通常就是该报文 BGP 下一跳的地址。CE 给报文打上恰当的标签,并将报文发送给 PE。PE 不是在某个 VRF 中查表该报文的 IP 目的地址,而是使用该报文的栈顶 MPLS 标签来选择 BGP 下一跳。结果是:如果 BGP 下一跳距离超过一跳,栈顶标签将被替换为两个标签,即一个隧道标签和一个 VPN 路由标签;如果 BGP 下一跳只隔一跳,栈顶标签可能被替换为仅一个 VPN 路由标签;如果入向 PE 同时也是出向 PE,栈顶标签将直接被弹出(pop)。当报文从其出向 PE 发往某个 CE 时,报文所带的 MPLS 标签会比它最初被其入向 PE 收到时少一个。
在上述过程中,CE 路由器是该 VPN 中唯一需要支持 MPLS 的路由器。另一方面,如果一个特定 VPN 站点的所有路由器都支持 MPLS,那么就不再要求 CE 路由器知晓全部外部路由。所需的全部条件是:外部路由为那些负责对一个迄今未加标签的报文压入标签栈的路由器所知,并且存在一条从这些路由器通往它们在其他站点的 BGP 对等体的标签交换路径。在这种情况下,对于一台 CE 路由器分发给一台 PE 路由器的每一条内部路由,它还必须分发一个标签。