<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt"?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.6.17 (Ruby 3.0.4) -->

<!DOCTYPE rfc [
  <!ENTITY nbsp "&#160;">
  <!ENTITY zwsp "&#8203;">
  <!ENTITY nbhy "&#8209;">
  <!ENTITY wj "&#8288;">
]>

<?rfc comments="yes"?>

<rfc ipr="trust200902" docName="draft-ietf-bess-evpn-l3mh-proto-00" category="std" submissionType="IETF" consensus="true" tocInclude="true" sortRefs="true" symRefs="true" xmlns:xi="http://www.w3.org/2001/XInclude">
  <front>
    <title abbrev="EVPN L3MH">EVPN multi-homing support for L3 services</title>
    <author initials="P." surname="Brissette" fullname="Patrice Brissette" role="editor">
      <organization abbrev="Cisco">Cisco Systems</organization>
      <address>
        <email>pbrisset@cisco.com</email>
      </address>
    </author>    <author initials="M." surname="MacKenzie" fullname="Michael MacKenzie" role="editor">
      <organization abbrev="Cisco">Cisco Systems</organization>
      <address>
        <email>mimacken@cisco.com</email>
      </address>
    </author>
    <author initials="S." surname="Matsushima" fullname="Satoru Matsushima">
      <organization abbrev="Softbank">Softbank</organization>
      <address>
        <email>satoru.matsushima@g.softbank.co.jp</email>
      </address>
    </author>
    <author fullname="Wen Lin" initials="W." surname="Lin">
      <organization>Juniper</organization>
      <address>
        <email>wlin@juniper.com</email>
      </address>
    </author>
    <author fullname="Jorge Rabadan" initials="J." surname="Rabadan">
      <organization>Nokia</organization>
      <address>
        <email>jorge.rabadan@nokia.com</email>
      </address>
    </author>
    <date year="2026"/>
    <area>Routing</area>
    <workgroup>BESS Working Group</workgroup>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <t>This document describes the use of EVPN Ethernet Segment Link Aggregation
       Group (ES-LAG) technology to provide  multi-homing redundancy
        for Layer 3 services. The solution synchronizes ARP/ND, multicast state,
         and IGP routes between redundant PEs without requiring Layer 2 constructs
          or proprietary Inter-Chassis Communication protocols.</t>
    </abstract>
    <note title="Requirements Language">
      <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they appear in all capitals, as shown here.</t>
    </note>
  </front>

  <middle>


<section anchor="Introduction"><name>Introduction</name>

<t>Resilient L3VPN service to a CE requires multiple service PEs to run a
Multi-Chassis Link Aggregation Group mechanism, which previously required a 
proprietary ICL control plane link between them.</t>

<t>This document uses <xref target="RFC7432"/>, <xref target="RFC9135"/> and <xref target="RFC9136"/> 
procedures to bring EVPN based ES-LAG all-active multi-homing load-balancing to L3 
services focusing on
the L3VPN <xref target="RFC4364"/> use case to provide examples.</t>

<t>EVPN ES-LAG is completely transparent to a CE device,
and provides link and node level redundancy with load-balancing using the
existing BGP control plane required by the L3 services.</t>

<t>For example, the L3VPN service can be MPLS, VxLAN or SRv6 based, and does not
require EVPN signaling to remote neighbors.
The EVPN signaling is limited to the redundant service PEs sharing
a Ethernet Segment Identifier (ESI).
This is used to synchronize ARP/ND, multicast Join/Leave, and IGP routes
replacing need for ICL link.</t>

<figure title="EVPN ES-LAG Topology" anchor="fig-es-lag-bundle"><artwork><![CDATA[
                    +-----+
                    | PE3 |
                    +-----+
                 +-----------+
                 |  MPLS/IP  |
                 |   CORE    |
                 +-----------+
               +-----+   +-----+
               | PE1 |   | PE2 |
               +-----+   +-----+
                  |         |
                  I1       I2
                    \     /
                     \   /
                     +---+
                     |CE1|
                     +---+
]]></artwork></figure>

<t>Figure 1 shows an ES-LAG multi-homing topology where PE1 and PE2 are
part of the same redundancy group providing multi-homing to CE1 via
interfaces I1 and I2. PE1, PE2 and PE3 are attached to the same L3VPN thru the
core (running <xref target="RFC4364"/> and/or <xref target="RFC9136"/> procedures).
Interfaces I1 and I2 are Bundle-Ethernet interfaces running LACP protocol.
The CE device can be a layer-2 or layer-3 device connecting to the redundant
PEs over a single LACP LAG port.</t>

<t>In the case of a layer-3 CE device, this
document looks to solve the case of an IGP adjacency between PEs and CE.
Further study is needed to support BGP PE to CE protocols.
The core, shown as IP or MPLS enabled, provides wide range of L3 services.
ES-LAG multi-homing functionality is decoupled from those services in
the core and it focuses on providing multi-homing to CE. </t>

<t>To deliver resilient layer-3 services and provide traffic load-balancing towards
the access, the two service PEs advertise layer-3
reachability towards the layer-3 core and both be eligible to receive
traffic and forward towards the Access.</t>

<section anchor="problem-unicast"><name>Problems with unicast load-balancing from core to CE</name>

<t>The layer-2 hashing performed by CE over its LAG port means that only
one service PE may populate its ARP/ND cache. In <xref target="fig-es-lag-bundle"/>,
if CE1 ARP/ND responses always hash to PE1, then PE2's ARP/ND table remains empty.
Traffic from remote PEs can be received by either service PE. Traffic that
reaches PE2 does not find an ARP entry and is dropped.</t>

<t>Solution: Synchronize ARP/ND entries using EVPN RT-2 routes as described
in <xref target="solution-route-sync"/>.</t>

</section>
<section anchor="problem-multicast"><name>Problems with multicast from core to CE</name>

<t>Multicast IGMP/MLD join messages from CE may always hash to a single PE
due to LAG hashing behavior. When PIM runs on both redundant PEs, PIM hello
messages from each PE are not visible to the other PE because the CE cannot
switch traffic between LAG members. Both PEs become PIM Designated Router (DR).
However, IGMP joins for a given multicast group may hash to only one PE,
so only that PE programs the multicast route and sends PIM joins.</t>

<t>Solution: Synchronize IGMP/MLD state using EVPN RT-7/RT-8 routes as described
in <xref target="solution-igmp-route-sync"/>.</t>

</section>
<section anchor="problem-adj"><name>Problems with IGP adjacencies over the LAG port</name>

<t>A layer-3 CE device connecting to redundant PEs may establish an IGP
adjacency on the bundle port. The adjacency forms to only one PE, so IGP
customer routes are only present on that PE. This prevents load-balancing
benefits as only one PE advertises customer routes to the core.</t>

<figure title="IGP Adjacency over LAG Port" anchor="fig-igp-adjacency"><artwork><![CDATA[
                  <---------+
                            | IGP Adj
    +-------+               |
    |       | 192.0.2.1/24  |
    | PE1   +-----------+   |
    |       |           |   |
    |       |           |   +
    +-------+           |
                        |
        +               |  +------+
  RT5   |             L |  | CE1  +------>H1
  Sync  |             A +->+      |
        v             G |  |      |
                        |  |      +------>R1
    +-------+           |  +------+
    |       |           |    192.0.2.2/24
    | PE2   +-----------+
    |       | 192.0.2.1/24
    |       |
    +-------+

]]></artwork></figure>

<t><xref target="fig-igp-adjacency"/> provides an example of this use case, where CE1 forms
an IGP adjacency with PE1 (example: ISIS or OSPF),
and advertises its H1 and R1 routes into the IP-VRF
of PE1. PE1 may then redistribute this IGP route into the core as an L3
service. Any remote PEs are only aware of the service from PE1, and cannot
load balance through PE2 as well.</t>

<t>Solution: Synchronize IGP learned routes using EVPN RT-5 routes as described
in <xref target="solution-subnet-sync"/>.</t>

<t>Note: BGP PE-CE protocols require further study.</t>

</section>
<section anchor="problem-ac-aware"><name>Problems with supporting multiple subnets on same ES in all active mode</name>

<t>When a CE supports multiple subnets using VLANs over a single LAG interface,
each VLAN maps to a separate L3 sub-interface on the PE. When the PE synchronizes
host reachability using EVPN RT-2 routes, standard RT-2 advertisements do not
indicate which sub-interface (VLAN) the host belongs to. The peering PE cannot
determine the correct destination sub-interface when multiple sub-interfaces share
the same ESI.</t>

<t>The same problem occurs with IGMP/MLD route synchronization using RT-7 and RT-8.</t>

<t>Solution: Use the Ethernet Tag-ID field to carry the VLAN ID in all route sync
messages (RT-2, RT-5, RT-7, RT-8) to identify the specific sub-interface.</t>

<t>Note: This document focuses on L3 sub-interfaces. Mixed L2/L3 sub-interfaces
require further study.</t>

</section>
<section anchor="acronyms"><name>Acronyms</name>

<dl>
  <dt>BD:</dt>
  <dd>
    <t>Broadcast Domain</t>
  </dd>
  <dt>BE:</dt>
  <dd>
    <t>Bundle Ethernet Interface aka. L3 LAG interface</t>
  </dd>
  <dt>DF:</dt>
  <dd>
    <t>Designated Forwarder</t>
  </dd>
  <dt>DR:</dt>
  <dd>
    <t>Multicast Designated Router</t>
  </dd>
  <dt>EC:</dt>
  <dd>
    <t>BGP Extended Community</t>
  </dd>
  <dt>ES:</dt>
  <dd>
    <t>Ethernet Segment. When a customer site (device or network) is connected to
 one or more PEs via a set of Ethernet links, then that set of links is
 referred to as an 'Ethernet Segment'.</t>
  </dd>
  <dt>ESI:</dt>
  <dd>
    <t>Ethernet Segment Identifier.
 A unique non-zero identifier that identifies an Ethernet Segment is
 called an 'Ethernet Segment Identifier'.</t>
  </dd>
  <dt>ES-LAG:</dt>
  <dd>
    <t>This refers to multi-homing scenario where peering PEs, connected to same CE, 
	are two, three or more.</t>
  </dd>
  <dt>ETAG:</dt>
  <dd>
    <t>Ethernet Tag. An Ethernet tag identifies a particular broadcast domain, e.g., a VLAN.
 An EVPN instance consists of one or more broadcast domains.</t>
  </dd>
  <dt>EVI:</dt>
  <dd>
    <t>An EVPN instance spanning the Provider Edge (PE) devices
 participating in that EVPN. It is used to assist a L3 VRF for route synchronization.</t>
  </dd>
  <dt>GRT:</dt>
  <dd>
    <t>Global Routing Table</t>
  </dd>
  <dt>ICL:</dt>
  <dd>
    <t>Inter Chassis Link</t>
  </dd>
  <dt>IGMP:</dt>
  <dd>
    <t>Internet Group Management Protocol</t>
  </dd>
  <dt>IGP:</dt>
  <dd>
    <t>Interior Gateway Protocol</t>
  </dd>
  <dt>IP-VRF:</dt>
  <dd>
    <t>A VPN Routing and Forwarding table for IP routes on an PE.
 The IP routes could be populated by EVPN and IP-VPN address
 families.  An IP-VRF is also an instantiation of a layer 3 VPN in an PE.</t>
  </dd>
  <dt>MAC-VRF:</dt>
  <dd>
    <t>A Virtual Routing and Forwarding table for Media Access Control (MAC)
 addresses on a PE. A MAC-VRF is also an instantiation of an EVI in a PE</t>
  </dd>
  <dt>MC-LAG:</dt>
  <dd>
    <t>Multi-Chassis Link Aggregation Group (MC-LAG).</t>
  </dd>
  <dt>MLD:</dt>
  <dd>
    <t>Multicast Listener Discovery.</t>
  </dd>
  <dt>PE:</dt>
  <dd>
    <t>Provider Edge.</t>
  </dd>
  <dt>PIM:</dt>
  <dd>
    <t>Protocol Independent Multicast.</t>
  </dd>
  <dt>RD:</dt>
  <dd>
    <t>Route Distinguisher used in BGP.</t>
  </dd>
  <dt>RP:</dt>
  <dd>
    <t>Multicast Rendezvous Point.</t>
  </dd>
  <dt>RT:</dt>
  <dd>
    <t>Route-Targets used in BGP</t>
  </dd>
  <dt>RT-2:</dt>
  <dd>
    <t>EVPN route type 2, i.e., MAC/IP advertisement route, as defined
in <xref target="RFC7432"/>.</t>
  </dd>
  <dt>RT-5:</dt>
  <dd>
    <t>EVPN route type 5, i.e., IP Prefix route, as defined in
Section 3 of <xref target="RFC9136"/>.</t>
  </dd>
  <dt>RT-7:</dt>
  <dd>
    <t>EVPN route type 7, i.e., Multicast Join Synch Route, as defined in
Section 9.2 of <xref target="RFC9251"/>.</t>
  </dd>
  <dt>RT-8:</dt>
  <dd>
    <t>EVPN route type 8, i.e., Multicast Leave Synch Route, as defined in
Section 9.3 of <xref target="RFC9251"/>.</t>
  </dd>
</dl>

</section>
<section anchor="requirements"><name>Requirements</name>

<t>The multi-homing solution described in this document satisfies the following requirements:</t>

<t><list style="numbers">
  <t>MUST support Layer-3 access interfaces</t>
  <t>MUST support Layer-3 access sub-interfaces</t>
  <t>MUST support unicast and multicast VPN services</t>
  <t>SHOULD support IGP route synchronization</t>
  <t>SHOULD support global routing table (GRT) services</t>
  <t>MUST support all-active load-balancing mode</t>
  <t>MAY support single-active load-balancing mode</t>
  <t>MUST support port-active load-balancing mode</t>
  <t>SHOULD avoid Layer 2 constructs (EVI, MAC-VRF, BD, IRB) for L3 state synchronization</t>
</list></t>
</section>
</section> <!-- Introduction -->
<section anchor="solution-overview"><name>Solution Overview</name>

<t>This document defines EVPN-based route synchronization mechanisms to enable
all-active multi-homing for Layer 3 services. The solution uses existing EVPN
route types to synchronize state between PEs sharing an Ethernet Segment:</t>

<t><list style="symbols">
  <t>RT-2 (MAC/IP routes): Synchronize ARP/ND adjacencies</t>
  <t>RT-5 (IP Prefix routes): Synchronize IGP learned customer routes</t>
  <t>RT-7/RT-8 (Multicast Join/Leave): Synchronize IGMP/MLD state</t>
</list></t>

<t>Key design principles:</t>

<t><list style="symbols">
  <t>ESI identifies the shared LAG interface between redundant PEs</t>
  <t>Ethernet Tag-ID identifies the sub-interface (VLAN) for AC-aware scenarios</t>
  <t>IP-VRF Route Targets identify the VRF for route import/export</t>
  <t>ES-Import RT (optional) restricts distribution to ESI-attached PEs</t>
</list></t>

<t>The following sections describe detailed procedures for each synchronization type.</t>

</section>
<section anchor="solution"><name>Solution Details</name>

<section anchor="solution-example"><name>Example Topology</name>

<t>Consider the <xref target="fig-esi-to-vrf"/> topology, where two AC-aware 
bundling interfaces are configured. Interface BE1 on PE1 and PE2 shares a LAG
with switch SW1 and supports two customer VRFs with overlapping subnets on
VLAN 1 and VLAN 2. Interface BE2 supports a single customer VRF on native VLAN.</t>

<figure title="ARP/ND synchronization over different VRF(s)" anchor="fig-esi-to-vrf"><artwork><![CDATA[
+------
|     +-------+ BE1.1 (192.0.2.1/24)
| PE1 || BE1  +---------------------------------+
|     || ESI-1|                                 |
|     ||      | BE1.2 (192.0.2.2/24)            |
|     ||      +-------------------------+       |
|     +-------+                         |       |
|     |                                 |       |
|     +-------+ BE2 (198.51.100.1/24)   |       |
|     || BE2  +------------------+      |       |
|     || ESI-2|                  |      |       |
|     ||      |                 +v----+ |       |
|     ||      |                 |CE1  | |       |
|     +-------+                 |.2   | |       |
+------                         |CUST1| |       |
                                +^----+ |       |
+------                           |     +v-----+-v----+
|     +-------+                   |     |SW1   |      +-->H1(.2)
| PE2 || BE2  +-----<-------------+     |CUST2 |CUST1 |
|     || ESI-2| BE2 (198.51.100.1/24)   +^-----+-^----+
|     ||      |                         |       |
|     ||      |                         |       |
|     +-------+                         |       |
|     |                                 |       |
|     +-------+ BE1.2 (192.0.2.2/24)    |       |
|     || BE1  +-------------------------+       |
|     || ESI-1|                                 |
|     ||      | BE1.1 (192.0.2.1/24)            |
|     ||      +---------------------------------+
|     +-------+
+------

PE(1,2):
CUST1-VRF (IP-VRF1)
CUST2-VRF (IP-VRF2)

SW1:
CUST1-Subnet1: (192.0.2.1/24) (VLAN 1)
CUST2-Subnet1: (192.0.2.1/24) (VLAN 2)

CE1:
CUST1-Subnet: (198.51.100.1/24)

]]></artwork></figure>

<t>In this topology:</t>
<t><list style="symbols">
  <t>BE1 (ESI-1): Shared by CUST1-VRF and CUST2-VRF with sub-interfaces VLAN 1 and 2</t>
  <t>BE2 (ESI-2): Used only by CUST1-VRF on native VLAN</t>
</list></t>

<t>To synchronize state for CUST1-VRF, the solution uses:</t>

<t>Case 1 - Native interface (BE2 to CE1):</t>
<t><list style="symbols">
  <t>IP-VRF RT(s): Identifies CUST1-VRF</t>
  <t>ESI-2: Identifies BE2 interface</t>
  <t>Ethernet Tag-ID 0: Indicates native VLAN</t>
</list></t>

<t>Case 2 - Sub-interface (BE1.1 to SW1):</t>
<t><list style="symbols">
  <t>IP-VRF RT(s): Identifies CUST1-VRF</t>
  <t>ESI-1: Identifies BE1 interface</t>
  <t>Ethernet Tag-ID 1: Identifies VLAN 1 sub-interface</t>
</list></t>

</section>

<section anchor="l3vrf-route-target"><name>Route Target Usage</name>

<t>Route synchronization between peering PEs uses EVPN route types as defined
in <xref target="RFC7432"/> and <xref target="RFC9136"/>.</t>

<t> Routes SHOULD be advertised with the ES-Import Route Target to identify
the Layer-3 interface for which the information must be synchronized,
and with the EVI-RT Extended Community <xref target="RFC9251"/> to identify the
routing context (IP-VRF or GRT) in which synchronization occurs.
This limits route distribution to PEs attached to the same ESI and
ensures that the routes are applied to the correct IP-VRF at the
receiving PE. </t>

<t>Alternatively, synchronization routes MAY be advertised using the IP-VRF
route Targets. However, this approach may cause the routes to be distributed
to all remote PEs in the IP-VRF, including those that do not require the
synchronization information.</t>

<t>In <xref target="fig-esi-to-vrf"/>, CUST1 routes carry IP-VRF1 RT(s) and
CUST2 routes carry IP-VRF2 RT(s). When using ES-Import RT optimization, routes
also carry EVI-RT Extended Community with the corresponding IP-VRF RT.</t>

<t>Note: When VRF Route Targets are used, routes are distributed to all PEs
importing that VRF RT, not just ESI-attached PEs. However, only PEs with EVPN
SAFI enabled will process these routes, effectively limiting distribution to
EVPN-capable PEs.</t>

</section>

<section anchor="usage-evpn-instance"><name>EVPN Instance Usage</name>

<t>Unlike <xref target="RFC7432"/> MAC-VRF deployments, EVI is not required for
L3 multi-homing scenarios. The Route Distinguisher (RD) MAY be auto-generated
locally, and Route Targets are taken from the IP-VRF configuration.</t>

<t>For Global Routing Table (GRT) services, an EVPN instance MAY be assigned
to provide Route Targets as required by <xref target="RFC7432"/>. Alternatively,
users MAY explicitly configure Route Targets for GRT synchronization.</t>

<t>The solution synchronizes the following state types:</t>

<t><list style="symbols">
  <t>ARP/ND adjacencies (RT-2)</t>
  <t>IGMP/MLD join/leave (RT-7/RT-8)</t>
  <t>IGP learned routes (RT-5)</t>
</list></t>

</section>
<section anchor="mapping-for-l3-interface-to-esi"><name>Mapping for L3 Interface to ESI</name>

<t>The ESI represents the L3 LAG interface between PE and CEs.
This ESI is signaled using RT-4 with the ES-Import Route Target as described
in Section 8.1.1 of <xref target="RFC7432"/> so that the service PE peers can discover each
other's common ES.</t>

<t>In the example <xref target="fig-esi-to-vrf"/>, route-syncs from interface BE1
have IP-VRF RT(s) or ES-Import RT and EVI-RT EC with ESI 1 as an optimization.</t>

</section>
<section anchor="mapping-for-l3-sub-interface-to-ethernet-tag-id"><name>Mapping for L3 Sub-Interface to Ethernet Tag-id</name>

<t>The Ethernet Tag-id represents the sub-interface subnet on the L3
LAG interface between PE and CEs. This apply to all route-sync types
used for L3 multi-homing i.e., RT-2, RT-5, RT-7 and RT-8.</t>

<t>The Ethernet Tag ID encoded in synchronization routes is automatically derived from
the encapsulation VLAN tags of the Layer-3 interface, following the encoding rules
for single and double normalized VLAN identifiers defined in <xref target="RFC9744"/>, as described
below: </t>
<t><list style="symbols">
  <t>Untagged Layer-3 LAG interfaces use an Ethernet Tag ID value of zero.</t>
  <t>Singly tagged Layer-3 LAG interfaces encode a single normalized VLAN identifier (VID)
     in the lower 12 bits of the Ethernet Tag ID field.</t>
  <t>Doubly tagged Layer-3 LAG interfaces encode the outer normalized VID in the upper
     12 bits and the inner normalized VID in the lower 12 bits of the Ethernet Tag ID field.</t>
</list></t>

<t>For synchronization to operate correctly, PEs attached to the same multi-homed CE MUST use
consistent VLAN identifiers for the same multihomed CE.</t>

<t>In the example <xref target="fig-esi-to-vrf"/>, route-syncs from sub-interface BE1.1 (VLAN1)
is represented by Ethernet Tag Identifier with ID 1.</t>

</section>
<section anchor="solution-route-sync"><name>ARP/ND Synchronization</name>

<t>This section describes procedures for synchronizing ARP/ND adjacencies
between PEs using EVPN RT-2 routes, as defined in Section 10 of <xref target="RFC7432"/>,
with modifications for Layer 3 interfaces.</t>

<section anchor="local-adjacency-arpnd-learning"><name>Advertising ARP/ND Routes</name>

<t>When a PE learns an ARP or ND adjacency on a Layer 3 interface or sub-interface,
it MUST advertise an EVPN RT-2 route with non-zero ESI to synchronize the adjacency
with peer PEs. Unlike Layer 2 EVPN services, MAC-only RT-2 routes MUST NOT be
advertised, and Layer 2 forwarding state MUST NOT be programmed.</t>

<t>The RT-2 advertisement MUST include:</t>

<t><list style="symbols">
  <t>Non-zero ESI: Identifies the shared Ethernet Segment</t>
  <t>IP address and MAC address of the learned adjacency</t>
  <t>Ethernet Tag-ID: Set to VLAN ID for sub-interfaces, 0 for native interfaces</t>
</list></t>

<t>The RT-2 advertisement SHOULD include a label-1 value of zero and
SHOULD NOT include a label-2. In addition, the RT-2 advertisement
SHOULD NOT include any BGP Encapsulation Extended Communities <xref target="RFC9012"/>.</t>

<t>The route MUST carry at least one of the following route target options:</t>

<t><list style="symbols">
  <t>ES-Import Route Target (instead of IP-VRF RT) to restrict distribution to ESI-attached PEs</t>
  <t>EVI-RT Extended Community carrying the IP-VRF Route Target (required when using ES-Import RT)
  as defined in Section 9.5 of <xref target="RFC9251"/></t>
  </list></t>
  <t>or</t>
<t><list style="symbols">
  <t>IP-VRF Route Target(s) of the associated VRF</t>
</list></t>

<t> Note: If the same ARP/ND entry exists on different LAG interfaces but uses the same
subinterface normalized VLAN identifier (VID), the entry cannot be synchronized
across PEs.</t>

</section>
<section anchor="remote-arpnd-learning"><name>Processing Received ARP/ND Routes</name>

<t>A PE receiving an RT-2 synchronization route MUST:</t>

<t><list style="symbols">
  <t>Import the route only if both ES-Import RT and EVI-RT match the local configuration.
     Alternatively, the route MAY be imported if the IP-VRF RT matches the local IP-VRF
     import RT.</t>
  <t>Derive the local interface from the ESI</t>
  <t>Derive the sub-interface from the Ethernet Tag-ID (0 for native interface)</t>
  <t>Install the adjacency in the appropriate IP-VRF and interface</t>
  <t>Ignore the label value and BGP Encapsulation Extended Community value if
     present in the route.</t>
</list></t>

<t>A Route Reflector used to disseminate synchronization routes MUST ignore the label value
carried in those routes.</t>

<t>The treat-as-withdraw behavior defined in [RFC 7606] is applied to EVPN MAC/IP
Advertisement routes received with any of the following:</t>
<t><list style="symbols">
   <t>an ES-Import Extended Community that identifies a non-local Ethernet Segment;</t>
   <t>a non-local EVI-RT; or</t>
   <t>a reserved ESI, such as ESI-0 or ESI-MAC (all-FFs value).</t>
</list></t>
<t>In addition, a received RT-2 synchronization route MUST NOT trigger the programming of an
ARP/ND entry if the same entry has already been learned locally on the PE.</t>

</section>
</section>
<section anchor="solution-igmp-route-sync"><name>IGMP/MLD Synchronization</name>

<t>This section describes procedures for synchronizing IGMP/MLD join and leave
messages between PEs using EVPN RT-7 and RT-8 routes as defined in <xref target="RFC9251"/>.</t>

<section anchor="local-igmp-joinleave-learning"><name>Advertising IGMP/MLD Routes</name>

<t>When a PE receives an IGMP Join or MLD Report on a Layer 3 interface or
sub-interface, it MUST advertise an EVPN RT-7 route. When it receives an IGMP
Leave or MLD Done, it MUST advertise an EVPN RT-8 route.</t>

<t>The RT-7/RT-8 advertisement MUST include:</t>

<t><list style="symbols">
  <t>Non-zero ESI: Identifies the shared Ethernet Segment</t>
  <t>Multicast group and source information</t>
  <t>Ethernet Tag-ID: Set to VLAN ID for sub-interfaces, 0 for native interfaces</t>
</list></t>

<t>As per <xref target="local-adjacency-arpnd-learning"/>, the route SHOULD carry
ES-Import Route Target and EVI-RT Extended Community. Alternatively, the route
MAY carry IP-VRF Route Target(s) of the associated VRF.</t>

</section>
<section anchor="remote-igmp-joinleave-learning"><name>Processing Received IGMP/MLD Routes</name>

<t>A PE receiving an RT-7 or RT-8 synchronization route MUST:</t>

<t><list style="symbols">
  <t>Import the route only if IP-VRF Route Target matches a local VRF, OR both
  ES-Import RT and EVI-RT match local configuration</t>
  <t>Derive the local VRF from the matching Route Target or EVI-RT</t>
  <t>Derive the local interface from the ESI</t>
  <t>Derive the sub-interface from the Ethernet Tag-ID</t>
  <t>Install the multicast state in the appropriate VRF and interface</t>
</list></t>

</section> <!-- remote-igmp-joinleave-learning -->
</section> <!-- solution-igmp-route-sync -->

<section anchor="solution-subnet-sync"><name>IGP Route Synchronization</name>

<t>This section describes procedures for synchronizing IGP learned customer
routes between PEs using EVPN RT-5 routes as defined in Section 3 of
<xref target="RFC9136"/>.</t>

<t>When a CE forms an IGP adjacency on the LAG bundle, the adjacency may form
to only one PE. That PE learns customer routes via IGP and must synchronize
them to peer PEs so that all PEs can advertise the routes to the core and
provide load-balancing.</t>

<t>Two approaches are defined:</t>

<t><list style="numbers">
  <t>ESI-based approach</t>
  <t>IP Gateway-based approach</t>
</list></t>

 <section anchor="ESI-based-approach"><name>ESI-Based Approach</name>

   <t>With the ESI-based approach, the PE learning routes via IGP advertises an
   RT-5 route with the ESI of the Ethernet Segment.</t>

   <t>For <xref target="RFC4364"/> IP-VPN cores:</t>
   <t><list style="symbols">
     <t>PE1 advertises RT-5 with non-zero ESI and IP-VPN route for R1</t>
     <t>PE2 imports both routes, prefers the RT-5 due to non-zero ESI</t>
     <t>PE2 treats RT-5 as a local route and advertises new IP-VPN route</t>
     <t>Remote PEs receive IP-VPN routes from both PE1 and PE2 for load-balancing</t>
   </list></t>

   <t>For <xref target="RFC9136"/> EVPN IP-VRF-to-IP-VRF cores:</t>
   <t><list style="symbols">
     <t>PE1 advertises RT-5 with non-zero ESI</t>
     <t>PE2 synchronizes per Section 4.2 of <xref target="I-D.ietf-bess-evpn-ip-aliasing"/></t>
     <t>Both PEs advertise IP A-D routes for the ESI</t>
     <t>Remote PEs load-balance per Section 4 of <xref target="I-D.ietf-bess-evpn-ip-aliasing"/></t>
   </list></t>

 </section>

 <section anchor="IP-GW-based-approach"><name>IP Gateway-Based Approach</name>  

   <t>With the IP Gateway-based approach, the PE learning routes via IGP advertises
   an RT-5 route with the IP Gateway field set to the route's next-hop address.</t>

   <t>For <xref target="RFC4364"/> IP-VPN cores:</t>
   <t><list style="symbols">
     <t>PE1 advertises RT-5 with IP Gateway = nexthop and IP-VPN route for R1</t>
     <t>PE2 imports both routes, prefers RT-5</t>
     <t>PE2 resolves R1 via IP Gateway using synchronized ARP/ND from RT-2</t>
     <t>PE2 advertises new IP-VPN route for load-balancing</t>
   </list></t>

   <t>For <xref target="RFC9136"/> EVPN IP-VRF-to-IP-VRF cores:</t>
   <t><list style="symbols">
     <t>PE1 advertises RT-5 with IP Gateway = nexthop (no IP-VPN route needed)</t>
     <t>PE2 imports and resolves RT-5 via synchronized ARP/ND</t>
     <t>PE2 advertises RT-5 for R1</t>
     <t>Remote PEs load-balance to both PE1 and PE2</t>
   </list></t>

 </section>
 </section>
</section> <!-- solution -->

<section anchor="convergence-considerations"><name>Convergence Considerations</name>
<t>Entries synchronized via EVPN routes MAY be configured with a retention timer,
allowing them to be retained during failure scenarios, thereby improving
convergence and minimizing network churn.</t>

<t>The retention timer specifies how long a synchronized EVPN entry is retained
after the corresponding EVPN route is withdrawn by the Layer-3 LAG ES peer.
This mechanism is OPTIONAL, and the behavior for a synchronized entry is
as follows:</t>
<t><list style="symbols">
<t>When the EVPN route that originated the synchronized entry is withdrawn,
the retention timer is started and the entry is retained until the timer
expires.</t>
<t>For ARP/ND entries, while the retention timer is running, the PE attempts
to refresh the entry by sending ARP Requests or Neighbor Solicitation
messages to the IP owner.</t>
<t>For IGMP/MLD entries, while the retention timer is running, the PE attempts
to refresh the entry by sending group-specific Queries for the corresponding
multicast groups.</t>
</list></t>
</section>

<section anchor="overall-advantages"><name>Overall Advantages</name>

<t>The use of EVPN ES-LAG all active multi-homing brings the following benefits
to L3 BGP services:</t>

<t><list style="symbols">
  <t>Open standards based per interface all-active redundancy
mechanism that eliminates the need to run ICCP and LDP.</t>
  <t>Agnostic of underlay technology (MPLS, VXLAN, SRv6) and
associated services (L3, L3-VPN).</t>
  <t>Replaces legacy MC-LAG ICCP-based solution, and offers following
additional benefits:
  <list style="symbols">
      <t>Fast convergence with mass-withdraw is possible with EVPN.</t>
      <t>Avoid the need of a dedicated ICCP channel between peering PEs.</t>
  </list></t>
  <t> Removes the burden of having the need for ICL link and any proprietary
   protocols.</t>
</list></t>
</section>

<section anchor="security-considerations"><name>Security Considerations</name>
<t>The same Security Considerations described in <xref target="RFC7432"/> are valid for this
document.</t>
</section>

<section anchor="iana-considerations"><name>IANA Considerations</name>
<t>There are no IANA considerations.</t>
</section>

<section anchor="Acknowledgments"><name>Acknowledgments</name>
<t>The authors thank Ali Sajassi and Jeffrey Zhang for the discussions on the use case and solution options.</t>
</section>

  </middle>

  <back>

    <references title='Normative References'>
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-bess-evpn-ip-aliasing.xml"/>
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml"/>
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml"/>
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9012.xml"/>
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9135.xml"/>
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9136.xml"/>
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9251.xml"/>
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9744.xml"/>
    </references>

    <references title='Informative References'>
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4364.xml"/>
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7432.xml"/>
    </references>

    <section title="Contributors">
        <t>The following people has contributed substantially to this document:
        </t>
        <t>Jiri Chaloupka<br/>Cisco<br/>
           Email: jichalou@cisco.com</t>
        <t>Jayashree Subramanian<br/>Cisco<br/>
           Email: jays@cisco.com</t>
    </section>

  </back>
</rfc>

