<?xml version='1.0' encoding='utf-8'?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" version="3" category="std" consensus="true" docName="draft-ietf-bess-datacenter-gateway-13" indexInclude="true" ipr="trust200902" number="9125" prepTime="2021-08-28T10:08:47" scripts="Common,Latin" sortRefs="true" submissionType="IETF" symRefs="true" tocDepth="3" tocInclude="true" xml:lang="en">
  <link href="https://datatracker.ietf.org/doc/draft-ietf-bess-datacenter-gateway-13" rel="prev"/>
  <link href="https://dx.doi.org/10.17487/rfc9125" rel="alternate"/>
  <link href="urn:issn:2070-1721" rel="alternate"/>
  <front>
    <title abbrev="SR DC Gateways">Gateway Auto-Discovery and Route Advertisement for Site Interconnection Using Segment Routing</title>
    <seriesInfo name="RFC" value="9125" stream="IETF"/>
    <author fullname="Adrian Farrel" initials="A." surname="Farrel">
      <organization showOnFrontPage="true">Old Dog Consulting</organization>
      <address>
        <email>adrian@olddog.co.uk</email>
      </address>
    </author>
    <author fullname="John Drake" initials="J." surname="Drake">
      <organization showOnFrontPage="true">Juniper Networks</organization>
      <address>
        <email>jdrake@juniper.net</email>
      </address>
    </author>
    <author fullname="Eric Rosen" initials="E." surname="Rosen">
      <organization showOnFrontPage="true">Juniper Networks</organization>
      <address>
        <email>erosen52@gmail.com</email>
      </address>
    </author>
    <author fullname="Keyur Patel" initials="K." surname="Patel">
      <organization showOnFrontPage="true">Arrcus, Inc.</organization>
      <address>
        <email>keyur@arrcus.com</email>
      </address>
    </author>
    <author fullname="Luay Jalil" initials="L" surname="Jalil">
      <organization showOnFrontPage="true">Verizon</organization>
      <address>
        <email>luay.jalil@verizon.com</email>
      </address>
    </author>
    <date month="08" year="2021"/>
    <area>Routing</area>
    <workgroup>BESS</workgroup>
    <keyword>SR</keyword>
    <keyword>GW</keyword>
    <keyword>BGP</keyword>
    <abstract pn="section-abstract">
      <t indent="0" pn="section-abstract-1">Data centers are attached to the Internet or a backbone network by
      gateway routers.  One data center typically has more than one gateway
      for commercial, load-balancing, and resiliency reasons.  Other sites,
      such as access networks, also need to be connected across backbone
      networks through gateways.</t>
      <t indent="0" pn="section-abstract-2">This document defines a mechanism using the BGP Tunnel Encapsulation
      attribute to allow data center gateway routers to advertise routes to
      the prefixes reachable in the site, including advertising them on behalf
      of other gateways at the same site.  This allows segment routing to be
      used to identify multiple paths across the Internet or backbone network
      between different gateways.  The paths can be selected for
      load-balancing, resilience, and quality purposes.</t>
    </abstract>
    <boilerplate>
      <section anchor="status-of-memo" numbered="false" removeInRFC="false" toc="exclude" pn="section-boilerplate.1">
        <name slugifiedName="name-status-of-this-memo">Status of This Memo</name>
        <t indent="0" pn="section-boilerplate.1-1">
            This is an Internet Standards Track document.
        </t>
        <t indent="0" pn="section-boilerplate.1-2">
            This document is a product of the Internet Engineering Task Force
            (IETF).  It represents the consensus of the IETF community.  It has
            received public review and has been approved for publication by
            the Internet Engineering Steering Group (IESG).  Further
            information on Internet Standards is available in Section 2 of 
            RFC 7841.
        </t>
        <t indent="0" pn="section-boilerplate.1-3">
            Information about the current status of this document, any
            errata, and how to provide feedback on it may be obtained at
            <eref target="https://www.rfc-editor.org/info/rfc9125" brackets="none"/>.
        </t>
      </section>
      <section anchor="copyright" numbered="false" removeInRFC="false" toc="exclude" pn="section-boilerplate.2">
        <name slugifiedName="name-copyright-notice">Copyright Notice</name>
        <t indent="0" pn="section-boilerplate.2-1">
            Copyright (c) 2021 IETF Trust and the persons identified as the
            document authors. All rights reserved.
        </t>
        <t indent="0" pn="section-boilerplate.2-2">
            This document is subject to BCP 78 and the IETF Trust's Legal
            Provisions Relating to IETF Documents
            (<eref target="https://trustee.ietf.org/license-info" brackets="none"/>) in effect on the date of
            publication of this document. Please review these documents
            carefully, as they describe your rights and restrictions with
            respect to this document. Code Components extracted from this
            document must include Simplified BSD License text as described in
            Section 4.e of the Trust Legal Provisions and are provided without
            warranty as described in the Simplified BSD License.
        </t>
      </section>
    </boilerplate>
    <toc>
      <section anchor="toc" numbered="false" removeInRFC="false" toc="exclude" pn="section-toc.1">
        <name slugifiedName="name-table-of-contents">Table of Contents</name>
        <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1">
          <li pn="section-toc.1-1.1">
            <t indent="0" keepWithNext="true" pn="section-toc.1-1.1.1"><xref derivedContent="1" format="counter" sectionFormat="of" target="section-1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-introduction">Introduction</xref></t>
          </li>
          <li pn="section-toc.1-1.2">
            <t indent="0" keepWithNext="true" pn="section-toc.1-1.2.1"><xref derivedContent="2" format="counter" sectionFormat="of" target="section-2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-requirements-language">Requirements Language</xref></t>
          </li>
          <li pn="section-toc.1-1.3">
            <t indent="0" keepWithNext="true" pn="section-toc.1-1.3.1"><xref derivedContent="3" format="counter" sectionFormat="of" target="section-3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-site-gateway-auto-discovery">Site Gateway Auto-Discovery</xref></t>
          </li>
          <li pn="section-toc.1-1.4">
            <t indent="0" pn="section-toc.1-1.4.1"><xref derivedContent="4" format="counter" sectionFormat="of" target="section-4"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-relationship-to-bgp-link-st">Relationship to BGP - Link State and Egress Peer Engineering</xref></t>
          </li>
          <li pn="section-toc.1-1.5">
            <t indent="0" pn="section-toc.1-1.5.1"><xref derivedContent="5" format="counter" sectionFormat="of" target="section-5"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-advertising-a-site-route-ex">Advertising a Site Route Externally</xref></t>
          </li>
          <li pn="section-toc.1-1.6">
            <t indent="0" pn="section-toc.1-1.6.1"><xref derivedContent="6" format="counter" sectionFormat="of" target="section-6"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-encapsulation">Encapsulation</xref></t>
          </li>
          <li pn="section-toc.1-1.7">
            <t indent="0" pn="section-toc.1-1.7.1"><xref derivedContent="7" format="counter" sectionFormat="of" target="section-7"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-iana-considerations">IANA Considerations</xref></t>
          </li>
          <li pn="section-toc.1-1.8">
            <t indent="0" pn="section-toc.1-1.8.1"><xref derivedContent="8" format="counter" sectionFormat="of" target="section-8"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-security-considerations">Security Considerations</xref></t>
          </li>
          <li pn="section-toc.1-1.9">
            <t indent="0" pn="section-toc.1-1.9.1"><xref derivedContent="9" format="counter" sectionFormat="of" target="section-9"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-manageability-consideration">Manageability Considerations</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.9.2">
              <li pn="section-toc.1-1.9.2.1">
                <t indent="0" pn="section-toc.1-1.9.2.1.1"><xref derivedContent="9.1" format="counter" sectionFormat="of" target="section-9.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-relationship-to-route-targe">Relationship to Route Target Constraint</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.10">
            <t indent="0" pn="section-toc.1-1.10.1"><xref derivedContent="10" format="counter" sectionFormat="of" target="section-10"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-references">References</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.10.2">
              <li pn="section-toc.1-1.10.2.1">
                <t indent="0" pn="section-toc.1-1.10.2.1.1"><xref derivedContent="10.1" format="counter" sectionFormat="of" target="section-10.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-normative-references">Normative References</xref></t>
              </li>
              <li pn="section-toc.1-1.10.2.2">
                <t indent="0" pn="section-toc.1-1.10.2.2.1"><xref derivedContent="10.2" format="counter" sectionFormat="of" target="section-10.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-informative-references">Informative References</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.11">
            <t indent="0" pn="section-toc.1-1.11.1"><xref derivedContent="" format="none" sectionFormat="of" target="section-appendix.a"/><xref derivedContent="" format="title" sectionFormat="of" target="name-acknowledgements">Acknowledgements</xref></t>
          </li>
          <li pn="section-toc.1-1.12">
            <t indent="0" pn="section-toc.1-1.12.1"><xref derivedContent="" format="none" sectionFormat="of" target="section-appendix.b"/><xref derivedContent="" format="title" sectionFormat="of" target="name-authors-addresses">Authors' Addresses</xref></t>
          </li>
        </ul>
      </section>
    </toc>
  </front>
  <middle>
    <section anchor="introduction" numbered="true" toc="include" removeInRFC="false" pn="section-1">
      <name slugifiedName="name-introduction">Introduction</name>
      <t indent="0" pn="section-1-1">Data centers (DCs) are critical components of the infrastructure used
      by network operators to provide services to their customers.  DCs
      (sites) are interconnected by a backbone network, which consists of any
      number of private networks and/or the Internet.  DCs are attached to the
      backbone network by routers that are gateways (GWs).  One DC typically has more
      than one GW for various reasons including commercial preferences, load
      balancing, or resiliency against connection or device failure.</t>
      <t indent="0" pn="section-1-2">Segment Routing (SR) (<xref target="RFC8402" format="default" sectionFormat="of" derivedContent="RFC8402"/>) is a
      protocol mechanism that can be used within a DC as well as for steering
      traffic that flows between two DC sites.  In order for a source site
      (also known as an ingress site) that uses SR to load-balance the flows
      it sends to a destination site (also known as an egress site), it needs
      to know the complete set of entry nodes (i.e., GWs) for that egress DC
      from the backbone network connecting the two DCs.  Note that it is
      assumed that the connected set of DC sites and the border nodes in the
      backbone network on the paths that connect the DC sites are part of the
      same SR BGP - Link State (LS) instance (see <xref target="RFC7752" format="default" sectionFormat="of" derivedContent="RFC7752"/> and <xref target="RFC9086" format="default" sectionFormat="of" derivedContent="RFC9086"/>) so
      that traffic engineering using SR may be used for these flows.</t>
      <t indent="0" pn="section-1-3">Other sites, such as access networks, also need to be connected
      across backbone networks through gateways.  For illustrative purposes,
      consider the ingress and egress sites shown in <xref target="david_hockney" format="default" sectionFormat="of" derivedContent="Figure 1"/> as separate Autonomous Systems (ASes) (noting that
      the sites could be implemented as part of the ASes to which they are
      attached, or as separate ASes).  

      The various ASes that provide connectivity between the ingress and
      egress sites could each be constructed differently and use different
      technologies such as IP; MPLS using global table routing information
      from BGP; MPLS IP VPN; SR-MPLS IP VPN; or SRv6 IP VPN.

      That is, the ingress and egress sites can be connected by tunnels across
      a variety of technologies. This document describes how SR Segment
      Identifiers (SIDs) are used to identify the paths between the ingress
      and egress sites.</t>
      <t indent="0" pn="section-1-4">The solution described in this document is agnostic as to whether the
      transit ASes do or do not have SR capabilities.  The solution uses SR to
      stitch together path segments between GWs and through the Autonomous
      System Border Routers (ASBRs).  Thus, there is a requirement that the
      GWs and ASBRs are SR capable.  The solution supports the SR path being
      extended into the ingress and egress sites if they are SR capable.</t>
      <t indent="0" pn="section-1-5">The solution defined in this document can be seen in the broader
      context of site interconnection in <xref target="I-D.farrel-spring-sr-domain-interconnect" format="default" sectionFormat="of" derivedContent="SR-INTERCONNECT"/>.
      That document shows how other existing protocol elements may be combined
      with the solution defined in this document to provide a full system, but
      it is not a necessary reference for understanding this document.</t>
      <t indent="0" pn="section-1-6">Suppose that there are two gateways, GW1 and GW2 as shown in <xref target="david_hockney" format="default" sectionFormat="of" derivedContent="Figure 1"/>, for a given egress site and
      that they each advertise a route to prefix X, which is located within the
      egress site with each setting itself as next hop.  One might think that
      the GWs for X could be inferred from the routes' next-hop fields, but
      typically it is not the case that both routes get distributed across the
      backbone: rather only the best route, as selected by BGP, is
      distributed.  This precludes load-balancing flows across both GWs.</t>
      <figure anchor="david_hockney" align="left" suppress-title="false" pn="figure-1">
        <name slugifiedName="name-example-site-interconnectio">Example Site Interconnection</name>
        <artwork align="center" name="" type="" alt="" pn="section-1-7.1">
      -----------------                    ---------------------
     | Ingress         |                  | Egress     ------   |
     | Site            |                  | Site      |Prefix|  |
     |                 |                  |           |   X  |  |
     |                 |                  |            ------   |
     |       --        |                  |   ---          ---  |
     |      |GW|       |                  |  |GW1|        |GW2| |
      -------++--------                    ----+-----------+-+--
             | \                               |          /  |
             |  \                              |         /   |
             |  -+-------------        --------+--------+--  |
             | ||ASBR|     ----|      |----  |ASBR| |ASBR| | |
             | | ----     |ASBR+------+ASBR|  ----   ----  | |
             | |           ----|      |----                | |
             | |               |      |                    | |
             | |           ----|      |----                | |
             | | AS1      |ASBR+------+ASBR|           AS2 | |
             | |           ----|      |----                | |
             |  ---------------        --------------------  |
           --+-----------------------------------------------+--
          | |ASBR|                                       |ASBR| |
          |  ----               AS3                       ----  |
          |                                                     |
           -----------------------------------------------------
       </artwork>
      </figure>
      <t indent="0" pn="section-1-8">The obvious solution to this problem is to use the BGP feature that
      allows the advertisement of multiple paths in BGP (known as Add-Paths)
      (<xref target="RFC7911" format="default" sectionFormat="of" derivedContent="RFC7911"/>) to ensure that all routes to X
      get advertised by BGP.  However, even if this is done, the identity of
      the GWs will be lost as soon as the routes get distributed through an
      ASBR that will set itself to be the
      next hop.  And if there are multiple ASes in the
      backbone, not only will the next hop change several times, but the
      Add-Paths technique will experience scaling issues.  This all means that
      the Add-Paths approach is effectively limited to sites connected over a
      single AS.</t>
      <t indent="0" pn="section-1-9">This document defines a solution that overcomes this limitation and
      works equally well with a backbone constructed from one or more ASes
      using the Tunnel Encapsulation attribute (<xref target="RFC9012" format="default" sectionFormat="of" derivedContent="RFC9012"/>) as follows:
      </t>
      <ul empty="true" spacing="normal" bare="false" indent="3" pn="section-1-10">
        <li pn="section-1-10.1">When a GW to a given site advertises a route to a prefix X within
        that site, it will include a Tunnel Encapsulation attribute that
        contains the union of the Tunnel Encapsulation attributes advertised
        by each of the GWs to that site, including itself.</li>
      </ul>
      <t indent="0" pn="section-1-11">In other words, each route advertised by a GW identifies all of the
      GWs to the same site (see <xref target="DCGWautodisco" format="default" sectionFormat="of" derivedContent="Section 3"/> for a discussion of how GWs discover each other),
      i.e., the Tunnel Encapsulation attribute advertised by each GW contains
      multiple Tunnel TLVs, one or more from each active GW, and each Tunnel
      TLV will contain a Tunnel Egress Endpoint sub-TLV that identifies the GW
      for that Tunnel TLV.  Therefore, even if only one of the routes is
      distributed to other ASes, it will not matter how many times the next
      hop changes, as the Tunnel Encapsulation attribute will remain
      unchanged.</t>
      <t indent="0" pn="section-1-12">To put this in the context of <xref target="david_hockney" format="default" sectionFormat="of" derivedContent="Figure 1"/>, GW1 and GW2 discover each other as gateways for the
      egress site.  Both GW1 and GW2 advertise themselves as having routes to
      prefix X.  Furthermore, GW1 includes a Tunnel Encapsulation attribute,
      which is the union of its Tunnel Encapsulation attribute and GW2's
      Tunnel Encapsulation attribute.  Similarly, GW2 includes a Tunnel
      Encapsulation attribute, which is the union of its Tunnel Encapsulation
      attribute and GW1's Tunnel Encapsulation attribute.  The gateway in the
      ingress site can now see all possible paths to X in the egress site
      regardless of which route is propagated to it, and it can choose one or
      balance traffic flows as it sees fit.</t>
    </section>
    <section numbered="true" toc="include" removeInRFC="false" pn="section-2">
      <name slugifiedName="name-requirements-language">Requirements Language</name>
      <t indent="0" pn="section-2-1">
    The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
    "<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
    described in BCP 14 <xref target="RFC2119" format="default" sectionFormat="of" derivedContent="RFC2119"/> <xref target="RFC8174" format="default" sectionFormat="of" derivedContent="RFC8174"/> 
    when, and only when, they appear in all capitals, as shown here.
      </t>
    </section>
    <section anchor="DCGWautodisco" numbered="true" toc="include" removeInRFC="false" pn="section-3">
      <name slugifiedName="name-site-gateway-auto-discovery">Site Gateway Auto-Discovery</name>
      <t indent="0" pn="section-3-1">To allow a given site's GWs to auto-discover each other and to coordinate their operations,
        the following procedures are implemented:

      </t>
      <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-3-2">
        <li pn="section-3-2.1">A route target (<xref target="RFC4360" format="default" sectionFormat="of" derivedContent="RFC4360"/>) <bcp14>MUST</bcp14> be
        attached to each GW's auto-discovery route (defined below), and its
        value <bcp14>MUST</bcp14> be set to a value that indicates the site identifier.  The
        rules for constructing a route target are detailed in <xref target="RFC4360" format="default" sectionFormat="of" derivedContent="RFC4360"/>.  It is <bcp14>RECOMMENDED</bcp14> that a Type
        x00 or x02 route target be used.</li>
        <li pn="section-3-2.2">Site identifiers are set through configuration.  The site
        identifiers <bcp14>MUST</bcp14> be the same across all GWs to the site (i.e., the
        same identifier is used by all GWs to the same site) and <bcp14>MUST</bcp14> be
        unique across all sites that are connected (i.e., across all GWs to
        all sites that are interconnected).</li>
        <li pn="section-3-2.3">Each GW <bcp14>MUST</bcp14> construct an import filtering rule to import any
        route that carries a route target with the same site identifier that
        the GW itself uses.  This means that only these GWs will import those
        routes, and that all GWs to the same site will import each other's
        routes and will learn (auto-discover) the current set of active GWs
        for the site.</li>
      </ul>
      <t indent="0" pn="section-3-3">The auto-discovery route that each GW advertises consists of the following:
      </t>
      <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-3-4">
        <li pn="section-3-4.1">IPv4 or IPv6 Network Layer Reachability Information (NLRI) (<xref target="RFC4760" format="default" sectionFormat="of" derivedContent="RFC4760"/>) containing one of the GW's
        loopback addresses (that is, with an AFI/SAFI pair that is one of the 
        following: IPv4/NLRI used for unicast forwarding (1/1); IPv6/NLRI used for
        unicast forwarding (2/1); IPv4/NLRI with MPLS Labels (1/4); or
        IPv6/NLRI with MPLS Labels (2/4)).</li>
        <li pn="section-3-4.2">A Tunnel Encapsulation attribute (<xref target="RFC9012" format="default" sectionFormat="of" derivedContent="RFC9012"/>) containing the GW's encapsulation information
       encoded in one or more Tunnel TLVs.</li>
      </ul>
      <t indent="0" pn="section-3-5">To avoid the side effect of applying the Tunnel Encapsulation
      attribute to any packet that is addressed to the GW itself, the address
      advertised for auto-discovery <bcp14>MUST</bcp14> be a different
      loopback address than is advertised for packets directed to the gateway
      itself.</t>
      <t indent="0" pn="section-3-6">As described in <xref target="introduction" format="default" sectionFormat="of" derivedContent="Section 1"/>, each
      GW will include a Tunnel Encapsulation attribute with the GW
      encapsulation information for each of the site's active GWs (including
      itself) in every route advertised externally to that site.  As the
      current set of active GWs changes (due to the addition of a new GW or
      the failure/removal of an existing GW), each externally advertised route
      will be re-advertised with a new Tunnel Encapsulation attribute, which
      reflects the current set of active GWs.</t>
      <t indent="0" pn="section-3-7">If a gateway becomes disconnected from the backbone network, or if
      the site operator decides to terminate the gateway's activity, it
      <bcp14>MUST</bcp14> withdraw the advertisements described above.  This
      means that remote gateways at other sites will stop seeing
      advertisements from or about this gateway.  Note that if the routing
      within a site is broken (for example, such that there is a route from
      one GW to another but not in the reverse direction), then it is
      possible that incoming traffic will be routed to the wrong GW to reach
      the destination prefix; in this degraded network situation, traffic may
      be dropped.</t>
      <t indent="0" pn="section-3-8">Note that if a GW is (mis)configured with a different site identifier
      from the other GWs to the same site, then it will not be auto-discovered
      by the other GWs (and will not auto-discover the other GWs).  This would
      result in a GW for another site receiving only the Tunnel Encapsulation
      attribute included in the BGP best route, i.e., the Tunnel Encapsulation
      attribute of the (mis)configured GW or that of the other GWs.</t>
    </section>
    <section anchor="EPE" numbered="true" toc="include" removeInRFC="false" pn="section-4">
      <name slugifiedName="name-relationship-to-bgp-link-st">Relationship to BGP - Link State and Egress Peer Engineering</name>
      <t indent="0" pn="section-4-1">When a remote GW receives a route to a prefix X, it uses the Tunnel
      Egress Endpoint sub-TLVs in the containing Tunnel Encapsulation
      attribute to identify the GWs through which X can be reached.  It uses
      this information to compute SR Traffic Engineering (SR TE) paths across
      the backbone network looking at the information advertised to it in SR
      BGP - Link State (BGP-LS) (<xref target="RFC9085" format="default" sectionFormat="of" derivedContent="RFC9085"/>) and
      correlated using the site identity.  SR Egress Peer Engineering (EPE)
      (<xref target="RFC9086" format="default" sectionFormat="of" derivedContent="RFC9086"/>) can be used to supplement the information advertised
      in BGP-LS.</t>
    </section>
    <section anchor="advertising" numbered="true" toc="include" removeInRFC="false" pn="section-5">
      <name slugifiedName="name-advertising-a-site-route-ex">Advertising a Site Route Externally</name>
      <t indent="0" pn="section-5-1">When a packet destined for prefix X is sent on an SR TE path to a GW
      for the site containing X (that is, the packet is sent in the ingress
      site on an SR TE path that describes the whole path including those
      parts that are within the egress site), it needs to carry the receiving
      GW's SID for X such that this SID becomes the next SID that is due to be
      processed before the GW completes its processing of the packet.  To
      achieve this, each Tunnel TLV in the Tunnel Encapsulation attribute
      contains a Prefix-SID sub-TLV (<xref target="RFC9012" format="default" sectionFormat="of" derivedContent="RFC9012"/>) for X.</t>
      <t indent="0" pn="section-5-2">As defined in <xref target="RFC9012" format="default" sectionFormat="of" derivedContent="RFC9012"/>, the
      Prefix-SID sub-TLV is only for IPv4/IPV6 Labeled Unicast routes, so the
      solution described in this document only applies to routes of those
      types.  If the use of the Prefix-SID sub-TLV for routes of other types
      is defined in the future, further documents will be needed to describe
      their use for site interconnection consistent with this document.</t>
      <t indent="0" pn="section-5-3">Alternatively, if MPLS SR is in use and if the GWs for a given egress
      site are configured to allow GWs at remote ingress sites to perform SR
      TE through that egress site for a prefix X, then each GW to the egress
      site computes an SR TE path through the egress site to X and places each
      in an MPLS Label Stack sub-TLV (<xref target="RFC9012" format="default" sectionFormat="of" derivedContent="RFC9012"/>) in the SR Tunnel TLV for that GW.</t>
      <t indent="0" pn="section-5-4">Please refer to <xref target="I-D.farrel-spring-sr-domain-interconnect" sectionFormat="of" section="7" format="default" derivedLink="https://datatracker.ietf.org/doc/html/draft-farrel-spring-sr-domain-interconnect-06#section-7" derivedContent="SR-INTERCONNECT"/> for worked examples of how the SID stack
      is constructed in this case and how the advertisements would work.</t>
    </section>
    <section anchor="encaps" numbered="true" toc="include" removeInRFC="false" pn="section-6">
      <name slugifiedName="name-encapsulation">Encapsulation</name>
      <t indent="0" pn="section-6-1">
 If a site is configured to allow remote GWs to send packets to the site in
 the site's native encapsulation, then each GW to the site will also include
 multiple instances of a Tunnel TLV for that native encapsulation in
 externally advertised routes: one for each GW.  Each Tunnel TLV contains a
 Tunnel Egress Endpoint sub-TLV with the address of the GW that the Tunnel TLV
 identifies. A remote GW may then encapsulate a packet according to the rules
 defined via the sub-TLVs included in each of the Tunnel TLVs.</t>
    </section>
    <section anchor="iana" numbered="true" toc="include" removeInRFC="false" pn="section-7">
      <name slugifiedName="name-iana-considerations">IANA Considerations</name>
      <t indent="0" pn="section-7-1">
 IANA maintains the "BGP Tunnel Encapsulation Attribute Tunnel
 Types" registry in the "Border Gateway Protocol (BGP) Tunnel
 Encapsulation" registry.
</t>
      <t indent="0" pn="section-7-2">
 IANA had previously assigned the value 17 from this subregistry
 for "SR Tunnel", referencing this document as an Internet-Draft.
 At that time, the assignment policy for this range of the registry
 was "First Come First Served" <xref target="RFC8126" format="default" sectionFormat="of" derivedContent="RFC8126"/>.
</t>
      <t indent="0" pn="section-7-3">

IANA has marked that assignment as deprecated. IANA may reclaim that 
codepoint at such a time that the registry is depleted.

</t>
    </section>
    <section anchor="security" numbered="true" toc="include" removeInRFC="false" pn="section-8">
      <name slugifiedName="name-security-considerations">Security Considerations</name>
      <t indent="0" pn="section-8-1">From a protocol point of view, the mechanisms described in this
      document can leverage the security mechanisms already defined for BGP.
      Further discussion of security considerations for BGP may be found in
      the BGP specification itself (<xref target="RFC4271" format="default" sectionFormat="of" derivedContent="RFC4271"/>)
      and in the security analysis for BGP (<xref target="RFC4272" format="default" sectionFormat="of" derivedContent="RFC4272"/>).  The original discussion of the use of the TCP MD5
      signature option to protect BGP sessions is found in <xref target="RFC5925" format="default" sectionFormat="of" derivedContent="RFC5925"/>, while <xref target="RFC6952" format="default" sectionFormat="of" derivedContent="RFC6952"/> includes an analysis of BGP keying and authentication
      issues.</t>
      <t indent="0" pn="section-8-2">The mechanisms described in this document involve sharing routing or
      reachability information between sites, which may mean disclosing
      information that is normally contained within a site.  So it needs to be
      understood that normal security paradigms based on the boundaries of
      sites are weakened and interception of BGP messages may result in
      information being disclosed to third parties.  Discussion of these
      issues with respect to VPNs can be found in <xref target="RFC4364" format="default" sectionFormat="of" derivedContent="RFC4364"/>, while <xref target="RFC7926" format="default" sectionFormat="of" derivedContent="RFC7926"/>
      describes many of the issues associated with the exchange of topology or
      TE information between sites.</t>
      <t indent="0" pn="section-8-3">Particular exposures resulting from this work include:
      </t>
      <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-8-4">
        <li pn="section-8-4.1">Gateways to a site will know about all other gateways to the same
        site.  This feature applies within a site, so it is not a substantial
        exposure, but it does mean that if the BGP exchanges within a site can
        be snooped or if a gateway can be subverted, then an attacker may learn
        the full set of gateways to a site.  This would facilitate more
        effective attacks on that site.</li>
        <li pn="section-8-4.2">The existence of multiple gateways to a site becomes more visible
        across the backbone and even into remote sites.  This means that an
        attacker is able to prepare a more comprehensive attack than exists
        when only the locally attached backbone network (e.g., the AS that
        hosts the site) can see all of the gateways to a site.  For example, a
        Denial-of-Service attack on a single GW is mitigated by the existence
        of other GWs, but if the attacker knows about all the gateways, then
        the whole set can be attacked at once.</li>
        <li pn="section-8-4.3">A node in a site that does not have external BGP peering (i.e., is
        not really a site gateway and cannot speak BGP into the backbone
        network) may be able to get itself advertised as a gateway by letting
        other genuine gateways discover it (by speaking BGP to them within the
        site), so it may get those genuine gateways to advertise it as a
        gateway into the backbone network.  This would allow the malicious
        node to attract traffic without having to have secure BGP peerings
        with out-of-site nodes.</li>
        <li pn="section-8-4.4">An external party intercepting BGP messages anywhere between sites
        may learn information about the functioning of the sites and the
        locations of endpoints.  While this is not necessarily a significant
        security or privacy risk, it is possible that the disclosure of this
        information could be used by an attacker.</li>
        <li pn="section-8-4.5">If it is possible to modify a BGP message within the backbone, it
        may be possible to spoof the existence of a gateway.  This could cause
        traffic to be attracted to a specific node and might result in traffic
        not being delivered.
	</li>
      </ul>
      <t indent="0" pn="section-8-5">All of the issues in the list above could cause disruption to site
      interconnection, but they are not new protocol vulnerabilities so much
      as new exposures of information that <bcp14>SHOULD</bcp14> be protected
      against using existing protocol mechanisms such as securing the TCP
      sessions over which the BGP messages flow.  Furthermore, it is a general
      observation that if these attacks are possible, then it is highly likely
      that far more significant attacks can be made on the routing system.  It
      should be noted that BGP peerings are not discovered but always arise
      from explicit configuration.</t>
      <t indent="0" pn="section-8-6">Given that the gateways and ASBRs are connected by tunnels that may
      run across parts of the network that are not trusted, data center
      operators using the approach set out in this network <bcp14>MUST</bcp14>
      consider using gateway-to-gateway encryption to protect the data center
      traffic.  Additionally, due consideration <bcp14>MUST</bcp14> be given
      to encrypting end-to-end traffic as it would be for any traffic that
      uses a public or untrusted network for transport.</t>
    </section>
    <section anchor="manageability" numbered="true" toc="include" removeInRFC="false" pn="section-9">
      <name slugifiedName="name-manageability-consideration">Manageability Considerations</name>
      <t indent="0" pn="section-9-1">The principal configuration item added by this solution is the
      allocation of a site identifier.  The same identifier
      <bcp14>MUST</bcp14> be assigned to every GW to the same site, and each
      site <bcp14>MUST</bcp14> have a different identifier.  This requires
      coordination, probably through a central management agent.</t>
      <t indent="0" pn="section-9-2">It should be noted that BGP peerings are not discovered but always
      arise from explicit configuration.  This is no different from any other
      BGP operation.</t>
      <t indent="0" pn="section-9-3">The site identifiers that are configured and carried in route targets
      (see <xref target="DCGWautodisco" format="default" sectionFormat="of" derivedContent="Section 3"/>) are an important
      feature to ensure that all of the gateways to a site discover each
      other.  Therefore, it is important that this value is not misconfigured
      since that would result in the gateways not discovering each other and
      not advertising each other.</t>
      <section anchor="rtc" numbered="true" toc="include" removeInRFC="false" pn="section-9.1">
        <name slugifiedName="name-relationship-to-route-targe">Relationship to Route Target Constraint</name>
        <t indent="0" pn="section-9.1-1">

 In order to limit the VPN routing information that is maintained at a given
 route reflector, <xref target="RFC4364" format="default" sectionFormat="of" derivedContent="RFC4364"/> suggests that route reflectors use
 "Cooperative Route Filtering", which was renamed "Outbound Route Filtering"
 and defined in <xref target="RFC5291" format="default" sectionFormat="of" derivedContent="RFC5291"/>.


<xref target="RFC4684" format="default" sectionFormat="of" derivedContent="RFC4684"/> defines an extension to that
        mechanism to include support for multiple autonomous systems and
        asymmetric VPN topologies such as hub-and-spoke.  The mechanism in RFC
        4684 is known as Route Target Constraint (RTC).</t>
        <t indent="0" pn="section-9.1-2">An operator would not normally configure RTC by default for any
        AFI/SAFI combination and would only enable it after careful
        consideration.  When using the mechanisms defined in this document,
        the operator should carefully consider the effects of filtering
        routes.  In some cases, this may be desirable, and in others, it could
        limit the effectiveness of the procedures.</t>
      </section>
    </section>
  </middle>
  <back>
    <displayreference target="I-D.farrel-spring-sr-domain-interconnect" to="SR-INTERCONNECT"/>
    <references pn="section-10">
      <name slugifiedName="name-references">References</name>
      <references pn="section-10.1">
        <name slugifiedName="name-normative-references">Normative References</name>
        <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119" quoteTitle="true" derivedAnchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author initials="S." surname="Bradner" fullname="S. Bradner">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="1997" month="March"/>
            <abstract>
              <t indent="0">In many standards track documents several words are used to signify the requirements in the specification.  These words are often capitalized. This document defines these words as they should be interpreted in IETF documents.  This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC4271" target="https://www.rfc-editor.org/info/rfc4271" quoteTitle="true" derivedAnchor="RFC4271">
          <front>
            <title>A Border Gateway Protocol 4 (BGP-4)</title>
            <author initials="Y." surname="Rekhter" fullname="Y. Rekhter" role="editor">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="T." surname="Li" fullname="T. Li" role="editor">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="S." surname="Hares" fullname="S. Hares" role="editor">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2006" month="January"/>
            <abstract>
              <t indent="0">This document discusses the Border Gateway Protocol (BGP), which is an inter-Autonomous System routing protocol.</t>
              <t indent="0">The primary function of a BGP speaking system is to exchange network reachability information with other BGP systems.  This network reachability information includes information on the list of Autonomous Systems (ASes) that reachability information traverses. This information is sufficient for constructing a graph of AS connectivity for this reachability from which routing loops may be pruned, and, at the AS level, some policy decisions may be enforced.</t>
              <t indent="0">BGP-4 provides a set of mechanisms for supporting Classless Inter-Domain Routing (CIDR).  These mechanisms include support for advertising a set of destinations as an IP prefix, and eliminating the concept of network "class" within BGP.  BGP-4 also introduces mechanisms that allow aggregation of routes, including aggregation of AS paths.</t>
              <t indent="0">This document obsoletes RFC 1771.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4271"/>
          <seriesInfo name="DOI" value="10.17487/RFC4271"/>
        </reference>
        <reference anchor="RFC4360" target="https://www.rfc-editor.org/info/rfc4360" quoteTitle="true" derivedAnchor="RFC4360">
          <front>
            <title>BGP Extended Communities Attribute</title>
            <author initials="S." surname="Sangli" fullname="S. Sangli">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="D." surname="Tappan" fullname="D. Tappan">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="Y." surname="Rekhter" fullname="Y. Rekhter">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2006" month="February"/>
            <abstract>
              <t indent="0">This document describes the "extended community" BGP-4 attribute.  This attribute provides a mechanism for labeling information carried in BGP-4.  These labels can be used to control the distribution of this information, or for other applications.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4360"/>
          <seriesInfo name="DOI" value="10.17487/RFC4360"/>
        </reference>
        <reference anchor="RFC4760" target="https://www.rfc-editor.org/info/rfc4760" quoteTitle="true" derivedAnchor="RFC4760">
          <front>
            <title>Multiprotocol Extensions for BGP-4</title>
            <author initials="T." surname="Bates" fullname="T. Bates">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="R." surname="Chandra" fullname="R. Chandra">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="D." surname="Katz" fullname="D. Katz">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="Y." surname="Rekhter" fullname="Y. Rekhter">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2007" month="January"/>
            <abstract>
              <t indent="0">This document defines extensions to BGP-4 to enable it to carry routing information for multiple Network Layer protocols (e.g., IPv6, IPX, L3VPN, etc.).  The extensions are backward compatible - a router that supports the extensions can interoperate with a router that doesn't support the extensions.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4760"/>
          <seriesInfo name="DOI" value="10.17487/RFC4760"/>
        </reference>
        <reference anchor="RFC5925" target="https://www.rfc-editor.org/info/rfc5925" quoteTitle="true" derivedAnchor="RFC5925">
          <front>
            <title>The TCP Authentication Option</title>
            <author initials="J." surname="Touch" fullname="J. Touch">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="A." surname="Mankin" fullname="A. Mankin">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="R." surname="Bonica" fullname="R. Bonica">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2010" month="June"/>
            <abstract>
              <t indent="0">This document specifies the TCP Authentication Option (TCP-AO), which obsoletes the TCP MD5 Signature option of RFC 2385 (TCP MD5).  TCP-AO specifies the use of stronger Message Authentication Codes (MACs), protects against replays even for long-lived TCP connections, and provides more details on the association of security with TCP connections than TCP MD5.  TCP-AO is compatible with either a static Master Key Tuple (MKT) configuration or an external, out-of-band MKT management mechanism; in either case, TCP-AO also protects connections when using the same MKT across repeated instances of a connection, using traffic keys derived from the MKT, and coordinates MKT changes between endpoints.  The result is intended to support current infrastructure uses of TCP MD5, such as to protect long-lived connections (as used, e.g., in BGP and LDP), and to support a larger set of MACs with minimal other system and operational changes.  TCP-AO uses a different option identifier than TCP MD5, even though TCP-AO and TCP MD5 are never permitted to be used simultaneously.  TCP-AO supports IPv6, and is fully compatible with the proposed requirements for the replacement of TCP MD5.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5925"/>
          <seriesInfo name="DOI" value="10.17487/RFC5925"/>
        </reference>
        <reference anchor="RFC7752" target="https://www.rfc-editor.org/info/rfc7752" quoteTitle="true" derivedAnchor="RFC7752">
          <front>
            <title>North-Bound Distribution of Link-State and Traffic Engineering (TE) Information Using BGP</title>
            <author initials="H." surname="Gredler" fullname="H. Gredler" role="editor">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="J." surname="Medved" fullname="J. Medved">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="S." surname="Previdi" fullname="S. Previdi">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="A." surname="Farrel" fullname="A. Farrel">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="S." surname="Ray" fullname="S. Ray">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2016" month="March"/>
            <abstract>
              <t indent="0">In a number of environments, a component external to a network is called upon to perform computations based on the network topology and current state of the connections within the network, including Traffic Engineering (TE) information.  This is information typically distributed by IGP routing protocols within the network.</t>
              <t indent="0">This document describes a mechanism by which link-state and TE information can be collected from networks and shared with external components using the BGP routing protocol.  This is achieved using a new BGP Network Layer Reachability Information (NLRI) encoding format.  The mechanism is applicable to physical and virtual IGP links.  The mechanism described is subject to policy control.</t>
              <t indent="0">Applications of this technique include Application-Layer Traffic Optimization (ALTO) servers and Path Computation Elements (PCEs).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7752"/>
          <seriesInfo name="DOI" value="10.17487/RFC7752"/>
        </reference>
        <reference anchor="RFC8174" target="https://www.rfc-editor.org/info/rfc8174" quoteTitle="true" derivedAnchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author initials="B." surname="Leiba" fullname="B. Leiba">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2017" month="May"/>
            <abstract>
              <t indent="0">RFC 2119 specifies common key words that may be used in protocol  specifications.  This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the  defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="RFC9012" target="https://www.rfc-editor.org/info/rfc9012" quoteTitle="true" derivedAnchor="RFC9012">
          <front>
            <title>The BGP Tunnel Encapsulation Attribute</title>
            <author initials="K." surname="Patel" fullname="K. Patel">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="G." surname="Van de Velde" fullname="G. Van de Velde">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="S." surname="Sangli" fullname="S. Sangli">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="J." surname="Scudder" fullname="J. Scudder">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2021" month="April"/>
            <abstract>
              <t indent="0">This document defines a BGP path attribute known as the "Tunnel Encapsulation attribute", which can be used with BGP UPDATEs of various Subsequent Address Family Identifiers (SAFIs) to provide information needed to create tunnels and their corresponding encapsulation headers. It provides encodings for a number of tunnel types, along with procedures for choosing between alternate tunnels and routing packets into tunnels.</t>
              <t indent="0">This document obsoletes RFC 5512, which provided an earlier definition of the Tunnel Encapsulation attribute. RFC 5512 was never deployed in production. Since RFC 5566 relies on RFC 5512, it is likewise obsoleted. This document updates RFC 5640 by indicating that the Load-Balancing Block sub-TLV may be included in any Tunnel Encapsulation attribute where load balancing is desired.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9012"/>
          <seriesInfo name="DOI" value="10.17487/RFC9012"/>
        </reference>
      </references>
      <references pn="section-10.2">
        <name slugifiedName="name-informative-references">Informative References</name>
        <reference anchor="RFC4272" target="https://www.rfc-editor.org/info/rfc4272" quoteTitle="true" derivedAnchor="RFC4272">
          <front>
            <title>BGP Security Vulnerabilities Analysis</title>
            <author initials="S." surname="Murphy" fullname="S. Murphy">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2006" month="January"/>
            <abstract>
              <t indent="0">Border Gateway Protocol 4 (BGP-4), along with a host of other infrastructure protocols designed before the Internet environment became perilous, was originally designed with little consideration for protection of the information it carries.  There are no mechanisms internal to BGP that protect against attacks that modify, delete, forge, or replay data, any of which has the potential to disrupt overall network routing behavior.</t>
              <t indent="0">This document discusses some of the security issues with BGP routing data dissemination.  This document does not discuss security issues with forwarding of packets.  This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4272"/>
          <seriesInfo name="DOI" value="10.17487/RFC4272"/>
        </reference>
        <reference anchor="RFC4364" target="https://www.rfc-editor.org/info/rfc4364" quoteTitle="true" derivedAnchor="RFC4364">
          <front>
            <title>BGP/MPLS IP Virtual Private Networks (VPNs)</title>
            <author initials="E." surname="Rosen" fullname="E. Rosen">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="Y." surname="Rekhter" fullname="Y. Rekhter">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2006" month="February"/>
            <abstract>
              <t indent="0">This document describes a method by which a Service Provider may use an IP backbone to provide IP Virtual Private Networks (VPNs) for its customers.  This method uses a "peer model", in which the customers' edge routers (CE routers) send their routes to the Service Provider's edge routers (PE routers); there is no "overlay" visible to the customer's routing algorithm, and CE routers at different sites do not peer with each other.  Data packets are tunneled through the backbone, so that the core routers do not need to know the VPN routes.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4364"/>
          <seriesInfo name="DOI" value="10.17487/RFC4364"/>
        </reference>
        <reference anchor="RFC4684" target="https://www.rfc-editor.org/info/rfc4684" quoteTitle="true" derivedAnchor="RFC4684">
          <front>
            <title>Constrained Route Distribution for Border Gateway Protocol/MultiProtocol Label Switching (BGP/MPLS) Internet Protocol (IP) Virtual Private Networks (VPNs)</title>
            <author initials="P." surname="Marques" fullname="P. Marques">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="R." surname="Bonica" fullname="R. Bonica">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="L." surname="Fang" fullname="L. Fang">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="L." surname="Martini" fullname="L. Martini">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="R." surname="Raszuk" fullname="R. Raszuk">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="K." surname="Patel" fullname="K. Patel">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="J." surname="Guichard" fullname="J. Guichard">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2006" month="November"/>
            <abstract>
              <t indent="0">This document defines Multi-Protocol BGP (MP-BGP) procedures that allow BGP speakers to exchange Route Target reachability information.  This information can be used to build a route distribution graph in order to limit the propagation of Virtual Private Network (VPN) Network Layer Reachability Information (NLRI) between different autonomous systems or distinct clusters of the same autonomous system.  This document updates RFC 4364.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4684"/>
          <seriesInfo name="DOI" value="10.17487/RFC4684"/>
        </reference>
        <reference anchor="RFC5291" target="https://www.rfc-editor.org/info/rfc5291" quoteTitle="true" derivedAnchor="RFC5291">
          <front>
            <title>Outbound Route Filtering Capability for BGP-4</title>
            <author initials="E." surname="Chen" fullname="E. Chen">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="Y." surname="Rekhter" fullname="Y. Rekhter">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2008" month="August"/>
            <abstract>
              <t indent="0">This document defines a BGP-based mechanism that allows a BGP speaker to send to its BGP peer a set of Outbound Route Filters (ORFs) that the peer would use to constrain/filter its outbound routing updates to the speaker.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5291"/>
          <seriesInfo name="DOI" value="10.17487/RFC5291"/>
        </reference>
        <reference anchor="RFC6952" target="https://www.rfc-editor.org/info/rfc6952" quoteTitle="true" derivedAnchor="RFC6952">
          <front>
            <title>Analysis of BGP, LDP, PCEP, and MSDP Issues According to the Keying and Authentication for Routing Protocols (KARP) Design Guide</title>
            <author initials="M." surname="Jethanandani" fullname="M. Jethanandani">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="K." surname="Patel" fullname="K. Patel">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="L." surname="Zheng" fullname="L. Zheng">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2013" month="May"/>
            <abstract>
              <t indent="0">This document analyzes TCP-based routing protocols, the Border Gateway Protocol (BGP), the Label Distribution Protocol (LDP), the Path Computation Element Communication Protocol (PCEP), and the Multicast Source Distribution Protocol (MSDP), according to guidelines set forth in Section 4.2 of "Keying and Authentication for            Routing Protocols Design Guidelines", RFC 6518.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6952"/>
          <seriesInfo name="DOI" value="10.17487/RFC6952"/>
        </reference>
        <reference anchor="RFC7911" target="https://www.rfc-editor.org/info/rfc7911" quoteTitle="true" derivedAnchor="RFC7911">
          <front>
            <title>Advertisement of Multiple Paths in BGP</title>
            <author initials="D." surname="Walton" fullname="D. Walton">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="A." surname="Retana" fullname="A. Retana">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="E." surname="Chen" fullname="E. Chen">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="J." surname="Scudder" fullname="J. Scudder">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2016" month="July"/>
            <abstract>
              <t indent="0">This document defines a BGP extension that allows the advertisement of multiple paths for the same address prefix without the new paths implicitly replacing any previous ones.  The essence of the extension is that each path is identified by a Path Identifier in addition to the address prefix.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7911"/>
          <seriesInfo name="DOI" value="10.17487/RFC7911"/>
        </reference>
        <reference anchor="RFC7926" target="https://www.rfc-editor.org/info/rfc7926" quoteTitle="true" derivedAnchor="RFC7926">
          <front>
            <title>Problem Statement and Architecture for Information Exchange between Interconnected Traffic-Engineered Networks</title>
            <author initials="A." surname="Farrel" fullname="A. Farrel" role="editor">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="J." surname="Drake" fullname="J. Drake">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="N." surname="Bitar" fullname="N. Bitar">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="G." surname="Swallow" fullname="G. Swallow">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="D." surname="Ceccarelli" fullname="D. Ceccarelli">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="X." surname="Zhang" fullname="X. Zhang">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2016" month="July"/>
            <abstract>
              <t indent="0">In Traffic-Engineered (TE) systems, it is sometimes desirable to establish an end-to-end TE path with a set of constraints (such as bandwidth) across one or more networks from a source to a destination.  TE information is the data relating to nodes and TE links that is used in the process of selecting a TE path.  TE information is usually only available within a network.  We call such a zone of visibility of TE information a domain.  An example of a domain may be an IGP area or an Autonomous System.</t>
              <t indent="0">In order to determine the potential to establish a TE path through a series of connected networks, it is necessary to have available a certain amount of TE information about each network.  This need not be the full set of TE information available within each network but does need to express the potential of providing TE connectivity. This subset of TE information is called TE reachability information.</t>
              <t indent="0">This document sets out the problem statement for the exchange of TE information between interconnected TE networks in support of end-to-end TE path establishment and describes the best current practice architecture to meet this problem statement.  For reasons that are explained in this document, this work is limited to simple TE constraints and information that determine TE reachability.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="206"/>
          <seriesInfo name="RFC" value="7926"/>
          <seriesInfo name="DOI" value="10.17487/RFC7926"/>
        </reference>
        <reference anchor="RFC8126" target="https://www.rfc-editor.org/info/rfc8126" quoteTitle="true" derivedAnchor="RFC8126">
          <front>
            <title>Guidelines for Writing an IANA Considerations Section in RFCs</title>
            <author initials="M." surname="Cotton" fullname="M. Cotton">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="B." surname="Leiba" fullname="B. Leiba">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="T." surname="Narten" fullname="T. Narten">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2017" month="June"/>
            <abstract>
              <t indent="0">Many protocols make use of points of extensibility that use constants to identify various protocol parameters.  To ensure that the values in these fields do not have conflicting uses and to promote interoperability, their allocations are often coordinated by a central record keeper.  For IETF protocols, that role is filled by the Internet Assigned Numbers Authority (IANA).</t>
              <t indent="0">To make assignments in a given registry prudently, guidance describing the conditions under which new values should be assigned, as well as when and how modifications to existing values can be made, is needed.  This document defines a framework for the documentation of these guidelines by specification authors, in order to assure that the provided guidance for the IANA Considerations is clear and addresses the various issues that are likely in the operation of a registry.</t>
              <t indent="0">This is the third edition of this document; it obsoletes RFC 5226.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="26"/>
          <seriesInfo name="RFC" value="8126"/>
          <seriesInfo name="DOI" value="10.17487/RFC8126"/>
        </reference>
        <reference anchor="RFC8402" target="https://www.rfc-editor.org/info/rfc8402" quoteTitle="true" derivedAnchor="RFC8402">
          <front>
            <title>Segment Routing Architecture</title>
            <author initials="C." surname="Filsfils" fullname="C. Filsfils" role="editor">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="S." surname="Previdi" fullname="S. Previdi" role="editor">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="L." surname="Ginsberg" fullname="L. Ginsberg">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="B." surname="Decraene" fullname="B. Decraene">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="S." surname="Litkowski" fullname="S. Litkowski">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="R." surname="Shakir" fullname="R. Shakir">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2018" month="July"/>
            <abstract>
              <t indent="0">Segment Routing (SR) leverages the source routing paradigm.  A node steers a packet through an ordered list of instructions, called "segments".  A segment can represent any instruction, topological or service based.  A segment can have a semantic local to an SR node or global within an SR domain.  SR provides a mechanism that allows a flow to be restricted to a specific topological path, while maintaining per-flow state only at the ingress node(s) to the SR domain.</t>
              <t indent="0">SR can be directly applied to the MPLS architecture with no change to the forwarding plane.  A segment is encoded as an MPLS label.  An ordered list of segments is encoded as a stack of labels.  The segment to process is on the top of the stack.  Upon completion of a segment, the related label is popped from the stack.</t>
              <t indent="0">SR can be applied to the IPv6 architecture, with a new type of routing header.  A segment is encoded as an IPv6 address.  An ordered list of segments is encoded as an ordered list of IPv6 addresses in the routing header.  The active segment is indicated by the Destination Address (DA) of the packet.  The next active segment is indicated by a pointer in the new routing header.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8402"/>
          <seriesInfo name="DOI" value="10.17487/RFC8402"/>
        </reference>
        <reference anchor="RFC9085" target="https://www.rfc-editor.org/info/rfc9085" quoteTitle="true" derivedAnchor="RFC9085">
          <front>
            <title>Border Gateway Protocol - Link State (BGP-LS) Extensions for Segment Routing</title>
            <author initials="S." surname="Previdi" fullname="S. Previdi">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="K." surname="Talaulikar" fullname="K. Talaulikar" role="editor">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="C." surname="Filsfils" fullname="C. Filsfils">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="H." surname="Gredler" fullname="H. Gredler">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="M." surname="Chen" fullname="M. Chen">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2021" month="August"/>
            <abstract>
              <t indent="0">Segment Routing (SR) allows for a flexible definition of end-to-end paths by encoding paths as sequences of topological subpaths, called "segments". These segments are advertised by routing protocols, e.g., by the link-state routing protocols (IS-IS, OSPFv2, and OSPFv3) within IGP topologies.</t>
              <t indent="0">This document defines extensions to the Border Gateway Protocol - Link State (BGP-LS) address family in order to carry SR information via BGP.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9085"/>
          <seriesInfo name="DOI" value="10.17487/RFC9085"/>
        </reference>
        <reference anchor="RFC9086" target="https://www.rfc-editor.org/info/rfc9086" quoteTitle="true" derivedAnchor="RFC9086">
          <front>
            <title>Border Gateway Protocol - Link State (BGP-LS) Extensions for Segment Routing BGP Egress Peer Engineering</title>
            <author initials="S." surname="Previdi" fullname="S. Previdi">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="K." surname="Talaulikar" fullname="K. Talaulikar" role="editor">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="C." surname="Filsfils" fullname="C. Filsfils">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="K." surname="Patel" fullname="K. Patel">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="S." surname="Ray" fullname="S. Ray">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="J." surname="Dong" fullname="J. Dong">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2021" month="August"/>
            <abstract>
              <t indent="0">A node steers a packet through a controlled set of instructions, called segments, by prepending the packet with a list of segment identifiers (SIDs).  A segment can represent any instruction, topological or service based. SR segments allow steering a flow through any topological path and service chain while maintaining per-flow state only at the ingress node of the SR domain.</t>
              <t indent="0">This document describes an extension to Border Gateway Protocol - Link State (BGP-LS) for advertisement of BGP Peering Segments along with their BGP peering node information so that efficient BGP Egress Peer Engineering (EPE) policies and strategies can be computed based on Segment Routing.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9086"/>
          <seriesInfo name="DOI" value="10.17487/RFC9086"/>
        </reference>
        <reference anchor="I-D.farrel-spring-sr-domain-interconnect" quoteTitle="true" target="https://datatracker.ietf.org/doc/html/draft-farrel-spring-sr-domain-interconnect-06" derivedAnchor="SR-INTERCONNECT">
          <front>
            <title>Interconnection of Segment Routing Sites - Problem Statement and Solution Landscape</title>
            <author fullname="Adrian Farrel">
              <organization showOnFrontPage="true">Old Dog Consulting</organization>
            </author>
            <author fullname="John Drake">
              <organization showOnFrontPage="true">Juniper Networks</organization>
            </author>
            <date month="May" day="19" year="2021"/>
            <abstract>
              <t indent="0">   Segment Routing (SR) is a forwarding paradigm for use in MPLS and
   IPv6 networks.  It is intended to be deployed in discrete sites that
   may be data centers, access networks, or other networks that are
   under the control of a single operator and that can easily be
   upgraded to support this new technology.

   Traffic originating in one SR site often terminates in another SR
   site, but must transit a backbone network that provides
   interconnection between those sites.

   This document describes a mechanism for providing connectivity
   between SR sites to enable end-to-end or site-to-site traffic
   engineering.

   The approach described allows connectivity between SR sites, utilizes
   traffic engineering mechanisms (such as RSVP-TE or Segment Routing)
   across the backbone network, makes heavy use of pre-existing
   technologies, and requires the specification of very few additional
   mechanisms.

   This document provides some background and a problem statement,
   explains the solution mechanism, gives references to other documents
   that define protocol mechanisms, and provides examples.  It does not
   define any new protocol mechanisms.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-farrel-spring-sr-domain-interconnect-06"/>
          <format type="TXT" target="https://www.ietf.org/archive/id/draft-farrel-spring-sr-domain-interconnect-06.txt"/>
          <refcontent>Work in Progress</refcontent>
        </reference>
      </references>
    </references>
    <section anchor="acks" numbered="false" toc="include" removeInRFC="false" pn="section-appendix.a">
      <name slugifiedName="name-acknowledgements">Acknowledgements</name>
      <t indent="0" pn="section-appendix.a-1">Thanks to <contact fullname="Bruno Rijsman"/>, <contact fullname="Stephane Litkowski"/>, <contact fullname="Boris Hassanov"/>,
      <contact fullname="Linda Dunbar"/>, <contact fullname="Ravi Singh"/>,
      and <contact fullname="Daniel Migault"/> for review comments, and to
      <contact fullname="Robert Raszuk"/> for useful discussions.  <contact fullname="Gyan Mishra"/> provided a helpful GenArt review, and <contact fullname="John Scudder"/> and <contact fullname="Benjamin Kaduk"/> made
      helpful comments during IESG review.</t>
    </section>
    <section anchor="authors-addresses" numbered="false" removeInRFC="false" toc="include" pn="section-appendix.b">
      <name slugifiedName="name-authors-addresses">Authors' Addresses</name>
      <author fullname="Adrian Farrel" initials="A." surname="Farrel">
        <organization showOnFrontPage="true">Old Dog Consulting</organization>
        <address>
          <email>adrian@olddog.co.uk</email>
        </address>
      </author>
      <author fullname="John Drake" initials="J." surname="Drake">
        <organization showOnFrontPage="true">Juniper Networks</organization>
        <address>
          <email>jdrake@juniper.net</email>
        </address>
      </author>
      <author fullname="Eric Rosen" initials="E." surname="Rosen">
        <organization showOnFrontPage="true">Juniper Networks</organization>
        <address>
          <email>erosen52@gmail.com</email>
        </address>
      </author>
      <author fullname="Keyur Patel" initials="K." surname="Patel">
        <organization showOnFrontPage="true">Arrcus, Inc.</organization>
        <address>
          <email>keyur@arrcus.com</email>
        </address>
      </author>
      <author fullname="Luay Jalil" initials="L" surname="Jalil">
        <organization showOnFrontPage="true">Verizon</organization>
        <address>
          <email>luay.jalil@verizon.com</email>
        </address>
      </author>
    </section>
  </back>
</rfc>
