8.3.1.2. P2MP MPLS LSPs (P2MP MPLS LSP)
8.3.1.2. P2MP MPLS LSPs (P2MP MPLS LSP)
以 All-Active redundancy mode 运行并使用 P2MP LSP 发送 BUM 流量的 non-DF PE, 会在其共同连接 ES 的 Ethernet A-D per ES route 集合中通告一个 upstream assigned ESI label. 该标签由通告该路由的 PE 进行上游分配. 连接到该路由中所通告 ESI 的其他 PE, MUST 在通告 PE 的 context label space 中编程此标签. 此外, 该标签的转发条目必须使收到的带有此标签的数据包 NOT 转发到为其分发该标签的 Ethernet segment. 导入该路由但未连接到该路由中所通告 ESI 的其他 PE, 也 MUST 在通告 PE 的 context label space 中编程此标签. 此外, 该标签的转发条目必须是 label pop, 且没有其他关联动作.
以 Single-Active redundancy mode 运行并使用 P2MP LSP 发送 BUM 流量的 DF PE, 应如上一段所述, 在其所连接 ES 的 Ethernet A-D per ES route 集合中通告一个 upstream assigned ESI label.
举例来说, 考虑 PE1 和 PE2 在 ES1 上多宿主连接到 CE1, 并以 All-Active multihoming mode 运行. 同时假设 PE3 属于 ES1 的某个 EVPN 实例. 进一步假设作为 non-DF 的 PE1 使用 P2MP MPLS LSP 发送 BUM packet. 当 PE1 发送它从 CE1 收到的 BUM packet 时, 它 MUST 首先将自己为接收该数据包的 ESI 分配的 ESI label 压入 MPLS label stack. 生成的数据包再进一步封装到向其他 PE 传输该数据包所需的 P2MP MPLS label stack 中. 在 EVPN 的 MPLS transport infrastructure 中使用的 P2MP LSP 上, Penultimate hop popping MUST 被禁用. 当 PE2 收到该数据包时, 它解封装顶部 MPLS label, 并使用由顶部标签确定的 context label space 转发该数据包. 如果下一个标签是 PE1 为 ES1 分配的 ESI label, 则 PE2 MUST NOT 将该数据包转发到 ES1. 当 PE3 收到该数据包时, 它解封装顶部 MPLS label, 并使用由顶部标签确定的 context label space 转发该数据包. 如果下一个标签是 PE1 为 ES1 分配的 ESI label, 且 PE3 未连接到 ES1, 则 PE3 MUST 弹出该标签, 并在该 EVPN 实例中的所有本地 ESI 上泛洪该数据包. 需要注意, 当 PE2 通过 P2MP LSP 发送 BUM frame 时, 即使它是该 VLAN 的 DF, 也应该使用 ESI label 封装该帧, 以避免在影响 ES1 的故障场景 (例如端口或链路故障) 中出现任何瞬态环路.