rfc-9746

BGP EVPN Multihoming Extensions for Split-Horizon Filtering

J. Rabadan, K. Nagaraj, W. Lin, A. Sajassi
date2025-03 streamIETF areartg wgbess statusPROPOSED STANDARD pages17 canonicalhttps://www.rfc-editor.org/rfc/rfc9746 doi10.17487/RFC9746
An Ethernet Virtual Private Network (EVPN) is commonly used with Network Virtualization Overlay (NVO) tunnels as well as with MPLS and Segment Routing (SR) tunnels. The multihoming procedures in EVPN may vary based on the type of tunnel used within the EVPN Broadcast Domain. Specifically, there are two multihoming split-horizon procedures designed to prevent looped frames on multihomed Customer Edge (CE) devices: the Ethernet Segment Identifier (ESI) Label-based procedure and the local-bias procedure. The ESI Label-based split-horizon procedure is applied to MPLS-based tunnels such as MPLS over UDP (MPLSoUDP), while the local-bias procedure is used for other tunnels such as Virtual eXtensible Local Area Network (VXLAN) tunnels. Current specifications do not allow operators to choose which split-horizon procedure to use for tunnel encapsulations that support both methods. Examples of tunnels that may support both procedures include MPLSoUDP, MPLS over GRE (MPLSoGRE), Generic Network Virtualization Encapsulation (Geneve), and Segment Routing over IPv6 (SRv6) tunnels. This document updates the EVPN multihoming procedures described in RFCs 7432 and 8365, enabling operators to select the split-horizon procedure that meets their specific requirements.

updates

Extracted elements (26)

design-rationale §1.2

ESI Label filtering is preferred for Single-Active multihoming and cross-domain scenarios because local bias is unsuitable for Single-Active (ingress NVE deactivates non-DF ACs, preventing local replication) and requires a stable source IP identity across next-hops, which may not hold in multi-domain networks.

routing, mpls

design-rationale §1.2

Operators may prefer local bias over ESI Label-based filtering for tunnels that support both, because local bias simplifies encapsulation, reduces NVE resource consumption, and decreases delay to multihomed hosts by always forwarding locally at the ingress NVE. This document enables that choice by configuration.

routing, mpls

design-rationale §2.1

SHT=00 is defined to be backwards compatible with RFC 8365 and RFC 7432, so that non-upgraded NVEs that ignore the SHT bits (treating them as 00) continue to behave correctly. This allows incremental deployment without requiring all NVEs on an ES to be upgraded simultaneously.

bgp, routing

interoperability-note §2.4

An NVE implementing RFC 7432 or RFC 8365 but not this specification is assumed to ignore all Flags in the ESI Label Extended Community except the Single-Active bit. This means such NVEs silently treat any SHT value as 00, which triggers the fallback-to-default mechanism in upgraded NVEs.

bgp, routing

interoperability-note §2.2

Geneve's default SHT depends on negotiation of the Ethernet Option TLV with a Source-ID: local bias is used if no ESI Label TLV is present, and ESI Label filtering is used if an Ethernet option TLV with a non-zero Source-ID is present. An explicit SHT=01 overrides this to force local bias regardless.

routing, bgp

interoperability-note §1.2

SRv6 uses an ESI filtering argument (Arg.FE2) in the service SID to identify the source ES of BUM packets, making its default split-horizon behavior analogous to ESI Label filtering. Both local bias (source IP) and ESI Label methods are supported.

routing, bgp

normative-requirement §2.4 MUST

All NVEs attached to an ES with an operational SHT value of 10 MUST advertise a valid, non-zero ESI Label. If the operational SHT value is 01, the ESI Label MAY be zero.

bgp, routing, mpls

normative-requirement §3 MUST

An A-D per ES route advertised with multiple encapsulations where some support only a single split-horizon method MUST use SHT=00, and treat-as-withdraw is applied if any other value is used.

bgp, routing

normative-requirement §2.2 MUST NOT

An egress NVE MUST NOT use an SHT value other than 00 when advertising an A-D per ES route with VXLAN (type 8), NVGRE (type 9), MPLS (type 10), or no BGP Tunnel Encapsulation Extended Community. If such a route is received with SHT != 00, it SHOULD apply treat-as-withdraw per RFC 7606.

bgp, routing, mpls

normative-requirement §2.2 MUST NOT

An SHT different than 00 MUST NOT be set if the 'Single-Active' bit is set. A received A-D per ES route where both the 'Single-Active' and SHT bits are non-zero MUST follow the treat-as-withdraw behavior in RFC 7606.

mpls, bgp, routing

normative-requirement §2.2 MUST NOT

An SHT value of 01 or 10 MUST NOT be used with encapsulations that support only one SHT (per Table 1), and MAY be used by encapsulations that support both SHTs.

mpls, bgp, routing

normative-requirement §3 MUST

For ESI Label-based split-horizon with Geneve encapsulation (SHT=10), the ESI Label MUST have a valid, non-zero value and the Ethernet option as defined in RFC 8926 MUST be advertised.

bgp, routing

normative-requirement §3 MUST

If an ES supports multiple encapsulations requiring different split-horizon methods, a distinct A-D per ES route (or group of routes) per split-horizon method MUST be advertised.

bgp, routing

normative-requirement §2.4 MUST

If an NVE changes its operational SHT from 01 (Local Bias) to 00 (Default SHT) due to a new non-upgraded NVE joining the ES, and it previously advertised a zero ESI Label, it MUST send an update with a valid, non-zero ESI Label (unless all non-upgraded NVEs support only local bias).

bgp, routing

normative-requirement §2.4 MUST

If an upgraded NVE receives at least one A-D per ES route for an ES with an SHT value of 00, it MUST revert its operational SHT to the default split-horizon method (per Table 1), irrespective of its administrative SHT.

bgp, routing

normative-requirement §2.2 MUST

In case of an inconsistency in the SHT value advertised by NVEs attached to the same ES for a given EVI, all NVEs MUST revert to the behavior in RFC 8365 and use the default SHT in Table 1, irrespective of the advertised SHT.

mpls, bgp, routing

normative-requirement §2.2 MUST

The SHT MUST have the same value in each Ethernet A-D per ES route that an NVE advertises for a given ES and a given encapsulation.

bgp, routing

protocol-element §2.4

Administrative SHT is the value advertised by an NVE in its A-D per ES route; operational SHT is the value actually used. The administrative SHT matches the operational SHT only if all NVEs attached to the ES advertise the same administrative SHT.

bgp, routing

protocol-element §1.2

The ESI Label-based split-horizon procedure uses an MPLS label corresponding to the source ESI appended by the ingress NVE. The egress NVE checks this label before forwarding a multi-destination frame to a local ES interface; if it matches the ESI of that interface, the frame is dropped to prevent BUM loops.

mpls, routing

protocol-element §1.2

The local-bias split-horizon procedure relies on the source IP address of the tunnel header to identify the ingress NVE. The egress NVE filters BUM frames on all local interfaces connected to ESs shared with the ingress NVE, while the ingress NVE locally replicates to all directly attached ESs regardless of DF election state.

routing, mpls

protocol-element §2.1

The Split-Horizon Type (SHT) field occupies the two high-order bits (bits 6 and 7) of the Flags octet in the ESI Label Extended Community. Values are: 00=Default SHT (backwards compatible), 01=Local Bias, 10=ESI Label-based filtering, 11=Unassigned.

mpls, routing, bgp

registry §5

IANA created the 'EVPN ESI Label Extended Community Flags' registry for the 1-octet Flags field of the ESI Label Extended Community. Bit positions 0-1 are 'Multihoming Redundancy Mode' (RFC 7432), bits 2-5 are Unassigned, and bits 6-7 are 'Split-Horizon Type' (RFC 9746). New registrations require IETF Review.

registry, bgp, routing

registry §5

IANA created the 'Multihoming Redundancy Mode' sub-registry: value 00=All-Active (RFC 7432), 01=Single-Active (RFC 7432), 10-11=Unassigned. Requires IETF Review for new registrations.

registry, bgp

registry §5

IANA created the 'Split-Horizon Type' sub-registry: value 00=Default SHT, 01=Local Bias, 10=ESI Label-based filtering (all RFC 9746), 11=Unassigned. Requires IETF Review for new registrations.

registry, bgp

security-consideration §4

Misconfiguration of the desired SHT could lead to forwarding behaviors that differ from the intended configuration. However, the document's mismatch-fallback mechanism ensures all NVEs on an ES converge to a common SHT, so an attacker modifying the SHT on a single NVE should not cause traffic disruption (assuming a valid SHT value) but may alter forwarding behavior.

security, routing

wire-format §2

The ESI Label Extended Community (Type=0x06, Sub-Type=0x01) contains a 1-octet Flags field, 1 octet Reserved, 1 octet Reserved, and a 3-octet ESI Label. The Flags octet encodes the Multihoming Redundancy Mode (bits 0-1) and Split-Horizon Type (bits 6-7).

mpls, bgp, routing