7. PE 如何从 CE 学习路由
7. PE 如何从 CE 学习路由 (How PEs Learn Routes from CEs)
连接到某个特定 VPN 的 PE routers 需要知道, 对于通向该 VPN 的每个 attachment circuit, 该 VPN 的哪些 addresses 应通过该 attachment circuit 到达.
PE 使用配置的 RD 将这些 addresses 转换为 VPN-IPv4 addresses. 然后 PE 将这些 VPN-IPv4 routes 作为 BGP 的输入处理. 来自 VPN site 的 routes 不会泄漏到 backbone 的 IGP 中.
具体可使用哪些 PE/CE route distribution 技术, 取决于某个特定 CE 是否位于 "transit VPN" 中. "transit VPN" 是包含某个 router 的 VPN, 该 router 从 "third party" (即不在该 VPN 中但也不是 PE router 的 router) 接收 routes, 并将这些 routes 重新分发给 PE router. 非 transit VPN 的 VPN 是 "stub VPN". 预计绝大多数 VPNs, 包括几乎所有企业网络, 在这个意义上都是 "stubs".
可能的 PE/CE distribution 技术如下:
-
可以使用 Static routing (即配置). (这可能只在 stub VPNs 中有用.)
-
PE 和 CE routers 可以是 Routing Information Protocol (RIP) [RIP] peers, CE 可以使用 RIP 告诉 PE router 在 CE router site 可达的 address prefixes 集合. 在 CE 中配置 RIP 时, 必须注意确保来自其他 sites 的 address prefixes (即 CE router 从 PE router 学到的 address prefixes) 永远不会被通告回 PE. 更精确地说: 如果某个 PE router, 例如 PE1, 接收到 VPN-IPv4 route R1, 并因此向某个 CE 分发 IPv4 route R2, 则 R2 不得从该 CE 的 site 再分发回某个 PE router, 例如 PE2, (其中 PE1 和 PE2 可以是同一 router 或不同 routers), 除非 PE2 将 R2 映射为不同于 R1 的 VPN-IPv4 route (即包含不同 RD 的 route).
-
PE 和 CE routers 可以是 OSPF peers. 作为 CE router 的 OSPF peer 的 PE router, 在 CE router 看来表现为 area 0 router. 如果某个 PE router 是位于不同 VPNs 中的 CE routers 的 OSPF peer, 则该 PE 当然必须运行多个 OSPF instances.
PE 通过 OSPF 从 CE 学到的 IPv4 routes 会作为 VPN-IPv4 routes 重新分发到 BGP 中. Extended Community attributes 用于随 route 携带所需的全部信息, 以便该 route 能以正确类型的 OSPF Link State Advertisement (LSA) 分发给 VPN 中的其他 CE routers. OSPF route tagging 用于确保从 MPLS/BGP backbone 接收的 routes 不会被发送回 backbone.
PE 与 CE 之间使用 OSPF 的完整过程规范可见 [VPN-OSPF] 和 [OSPF-2547-DNBIT].
-
PE 和 CE routers 可以是 BGP peers, CE router 可以使用 BGP (特别是 EBGP) 告诉 PE router CE router site 上的 address prefixes 集合. (该技术可用于 stub VPNs 或 transit VPNs.)
与其他技术相比, 该技术有若干优点:
a) 与 IGP 替代方案不同, 这不要求 PE 为了与多个 CEs 通信而运行多个 routing algorithm instances.
b) BGP 明确就是为此功能设计的: 在由不同管理实体运行的 systems 之间传递 routing information.
c) 如果 site 包含 "BGP backdoors", 即具有到 PE routers 以外 routers 的 BGP connections 的 routers, 则该过程在所有情况下都能正确工作. 其他过程是否能工作取决于具体情况.
d) 使用 BGP 使 CE 很容易把 routes 的 attributes 传递给 PE. 完整规定这些 attributes 集合及其使用方式超出了本文范围. 但该能力的一些使用方式示例如下:
- CE 可以为每条 route 建议一个特定 Route Target, 该 Route Target 来自 PE 被授权附加到 route 的 Route Targets 集合. 然后 PE 只附加所建议的 Route Target, 而不是完整集合. 这使 CE administrator 能够对来自 CE 的 routes 分发进行一定动态控制.
- 可以定义其他类型的 Extended Community attributes, 其意图是让这些 attributes 从 CE 到 CE 透明传递 (即不被 PE routers 改变). 这将允许 CE administrators 实现除 PEs 所做过滤之外的额外 route filtering. 这种额外过滤不需要与 SP 协调.另一方面, 使用 BGP 对 CE administrators 来说可能是新事物.
如果某个 site 不在 transit VPN 中, 注意它不需要拥有唯一的 Autonomous System Number (ASN). 每个其 site 不在 transit VPN 中的 CE 都可以使用同一个 ASN. 该 ASN 可以从 private ASN space 中选择, 并会被 PE 去除. 通过使用 Site of Origin attribute (见下文) 来防止 routing loops.
如果一组 sites 构成 transit VPN 会怎样? 一般只有当该 VPN 本身是 Internet Service Provider (ISP) 的网络, 且该 ISP 自身从另一个 SP 购买 backbone services 时, 才会出现这种情况. 后一个 SP 可称为 "carrier's carrier". 在这种情况下, 提供该 VPN 的最佳方式是让 CE routers 支持 MPLS, 并使用 Section 9 中描述的技术.
当我们不需要区分 PE 可以通过哪些不同方式得知某个给定 site 上存在的 address prefixes 时, 我们将简单地说 PE 已从该 site "learned" 了 routes. 这包括 PE 已被手工配置这些 routes 的情形.
在 PE 能够重新分发从某个 site 学到的 VPN-IPv4 route 之前, 它必须为该 route 分配一个 Route Target attribute (见 Section 4.3.1), 并且可以为该 route 分配一个 Site of Origin attribute.
Site of Origin attribute 如果使用, 会编码为 Route Origin Extended Community [BGP-EXTCOMM]. 该 attribute 的目的是唯一标识从某个特定 site 学到的一组 routes. 在某些情况下需要该 attribute, 以确保通过某个特定 PE/CE connection 从某个特定 site 学到的 route 不会通过另一个 PE/CE connection 被分发回该 site. 如果使用 BGP 作为 PE/CE protocol, 但不同 sites 尚未分配不同 ASNs, 它尤其有用.