<?xml version='1.0' encoding='utf-8'?>
<?xml-model href="rfc7991bis.rnc"?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<rfc
  xmlns:xi="http://www.w3.org/2001/XInclude"
  category="std"
  docName="draft-uttaro-idr-bgp-oad-01"
  ipr="trust200902"
  obsoletes=""
  updates=""
  submissionType="IETF"
  xml:lang="en"
  version="3"
  consensus="true">
  <front>
    <title abbrev="One Administrative Domain">One Administrative Domain using BGP</title>

    <seriesInfo name="Internet-Draft" value="draft-uttaro-idr-bgp-oad-01"/>

    <author fullname="Jim Uttaro" initials="J." surname="Uttaro">
      <organization>AT&amp;T</organization>
      <address>
        <email>ju1738@att.com</email>
      </address>
    </author>
    <author fullname="Avinash Lingala" initials="A." surname="Lingala">
      <organization>AT&amp;T</organization>
      <address>
        <email>ar977m@att.com</email>
      </address>
    </author>
    <author fullname="Alvaro Retana" initials="A." surname="Retana">
      <organization>Futurewei Technologies, Inc.</organization>
      <address>
        <email>alvaro.retana@futurewei.com</email>
      </address>
    </author>
    <author fullname="Pradosh Mohapatra" initials="P." surname="Mohapatra">
      <organization>Google</organization>
      <address>
        <email>pradosh@google.com</email>
      </address>
    </author>
    <author fullname="Keyur Patel" initials="K." surname="Patel">
      <organization>Arrcus, Inc.</organization>
      <address>
        <email>keyur@arrcus.com</email>
      </address>
    </author>
    <author fullname="Bin Wen" initials="B." surname="Wen">
      <organization>Comcast</organization>
      <address>
        <email>bin_wen@comcast.com</email>
      </address>
    </author>
      <author fullname="Dhananjaya Rao" initials="D." surname="Rao">
        <organization>Cisco Systems</organization>
        <address>
          <email>dhrao@cisco.com</email>
        </address>
      </author>
    <author fullname="Srihari Sangli" initials="S." surname="Sangli">
      <organization>Juniper Networks</organization>
      <address>
        <email>ssangli@juniper.net</email>
      </address>
    </author>
<!--
    <date year="2023"/>
-->
    <area>Routing</area>
    <workgroup>Inter-Domain Routing</workgroup>

    <keyword>BGP OAD</keyword>

    <abstract>
      <t>
        This document defines a new External BGP (EBGP) peering type known as
        EBGP-OAD. EBGP-OAD peering is used between two EBGP peers that belong to
        One Administrative Domain (OAD).
      </t>
    </abstract>

  </front>

  <middle>
    <section>
      <name>Introduction</name>
      <t>
        At each EBGP boundary, BGP path attributes are modified as per standard
        BGP rules <xref target="RFC4271"/>.  This includes prepending the
        AS_PATH attribute with the autonomous-system number of the BGP speaker
        and stripping any IBGP-only attributes.
      </t>
      <t>
        Some networks span more than one autonomous system and require more
        flexibility in the propagation of path attributes. It is worth noting
        that these multi-AS networks have a common or single administrative
        entity. These networks are said to belong to One Administrative Domain
        (OAD). It is desirable to carry IBGP-only attributes across EBGP peering
        when the peers belong to OAD. This document defines a new EBGP peering
        type known as EBGP-OAD. EBGP-OAD peering is used between two EBGP peers
        that belong to OAD. This document also defines rules for route
        announcement and processing for EBGP-OAD peers.
      </t>

      <section>
        <name>Requirements Language</name>
        <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>
      </section>
    </section>

    <section>
      <name>Discussion</name>
      <t>
        Networks have traditionally been demarcated by an autonomous system/BGP
        border which correlates to an administrative boundary. This paradigm no
        longer serves the needs of network designers or customers due to the
        decoupling of IGP from BGP, BGP-free core in the underlay (e.g. using
        BGP labeled unicast <xref target="RFC8277"/>), the use of BGP to
        facilitate multiple service overlays (e.g., L2VPN, L3VPN, etc.)
        spanning multiple regions and AS domains, and the instantiation of
        customer sites on multiple content service providers (CSPs).
      </t>
      <t>
        For example, sites in a BGP/MPLS VPN <xref target="RFC4364"/> may be
        distributed across different AS domains. In some
        cases, the administrator of the VPN may prefer that some attributes are
        propagated to all their sites to influence the BGP decision process. An
        example could be LOCAL_PREF which is ignored if received on an EBGP
        session <xref target="RFC4271"/>.
      </t>
    </section>

    <section>
      <name>Operation</name>
      <t>
        <xref target="RFC4271"/> defines two types of BGP peerings used during
        a BGP protocol session. As part of the extensions defined in this
        document, the EBGP peering is divided into two types:
      </t>
      <ol>
	    <li>EBGP as defined in <xref target="RFC4271"/>.</li>
	    <li>EBGP-OAD as defined below.</li>
      </ol>
      <t>
        The EBGP-OAD session is a BGP connection between two external peers in
        different Autonomous Systems that belong to OAD. In general, the
        EBGP-OAD speakers follow the EBGP route advertisement, route
        processing, path attribute announcement and processing rules as defined
        in <xref target="RFC4271"/>. In particular, the handling of all
        attributes with the Transitive bit set should be done in accordance to
        the announcement and processing rules defined in
        <xref target="RFC4271"/>.
      </t>
      <t>
        EBGP-OAD speakers are also allowed to announce and receive any IBGP-only
        or non-transitive attributes  <xref target="RFC4271"/>. Unless
        explicitly specified, all non-transitive path attributes MAY be
        advertised over an EBGP-OAD session.  The reception of any path
        attribute over an EBGP-OAD session MUST NOT result in an error, unless
        it is malformed. Received path attributes SHOULD NOT be ignored by the
        receiver, unless directed to by local policy.
      </t>
      <t>
        Unless explicitly specified, the current processes for the
        advertisement of path attributes remains unchanged when advertised
        through an EBGP-OAD peering.  The process for EBGP advertisement MUST
        take priority over the process for IBGP advertisement.  For example,
        the AS_PATH attribute is modified as specified in Section 5.1.2 of
        <xref target="RFC4271"/>, bullet b ("BGP speaker advertises the route
        to an external peer").
      </t>
      <t>
        An EBGP-OAD speaker MUST support four-octet AS numbers and advertise the
        "support for four-octet AS number capability" <xref target="RFC6793"/> .
      </t>
      <t>
        The following sections describe modifications to route advertisements
        and path attribute announcements that are specific to the EBGP-OAD
        peering.
      </t>

        <section>
          <name>Next Hop Handling</name>
          <t>
            It is reasonable for EBGP-OAD peers to share a common Interior
            Gateway Protocol (IGP).  In such a case, the NEXT_HOP attribute and
            the Next Hop in the MP_REACH_NLRI attribute
            <xref target="RFC4760"/> MAY be left unchanged.
          </t>
      </section>
      <section anchor="MED">
        <name>MULTI_EXIT_DISC (MED) Handling</name>
        <t>
          The determination of the neighboring AS for the purpose of BGP Route
          Selection <xref target="RFC4271"/> MAY also consider the ASN of the
          EBGP-OAD peer.  If so, all the peers in the receiving ASN MUST be
          configured to use the same criteria.
        </t>
     </section>
     <section>
       <name>Route Reflection</name>
       <t>
         BGP Route Reflection <xref target="RFC4456"/> is an alternative to
         full-mesh IBGP.  The ORIGINATOR_ID and CLUSTER_LIST attributes MUST
         NOT be advertised over an EBGP-OAD session.  If received, the
         procedures in <xref target="RFC7606"/> apply.
       </t>
     </section>
     <section>
       <name>Tunnel Encapsulation Attribute Handling</name>
       <t>
         The Tunnel Encapsulation attribute <xref target="RFC9012"/> provides
         information needed to create tunnels and their corresponding tunnel
         headers. <xref target="RFC9012"/> resticts the scope of the attribute
         announcement within a set of ASes that belong to a single adminstrative
         entity. Since EBGP-OAD peers belong to a single adminstrative entity,
         EBGP-OAD peers MUST implement the EBGP-related Tunnel Encapsulation
         attribute procedures defined in <xref target="RFC9012"/>.
       </t>
     </section>

     <section>
       <name>PMSI Tunnel Attribute Handling</name>
       <t>
         The P-Multicast Service Interface Tunnel (PMSI Tunnel) attribute
         <xref target="RFC6514"/> provides information needed to create
         multicast tunnels and their corresponding tunnel headers. EBGP-OAD
         peers MUST impement the EBGP-related PMSI Tunnel attribute procedures
         defined in <xref target="RFC6514"/>.
       </t>
     </section>

     <section>
       <name>PE Distinguisher Labels Attribute Handling</name>
       <t>
         PE Distinguisher Labels Attribute attribute <xref target="RFC6514"/>
         provides information needed to carry upstream assigned Label values
         that identifies another PE multicast router.  As such, this attribute
         is only defined to be used inside an AS <xref target="RFC6513"/>.
         EBGP-OAD peers MUST implement the procedures defined in
         <xref target="RFC6513"/> and <xref target="RFC6514"/>.
       </t>
     </section>

     <section>
     <name>BGPsec_PATH Attribute Handling</name>
     <t>
       BGPsec_PATH attribute <xref target="RFC8025"/> provides security for the
       path of Autonomous systems through which a BGP UPDATE message passes.
       EBGP-OAD peers MUST implement the EBGP-related procedures defined in
       <xref target="RFC8025"/>.
     </t>
   </section>

     <section>
       <name>BGP COMMUNITIES Attribute</name>
       <t>
         BGP COMMUNITIES <xref target="RFC1997"/> is a transitive attribute used
         to pass additional information to BGP peers.  The advertisement
         semantics do not change.  In particular, routes received carrying the
         COMMUNITIES attribute containing the well-known NO_EXPORT value MUST
         NOT be advertised across an EBGP-OAD session.
       </t>
     </section>

     <section>
       <name>Extended Communities Attribute Handling</name>
       <t>
         The Extended Communities Attribute <xref target="RFC4360"/> is a
         transitive attribute that provides a mechanism for labeling information
         carried in BGP.  The Transitive bit is used to indicate whether a
         particular community is transitive or non-transitive across an
         Autonomous System (AS) boundary.  As described in
         <xref target="RFC4360"/>, the advertisement of transitive extended
         communities is subject to local policy for EBGP-OAD peerings.
         Non-transitive extended communities MAY be advertised to peers over an
         EBGP-OAD session.  For example, the Origin Validation State Extended
         Community <xref target="RFC8097"/> can be advertised to peers in the
         same OAD.
       </t>
     </section>

     <section>
       <name>Traffic Engineering Attribute Handling</name>
       <t>
         The Traffic Engineering attribute is a non-transitive attribute that
         enables BGP to carry Traffic Engineering information
         <xref target="RFC5543"/>. This attribute MAY be advertised to peers
         over an EBGP-OAD session.
       </t>
     </section>

     <section>
       <name>IPv6 Address Specific Extended Community Attribute Handling</name>
       <t>
         The IPv6 Address Specific Extended Community Attribute is a transitive
         attribute that carries address information to be used in IPv6-only
         environments <xref target="RFC5701"/>.  Modeled after Extended
         Communities <xref target="RFC4360"/>, a particular community in this
         attribute can be transitive or non-transitive across an Autonomous
         System (AS) boundary.  Non-transitive extended communities MAY be
         advertised to peers over an EBGP-OAD session.
       </t>
     </section>

     <section>
       <name>Accumulated IGP Metric Attribute Handling</name>
       <t>
         The Accumulated IGP Metric (AIGP) Attribute allows the advertisement
         of an accumulated internal routing metric across AS boundaries in an
         "AIGP administrative domain" <xref target="RFC7311"/>.  The AIGP
         attribute is enabled or dissabled on a session by the AIGP_SESSION
         configuration item.  For EBGP-OAD sessions, the default value of
         AIGP_SESSION SHOULD be "enabled".
       </t>
     </section>

     <section>
       <name>BGP-LS Attribute Handling</name>
       <t>
         The BGP Link-State (BGP-LS) attribute is used to carry link, node, and
         prefix parameters and attributes when distributing link-state and TE
         information using BGP <xref target="I-D.ietf-idr-rfc7752bis"/>.  This
         attribute MAY be advertised to peers over an EBGP-OAD session.
       </t>
     </section>

     <section>
       <name>BGP Role Negotiation</name>
       <t>
         Given the intent of OAD, the BGP Role negotiation and OTC
         Attribute-based procedures specified in <xref target="RFC9234"/> are
         NOT RECOMMENDED to be used between peers in an EBGP-OAD session.  The
         OTC attribute, if present, MUST be preserved unchanged through an
         EBGP-OAD session.  The use and negotiation of BGP Roles between
         EBGP-OAD peers is outside the scope of this document.
       </t>
     </section>

   </section>

    <section>
      <name>Deployment and Operational Considerations</name>
      <t>
        For the EBGP-OAD session to operate as expected, both BGP speakers MUST
        be configured with the same session type.  If only one BGP speaker is
        configured that way, and the other uses an EBGP session, the result is
        that some path attributes may be ignored and others will be discarded,
        but the BGP session will remain operational.
      </t>
      <t>
        The default BGP peering type for a session that is across autonomous
        systems SHOULD be EBGP.  BGP implementation SHOULD provide a
        configuration-time option to enable the EBGP-OAD session type.  If the
        session type is changed once the BGP connection has been established,
        the BGP speaker MUST readvertise its entire Adj-RIB-Out to its peer.
        Requesting a route refresh <xref target="RFC7313"/> is RECOMMENDED.
      </t>
      <t>
        The requirement that Import and Export Policies exist
        <xref target="RFC8212"/> SHOULD be disabled if both peers are
        configured with the EBGP-OAD session type.
      </t>
      <t>
        If multiple peerings exist between two autonomous systems that belong
        to OAD, all SHOULD be configured consistently.  Improper configuration
        may result in inconsistent or unexpected forwarding.  The inconsistent
        use of EBGP-OAD sessions is out of scope of this document.
      </t>
      <t>
        BGP Confederations <xref target="RFC5065"/> provide similar behavior,
        on a session by session basis, as what is specified in this document.
        The use of confederations with an EBGP-OAD peering is out of scope of
        this document.
      </t>
      <t>
        The consideration of the ASN of the EBGP-OAD peer to determine the
        neighboring AS for MED comparison <xref target="MED"/> may result in
        the creation of persistent route oscillations, similar to the Type II
        Churn described in <xref target="RFC3345"/>.  <xref target="RFC7964"/>
        provides solutions and recommendations to address this issue.
      </t>
    </section>

    <section anchor="IANA">
      <name>IANA Considerations</name>
      <t>This memo includes no request to IANA.</t>
    </section>

    <section anchor="Security">
        <name>Security Considerations</name>
        <t>
          This extension to BGP does not change the underlying security issues
          inherent in the existing BGP protocol, such as those described in
          <xref target="RFC4271"/> and <xref target="RFC4272"/>.
        </t>
        <t>
          This document defines a new BGP session type which combines the path
          attribute propagation rules for EBGP and IBGP peering.  Any existing
          security considerations related to existing path attributes apply to
          the new EBGP-OAD session type.
        </t>
        <t>
          By combining the path attribute propagation rules, IBGP information
          may now be propagated to another autonomous system.  However, it is
          expected that the new session type will only be enabled when peering
          with a router that also belongs to OAD.  If misconfigured, the impact
          is minimal due to the fact that both <xref target="RFC4271"/> and
          <xref target="RFC7606"/> define mechanisms to deal with unexpected
          path attributes.
        </t>
    </section>

    <!-- NOTE: The Acknowledgements and Contributors sections are at the end of this template -->
  </middle>

  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>

        <xi:include href="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-idr-rfc7752bis.xml"/>
        <xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.1997.xml"/>
        <xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.2119.xml"/>
        <xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.4271.xml"/>
        <xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.4360.xml"/>
        <xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.4456.xml"/>
        <xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.5065.xml"/>
        <xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.5543.xml"/>
        <xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.5701.xml"/>
        <xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.6513.xml"/>
        <xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.6514.xml"/>
        <xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.6793.xml"/>
        <xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.7311.xml"/>
        <xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.7313.xml"/>
        <xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.7606.xml"/>
        <xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.8025.xml"/>
	      <xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.8174.xml"/>
        <xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.8212.xml"/>
        <xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.9012.xml"/>
        <xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.9234.xml"/>
      </references>

      <references>
        <name>Informative References</name>
        <xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.3345.xml"/>
        <xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.4272.xml"/>
        <xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.4364.xml"/>
        <xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.4760.xml"/>
        <xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.7964.xml"/>
        <xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.8097.xml"/>
        <xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.8277.xml"/>
      </references>

    </references>

    <section anchor="Acknowledgements" numbered="false">
      <!-- [REPLACE/DELETE] an Acknowledgements section is optional -->
      <name>Acknowledgements</name>
      <t>
        TBD
      </t>
    </section>

 </back>
</rfc>
