<?xml version="1.0" encoding="utf-8"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc2629 version 1.5.25 (Ruby 2.7.5) -->


<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [

<!ENTITY RFC7794 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.7794.xml">
<!ENTITY RFC7684 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.7684.xml">
<!ENTITY RFC8362 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8362.xml">
<!ENTITY I-D.boutros-bess-vxlan-evpn SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.boutros-bess-vxlan-evpn.xml">
<!ENTITY RFC7432 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.7432.xml">
]>

<?rfc toc="yes"?>
<?rfc sortrefs="yes"?>
<?rfc symrefs="yes"?>
<?rfc comments="yes"?>

<rfc ipr="trust200902" docName="draft-zzhang-lsr-anycast-affiliation-00" category="std" consensus="true">
  <front>
    <title abbrev="Anycast Affiliation">Anycast Affiliation Advertisement</title>

    <author initials="Z." surname="Zhang" fullname="Zhaohui Zhang">
      <organization>Juniper Networks</organization>
      <address>
        <email>zzhang@juniper.net</email>
      </address>
    </author>

    <date year="2022" month="March" day="07"/>

    <area>Routing</area>
    <workgroup>lsr</workgroup>
    <keyword>anycast affiliation</keyword>

    <abstract>


<t>This document specifies the advertisement of addresses affiliated with
an anycast address in ISIS/OSPF/BGP, and describes one example use of such
advertisement in VxLAN interconnect with EVPN.</t>



    </abstract>



  </front>

  <middle>


<section anchor="background" title="Background">

<t><xref target="I-D.boutros-bess-vxlan-evpn"/> describes how Ethernet VPN (EVPN) <xref target="RFC7432"/>
can be used to interconnect VXLAN/NVGRE networks over an MPLS/IP network.
In the following diagram copied from that draft,
a pair of gateways PE1/PE2, which are both VXLAN/NVGRE VTEPs and EVPN PEs,
connect a VXLAN/NVGRE site to the EVPN Data Center Interconnect (DCI).</t>

<figure><artwork><![CDATA[
                              +--------------+
                              |              |
              +---------+   +----+  MPLS  +----+  +---------+
     +-----+  |         |---|PE1 |        |PE3 |--|         |  +-----+
     |VTEP1|--|         |   +----+        +----+  |         |--|VTEP3|
     +-----+  |  VXLAN  |   +----+        +----+  |  VXLAN  |  +-----+
     +-----+  |         |---|PE2 |        |PE4 |--|         |  +-----+
     |VTEP2|--|         |   +----+Backbone+----+  |         |--|VTEP4|
     +-----+  +---------+     +--------------+    +---------+  +-----+

     |<--- Underlay IGP ---->|<-Overlay BGP->|<--- Underlay IGP --->| CP

     |<----- VXLAN --------->|<EVPN/PBB-EVPN>|<------ VXLAN ------->| DP
                             |<----MPLS----->|


      Legend: CP = Control Plane View           DP = Data Plane View
]]></artwork></figure>

<t>PE1/PE2 use a common anycast address as the source address of VXLAN/NVGRE
packets towards other VXLAN/NVGRE VTEPs. This serves two purposes as
stated in <xref target="I-D.boutros-bess-vxlan-evpn"/>:</t>

<t><list style="symbols">
  <t>It prevents any flip/flopping in the forwarding tables for the
MAC-to-VTEP associations</t>
  <t>It enables load-balancing via ECMP for DCI traffic among the
multi-homed PEs</t>
</list></t>

<t>Notice that load-balancing is only possible with ECMP - a VTEP uses the
anycast address as the destination address in its VXLAN/NVGRE packets towards
the DCI, and ECMP-based load-balancing can happen on any router from the
source VTEP towards PE1/PE2.</t>

<t>However, if the source VTEP knows that PE1/PE2’s specific non-anycast address
that are associated with the anycast address, it can load-balance traffic
using those specific addresses, even when there is no ECMP to PE1/PE2.</t>

<t>There are two ways for a VTEP to learn the affiliation of an address to an
anycast address:</t>

<t><list style="symbols">
  <t>Provisioning on the VTEPs - statically or from a controller</t>
  <t>Dynamic advertisement via IGP/BGP from the anycast address “owners”
(PE1/PE2)</t>
</list></t>

<t>This document specifies the dynamic advertisement of anycast address affiliation
via IGP/BGP, which can actually serve other general purposes as well.</t>

<t>Even though if a node advertises anycast and non-anycast local addresses
using existing methods (e.g. with ISIS’s N-bit) then others can derive that those
addresses are owned by the same advertiser, it is desired to explicitly
announce the non-anycast addresses affiliated with an anycast address
for the following reasons:</t>

<t><list style="symbols">
  <t>Just because a node advertises two addresses A and B it does not mean
A and B are exchangeable when another node needs to send traffic to it.
Explicit association should be known for the source node to choose
an “alias” address to send traffic.</t>
  <t>The affiliation may have to be one-way - if a node needs to send traffic to
an anycast address it can use the affiliated non-anycast addresses
(or even a transit node may choose to change the destination
address from anycast to an affiliated address) but the other way may not
be desired (or allowed at all in the case of transit node changing
destination address - otherwise loops could happen).</t>
  <t>A node may have different anycast addresses and it may be
necessary to associate different non-anycast addresses to different
non-anycast addresses.</t>
  <t>A node may also withdraw the affiliation advertisement
even when all the relevant addresses are still reachable. In that case,
only the affiliation is withdrawn, not the reachability.</t>
</list></t>

<t>For example, in the above VXLAN-EVPN
interconnect scenario, if PE2 looses all its EVPN peers, it may withdraw
anycast address affiliation advertisement and then the VTEPs can stop
sending traffic to it.</t>

</section>
<section anchor="specifications" title="Specifications">

<section anchor="isis-encoding" title="ISIS Encoding">

<t>A new “Anycast Affiliation sub-TLV” is defined for ISIS extended Reachability
TLVs <xref target="RFC7794"/>. It MAY be advertised with an anycast host prefix. Its value part includes a list of
affiliated local addresses. The number of affiliated addresses is determined
from the length of the sub-TLV.</t>

</section>
<section anchor="ospf-encoding" title="OSPF Encoding">

<t>A new “Anycast Affiliation sub-TLV” is defined for OSPFv2 Extended Prefix
TLVs <xref target="RFC7684"/>. It MAY be advertised with an anycast host prefix. Its value part includes a list of
affiliated local addresses. The number of affiliated addresses is determined
from the length of the sub-TLV.</t>

<t>A new “Anycast Affiliation sub-TLV” is defined for OSPFv3 Intra-Area-Prefix TLV
and Inter-Area-Prefix TLV <xref target="RFC8362"/>. It MAY be advertised with an anycast host prefix.
Its value part includes a list of affiliated local addresses.
The number of affiliated addresses is determined from the length of the sub-TLV.</t>

</section>
<section anchor="bgp-encoding" title="BGP Encoding">

<t>IPv4 (or IPv6) Address Specific Extended Communities with an
“Anycast Affiliation” sub-type (or type in case of IPv6) MAY be attached to the NLRI of an anycast
host prefix, one such extended community for each affiliated address.
The Global Administrator field of the extended community is set to the
affiliated address, and the Local Administrator field is set to 0.</t>

</section>
</section>
<section anchor="security-considerations" title="Security Considerations">

<t>To be provided.</t>

</section>
<section anchor="iana-considerations" title="IANA Considerations">

<t>IANA is requested to allocate the following:</t>

<t><list style="symbols">
  <t>A new sub-TLV type for “Anycast Affiliation” from the ISIS
“Sub-TLVs for TLVs 135, 235, 236, and 237” registry <xref target="RFC7794"/></t>
  <t>A new sub-TLV type for “Anycast Affiliation” from the
OSPFv2 Extended Prefix TLV Sub-TLVs” registry <xref target="RFC7684"/></t>
  <t>A new sub-TLV type for “Anycast Affiliation” from the
OSPFv3 Extended-LSA sub-TLV registry <xref target="RFC8362"/></t>
  <t>A new sub-type for “Anycast Affiliation” from the
Transitive IPv4-Address-Specific Extended Community Sub-Types registry and
Non-Transitive IPv4-Address-Specific Extended Community Sub-Types registry</t>
  <t>A new type for “Anycast Affiliation” from the
Transitive IPv6-Address-Specific Extended Community Types registry and
Non-Transitive IPv6-Address-Specific Extended Community Types registry</t>
</list></t>

</section>
<section anchor="acknowledgements" title="Acknowledgements">

<t>The author thanks Shraddha Hegde for her inputs and comments.</t>

</section>


  </middle>

  <back>

    <references title='Normative References'>

&RFC7794;
&RFC7684;
&RFC8362;


    </references>

    <references title='Informative References'>

&I-D.boutros-bess-vxlan-evpn;
&RFC7432;


    </references>



  </back>

</rfc>

