跳到主要内容

8.3. Split Horizon (水平分割)

8.3. Split Horizon (水平分割)

考虑一个 CE 在以 All-Active redundancy mode 运行的 Ethernet segment ES1 上多宿主连接到两个或更多 PE. 如果该 CE 向其中一个非 Designated Forwarder (non-DF) PE (例如 PE1) 发送 broadcast, unknown unicast, or multicast (BUM) packet, 则 PE1 会将该数据包转发给该 EVPN 实例中所有或部分其他 PE, 包括该 Ethernet segment 的 DF PE. 在这种情况下, 该 CE 多宿主连接到的 DF PE MUST 丢弃该数据包, 且不得将其转发回 CE. 本文档将这种过滤称为 "split-horizon filtering".

当一组 PE 以 Single-Active redundancy mode 运行时, 强烈建议使用这种 split-horizon filtering 机制, 因为它可以在影响 Ethernet segment 的故障或恢复期间防止瞬态环路, 例如在 DF 选举过程稳定之前, 两个 PE 都认为自己是该 segment 的 DF.

为了实现此 split-horizon 功能, 源自 non-DF PE 的每个 BUM packet 都使用一个 MPLS 标签封装, 该标签标识源 Ethernet segment (即帧进入 EVPN 网络的 segment). 该标签称为 ESI label, 在以 All-Active redundancy mode 运行时, 所有 PE MUST 按照上面第 8.2.1 节使用一组 Ethernet A-D per ES route 分发该标签. 在以 Single-Active redundancy mode 运行时, 所有 PE SHOULD 使用一组 Ethernet A-D per ES route 分发 ESI label. 这些路由由连接到该 Ethernet segment 的 PE 导入, 也由至少有一个 EVPN 实例与该路由中 Ethernet segment 相同的 PE 导入. 如第 8.1.1 节所述, 该路由 MUST 携带包含有效 ESI label 的 ESI Label extended community. 处置 PE (disposition PE) 依赖 ESI label 的值来判断是否允许 BUM 帧从特定 Ethernet segment 出口转发.