9. 运营商的运营商
9. 运营商的运营商 (Carriers' Carriers)
有时, 一个 VPN 实际上可能是某个 ISP 的网络, 并具有自己的 peering 和 routing policies. 有时, 一个 VPN 也可能是某个 SP 的网络, 而该 SP 又向自己的客户提供 VPN 服务. 这类 VPN 也可以使用本文档描述的基本相同方法, 从另一个 SP, 即 "运营商的运营商 (carrier's carrier)", 获得 backbone service. 不过在这些情况下, CE routers 必须支持 MPLS. 具体而言:
-
CE routers 应当只向 PE routers 分发 VPN 内部的 routes. 这样即可将该 VPN 作为 stub VPN 处理.
-
CE routers 应当支持 MPLS, 即它们应能够从 PE routers 接收 labels, 并向 PE routers 发送 labeled packets. 但它们不需要分发自己的 labels.
-
PE routers 应当向 CE routers 分发 labels, 这些 labels 对应 PE routers 分发给 CE routers 的 routes.
除非满足以下条件之一, PE 不得向两个不同的 CE 分发同一个 label:
-
这两个 CE 关联的是完全相同的一组 VRFs;
-
PE 为每个 CE 维护不同的 Incoming Label Map ([MPLS-ARCH]).
此外, 当 PE 从 CE 收到 labeled packet 时, 它必须验证 top label 是曾分发给该 CE 的 label.
-
-
不同 sites 的 routers 应当彼此建立 BGP connections, 以交换 external routes, 即通向 VPN 外部的 routes.
-
所有 external routes 都必须为 CE routers 所知.
这样, 当 CE router 查找某个 packet 的 destination address 时, routing lookup 将解析到一个 internal address, 通常是该 packet 的 BGP next hop 地址. CE 为该 packet 加上适当的 label, 并将其发送给 PE. PE 不在 VRF 中查找 packet 的 IP destination address, 而是使用 packet 的 top MPLS label 选择 BGP next hop. 因此, 如果 BGP next hop 距离超过一跳, top label 将被替换为两个 labels, 即 tunnel label 和 VPN route label. 如果 BGP next hop 距离为一跳, top label 可能只被替换为 VPN route label. 如果 ingress PE 同时也是 egress PE, 则 top label 会直接被弹出. 当 packet 从其 egress PE 发送到 CE 时, 该 packet 所带的 MPLS labels 将比它最初被 ingress PE 接收时少一个.
在上述过程中, CE routers 是 VPN 中唯一需要支持 MPLS 的 routers. 另一方面, 如果某个特定 VPN site 中的所有 routers 都支持 MPLS, 则不再要求 CE routers 知道所有 external routes. 唯一需要的是, external routes 必须为那些负责给此前未加 label 的 packet 压入 label stack 的 routers 所知, 并且必须存在从这些 routers 通向其他 sites 上 BGP peers 的 label switched path. 在这种情况下, 对于 CE router 分发给 PE router 的每条 internal route, 它还必须同时分发一个 label.