跳到主要内容

14.1.2. All-Active Redundancy Mode (全活冗余模式)

14.1.2. All-Active Redundancy Mode (全活冗余模式)

对于给定 ES, 如果远程 PE 已从一个或多个 PE 导入 Ethernet A-D per ES route 集合, 且这些路由的 ESI Label extended community 中都没有设置 "Single-Active" flag, 则远程 PE MUST 推断该 ES 以 All-Active redundancy mode 运行. 收到带有非保留 ESI 的 MAC/IP Advertisement route 的远程 PE SHOULD 认为, 可通过所有已使用如下组合为该 MAC 地址的 EVI/ES 通告可达性的 PE 到达被通告的 MAC 地址: 该 EVI/ES 的 Ethernet A-D per EVI route (以及 Ethernet tag, 如果适用) AND 该 ES 的 Ethernet A-D per ES route. 远程 PE MUST 使用收到的 MAC/IP Advertisement route 和 Ethernet A-D per EVI/per ES route 为被通告的 MAC 地址构造 next hop 集合.

每个 next hop 都包含 egress PE 用于转发数据包的 MPLS label stack. 该 label stack 按如下方式确定:

  • 如果 next hop 是由 MAC route 构造的, 则 MUST 使用该 label stack. 但是, 如果该 PE 不存在 MAC route, 则 next hop 和 MPLS label stack 由 Ethernet A-D route 构造. 注意, 以下描述适用于确定到达给定 PE 的特定 next hop 的 label stack, 远程 PE 已从该给定 PE 收到并导入 Ethernet A-D route, 且这些路由具有与 MAC advertisement 中相同的 ESI 和 Ethernet tag. 以下描述中提到的 Ethernet A-D route 指从该给定 PE 导入的路由.

  • 只有在存在该 ES 的 Ethernet A-D per ES route 集合 AND 每 EVI 的 Ethernet A-D route 时, 才必须使用后者路由中的标签.

以下示例解释上述内容.

考虑一个 CE (CE1) 在 LAG interface (ES1) 上双宿主连接到两个 PE (PE1 和 PE2), 并在 VLAN1 (映射到 EVI1) 上发送 source MAC address 为 MAC1 的数据包. 某个远程 PE, 例如 PE3, 能够学习到 MAC1 可通过 PE1 和 PE2 到达. 如果 PE1 和 PE2 从 CE1 收到带有 MAC1 的数据包, 则二者都可以在 BGP 中通告 MAC1. 如果不是这种情况, 并且 MAC1 只由 PE1 通告, PE3 仍认为 MAC1 可通过 PE1 和 PE2 到达, 因为 PE1 和 PE2 都为 ES1 通告一组 Ethernet A-D per ES route, 以及为 < EVI1, ES1> 通告一条 Ethernet A-D per EVI route.

向 PE1 发送数据包的 MPLS label stack 是到达 PE1 的 MPLS LSP stack (位于栈顶), 后接 PE1 为 CE1 的 MAC 通告的 EVPN label.

如果 PE2 未在 BGP 中通告 MAC1, 则向 PE2 发送数据包的 MPLS label stack 是到达 PE2 的 MPLS LSP stack (位于栈顶), 后接 PE2 为 < ES1, VLAN1> 通告的 Ethernet A-D route 中的 MPLS label.

我们将这些 label stack 称为 MPLS next hop.

远程 PE (PE3) 现在可以在 PE1 和 PE2 之间, 对其从自身 CE 收到且目的地为 CE1 的流量进行负载均衡. PE3 可以使用 N-tuple flow information 将流量哈希到某个 MPLS next hop, 以对 IP traffic 执行负载均衡. 或者, PE3 可以依赖 source MAC address 进行负载均衡.

注意, 一旦 PE3 决定将特定数据包发送给 PE1 或 PE2, 它就可以使用常规 MPLS 过程从多个可能路径中选择一条到达该特定远程 PE. 例如, 如果隧道技术基于 RSVP-TE LSP, 且 PE3 决定将特定数据包发送给 PE1, 则 PE3 可以从以 PE1 为目的地的多个 RSVP-TE LSP 中选择.

当 PE1 或 PE2 从 PE3 收到目的地为 CE1 的数据包时, 如果该数据包是 known unicast, 则转发给 CE1. 如果它是 BUM packet, 则 PE1 或 PE2 中只有一个必须将该数据包转发给 CE. PE1 或 PE2 中哪一个将该数据包转发给 CE, 由二者中哪个是 DF 来确定.