<?xml version="1.0" encoding="US-ASCII"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!ENTITY rfc2119 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY rfc4271 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4271.xml">
<!ENTITY rfc5065 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5065.xml">
<!ENTITY rfc3779 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3779.xml">
<!ENTITY rfc6472 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.6472.xml">
<!ENTITY rfc6482 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.6482.xml">
<!ENTITY rfc6480 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.6480.xml">
<!ENTITY rfc6811 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.6811.xml">
<!ENTITY rfc6907 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.6907.xml">
<!ENTITY rfc7606 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.7606.xml">
<!ENTITY rfc8205 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.8205.xml">
<!ENTITY rfc8174 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.8174.xml">
<!ENTITY rfc9319 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.9319.xml">
]>

<rfc submissionType="IETF" category="std" docName="draft-ietf-idr-deprecate-as-set-confed-set-12" updates="4271 5065" obsoletes="6472" ipr="trust200902">
  <?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
  <?rfc toc="yes" ?>
  <?rfc symrefs="yes" ?>
  <?rfc sortrefs="yes"?>
  <?rfc iprnotified="no" ?>
  <?rfc strict="yes" ?>
  <?rfc compact="yes" ?>

  <!-- Don't put each section on its own page -->

  <front>
    <title abbrev="AS_SET, AS_CONFED_SET use deprecation">Deprecation of AS_SET and AS_CONFED_SET in BGP</title>

    <author fullname="Warren Kumari" initials="W" surname="Kumari">
      <organization>Google, Inc.</organization>

      <address>
        <postal>
          <street>1600 Amphitheatre Parkway</street>
          <city>Mountain View</city>
          <region>CA</region>
          <code>94043</code>
          <country>US</country>
        </postal>

        <phone>+1 571 748 4373</phone>

        <email>warren@kumari.net</email>
      </address>
    </author>

    <author fullname="Kotikalapudi Sriram" initials="K" surname="Sriram">
      <organization>USA NIST</organization>

      <address>
        <postal>
          <street>100 Bureau Drive</street>
          <city>Gaithersburg</city>
          <region>MD</region>
          <code>20899</code>
          <country>US</country>
        </postal>

        <phone>+1 301 975 3973</phone>

        <email>ksriram@nist.gov</email>
      </address>
    </author>

    <author fullname="Lilia Hannachi" initials="L" surname="Hannachi">
      <organization>USA NIST</organization>

      <address>
        <postal>
          <street>100 Bureau Drive</street>
          <city>Gaithersburg</city>
          <region>MD</region>
          <code>20899</code>
          <country>US</country>
        </postal>

        <phone>+1 301 975 3259</phone>

        <email>lilia.hannachi@nist.gov</email>
      </address>
    </author>

    <author fullname="Jeffrey Haas" initials="J." surname="Haas">
      <organization>Juniper Networks, Inc.</organization>
      <address>
        <postal>
          <street>1133 Innovation Way</street>
          <city>Sunnyvale</city>
          <region>CA</region>
          <code>94089</code>
          <country>United States of America</country>
        </postal>
        <email>jhaas@juniper.net</email>
      </address>
    </author>

   <date year="" />

  <!-- [rfced] Please insert any keywords (beyond those that appear in the
title) for use on http://www.rfc-editor.org/rfcsearch.html. 
 BGP, BGP-4, Network Operator, RPKI, Aggregation, RPKI-based Route Origin Validation, RPKI-ROV -->

    <abstract>
      <t>BCP 172 (i.e., RFC 6472) recommends not using AS_SET and AS_CONFED_SET
      AS_PATH segment types in the Border Gateway Protocol (BGP). This document
      advances that recommendation to a standards requirement in BGP; it
      proscribes the use of the AS_SET and AS_CONFED_SET path segment types
      in the AS_PATH.  This is done to simplify the design and implementation
      of BGP and to make the semantics of the originator of a BGP route clearer.
      This will also simplify the design, implementation, and deployment of
      various BGP security mechanisms. This document updates RFC 4271 and RFC
      5065, and obsoletes RFC 6472.</t>
    </abstract>
  </front>

  <middle>
    <section title="Introduction">

      <t>BCP 172 <xref target="RFC6472"></xref> makes a recommendation for not
      using AS_SET (see <xref target="RFC4271"></xref>) and AS_CONFED_SET (see
      <xref target="RFC5065"></xref>) AS_PATH path segment types in the Border
      Gateway Protocol (BGP).  This document advances the BCP recommendation to
      a standards requirement in BGP; it proscribes the use of the AS_SET and
      AS_CONFED_SET types of path segments in the AS_PATH. The purpose is to
      simplify the design and implementation of BGP and to make the semantics
      of the originator of a BGP route clearer. This will also simplify the design,
      implementation, and deployment of various BGP security mechanisms. In
      particular, the proscription of AS_SETs and AS_CONFED_SETs removes the
      possibility of ambiguity about origin AS in RPKI-based route origin
      validation (RPKI-ROV) 
      <xref target="RFC6811"></xref> <xref target="RFC6907"/>
      <xref target="RFC9319"/>.</t> 

      <t> The AS_SET path segment in the AS_PATH attribute (Sections 4.3 and
      5.1.2 of <xref target="RFC4271"></xref>) is created by a router that is
      performing route aggregation and contains an unordered set of Autonomous
      Systems (ASes) that contributing prefixes in the aggregate have
      traversed.</t>

      <t>The AS_CONFED_SET path segment (see <xref target="RFC5065"/>) in
      the AS_PATH attribute is created by a router that is performing route
      aggregation and contains an unordered set of Member AS Numbers in the
      local confederation that contributing prefixes in the aggregate have
      traversed. It is very similar to an AS_SET but is used within a
      confederation.</t>

      <t>By performing aggregation, a router is combining multiple BGP routes
      for more specific destinations into a new route for a less specific
      destination (<xref target="RFC4271"/>, Section 9.1.2.2.). Aggregation
      may blur the semantics of the origin AS for the prefix being announced by
      producing an AS_SET or AS_CONFED_SET.  Such sets can cause operational
      issues, such as not being able to authenticate a route origin for the
      aggregate prefix in new BGP security technologies such as those that take
      advantage of X.509 extensions for IP addresses and AS identifiers 
      (<xref target="RFC3779"/>, <xref target="RFC6480"/>,
      <xref target="RFC6811"/>, <xref target="RFC6907"/>,
      <xref target="RFC8205"/>, <xref target="RFC9319"/>).
      This could result in reachability problems for the destinations
      covered by the aggregated prefix.</t>

      <t>From analysis of historical Internet routing data, it is apparent that
      aggregation that involves AS_SETs is very seldom used in practice on the
      public Internet (see <xref target="Analysis"/>).  When it is used, it
      is often used incorrectly; only a single AS in the AS_SET is
      the most common case <xref target="Analysis"/>. Also, very often the same AS appears in the
      AS_SEQUENCE and the AS_SET in the BGP update. The occurrence of reserved
      AS numbers (<xref target="IANA-SP-ASN"/>) is also somewhat frequent.</t>

    </section>

    <section title="Requirements Language">
      <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
      "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
      "OPTIONAL" in this document are to be interpreted as described in BCP 14
      <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when,
      they appear in all capitals, as shown here.</t>
    </section>

    <section title="Recommendations">
      <t>BGP speakers conforming to this document (i.e., conformant BGP
      speakers) SHOULD NOT locally generate BGP UPDATE messages containing
      AS_SETs or AS_CONFED_SETs. Conformant BGP speakers SHOULD NOT send BGP
      UPDATE messages containing AS_SETs or AS_CONFED_SETs. Upon receipt of
      such messages, conformant BGP speakers SHOULD use the "treat-as-withdraw"
      error handling behavior as per <xref target="RFC7606"/>.</t>
      
      <t>
      The document uses normative language such as "SHOULD NOT send" 
      rather than "MUST NOT send" with the intention of allowing 
      some transition time for existing implementations and
      avoiding abrupt disruptions for the operators currently
      using AS_SETs or AS_CONFED_SETs. 
      However, it is strongly urged that operators stop
      sending UPDATEs with AS_SETs or AS_CONFED_SETs as quickly as 
      possible to avoid having UPDATEs dropped by BGP security 
      mechanisms such as RPKI-ROV and BGPsec. 
      </t>

      <t>If a network operator wishes to consider BGP UPDATE messages with
      AS_SETs or AS_CONFED_SETs received from an external BGP peers, they MAY
      have a feature (knob) in their implementation to do so on a per-peer
      basis. The operator should understand the full implications of choosing
      this option.</t>

<!-- XXX JMH - A stub AS can happily absorb routes containing AS_SETs according to local policy, since it has no interest in propagating them to other speakers that may have RPKI origin considerations.  The consideration here applies only to transit ASes and their downstreams. -->

      <t>Network operators SHOULD NOT locally generate any new announcements
      containing AS_SETs or AS_CONFED_SETs.</t>

      <t>BGP security technologies (such as those that take advantage of X.509
      extensions for IP addresses and AS identifiers (<xref target="RFC3779"/>,
      <xref target="RFC6480"/>, <xref target="RFC6811"/>, 
      <xref target="RFC8205"/>) might not support routes with AS_SETs or
      AS_CONFED_SETs in them. Routes with AS_SETs have no possibility of ever
      being considered RPKI-ROV valid <xref target="RFC6811"/>
      <xref target="RFC6907"/>.</t>
    </section>

    <section title="Updates to Existing RFCs">
      <t>This document deprecates the origination of BGP routes with AS_SET
      (type 1) (see <xref target="RFC4271" section="4.3" sectionFormat="comma"/>).</t>

      <t>This document also deprecates the origination of BGP routes with
      AS_CONFED_SET (type 4) AS_PATH segments  
      (see <xref target="RFC5065" section="3" sectionFormat="comma"/>).</t>

      <t>BGP speakers conforming to this document &mdash; i.e., conformant BGP
      speakers &mdash; SHOULD NOT originate BGP UPDATE messages containing
      AS_SETs or AS_CONFED_SETs.  Upon receipt of BGP routes containing
      AS_SETs, conformant BGP speakers SHOULD use the "treat-as-withdraw" error
      handling behavior as per <xref target="RFC7606"/>.</t>

      <section title="BGP AS_PATH &quot;Brief&quot; Aggregation">
        <t> 
      Sections 9.1.4 and 9.2.2.2 of <xref target="RFC4271"/> describe BGP aggregation procedures. 
      Appendix F.6 in <xref target="RFC4271"/> 
        describes a generally unimplemented "Complex AS_PATH Aggregation"
        procedure.</t>

        <t><xref target="RFC4271" section="5.1.6" sectionFormat="comma"/>,
        describing the ATOMIC_AGGREGATE Path Attribute, notes that:</t>

        <blockquote>
          <t>When a BGP speaker aggregates several routes for the purpose of
          advertisement to a particular peer, the AS_PATH of the aggregated
          route normally includes an AS_SET formed from the set of ASes from
          which the aggregate was formed.  In many cases, the network
          administrator can determine if the aggregate can safely be advertised
          without the AS_SET, and without forming route loops.</t>

          <t>If an aggregate excludes at least some of the AS numbers present in
          the AS_PATH of the routes that are aggregated as a result of dropping
          the AS_SET, the aggregated route, when advertised to the peer, SHOULD
          include the ATOMIC_AGGREGATE attribute.</t>
        </blockquote>

        <t>When BGP AS_PATH aggregation is done according to the <xref target="RFC4271" section="9.2.2.2" sectionFormat="comma"/>,
        procedures and any resulting AS_SETs are discarded, this is typically
        referred to as "brief" aggregation in implementations.
        Brief aggregation results in an AS_PATH that has the property 
        (from <xref target="RFC4271" section="9.2.2.2" sectionFormat="comma"/>):</t>

        <blockquote>
          <t>determine the longest leading sequence of tuples (as defined above)
          common to all the AS_PATH attributes of the routes to be aggregated.
          Make this sequence the leading sequence of the aggregated AS_PATH
          attribute.</t>
        </blockquote>

        <t>The ATOMIC_AGGREGATE Path Attribute is subsequently attached to the
        BGP route, if AS_SETs are dropped.</t>
      </section>

      <section title="Issues with &quot;Brief&quot; AS_PATH Aggregation and RPKI-ROV">
        <t>While brief AS_PATH aggregation has the desirable property of not
        containing AS_SETs, the resulting aggregated AS_PATH may contain an
        unpredictable origin AS.  Such an unpredictable origin ASes may result
        in RPKI-ROV validation issues:</t>

        <ul>
          <li>Depending on the contributing routes to the aggregate route, the
          resulting origin AS may vary.</li>
          <li>The presence of expected contributing routes may be unpredictable
          due to route availability from BGP neighbors.</li>
          <li>In the presence of such varying origin ASes, it would be necessary
          for the resource holder to register <xref target="RFC6482">Route
          Origin Authorizations (ROAs)</xref> for each potential origin AS that
          may result from the expected aggregated AS_PATHs.</li>
        </ul>
      </section>

      <section title="Recommendations to Mitigate Unpredictable AS_PATH origins
       for RPKI-ROV Purposes">
        <t>In order to ensure a consistent BGP origin AS is announced for
        aggregate BGP routes for implementations of "brief" BGP aggregation, the
        implementation should be configured to truncate the AS_PATH after the
        right-most instance of the desired origin AS for the aggregate. 
	The desired origin AS could be the aggregating AS itself.</t>

        <t>If the resulting AS_PATH would be truncated from the otherwise
        expected result of BGP AS_PATH aggregation (an AS_SET would not be
        generated, and/or ASes are removed from the "longest leading sequence" of
        ASes), the ATOMIC_AGGREGATE Path Attribute SHALL be attached.  This is
        consistent with the intent of Section 5.1.6 of 
        <xref target="RFC4271"/>.</t>
      </section>
    </section>

    <section title="Operational Considerations">
      <t>When aggregating prefixes, network operators MUST use brief
      aggregation. In brief aggregation, the AGGREGATOR and ATOMIC_AGGREGATE
      Path Attributes are included, but the AS_PATH does not have AS_SET or
      AS_CONFED_SET path segment types. 
      See <xref target="brief-agg-example"/> for examples of 
      brief aggregation while keeping the origin AS unambiguous 
      and generating appropriate ROAs.</t>

      <t>When doing the above, operators MUST form the aggregate at the border
      in the outbound BGP policy and omit any prefixes from the AS that the
      aggregate is being advertised to. In other words, an aggregate prefix
      MUST NOT be announced to the contributing ASes. Instead, more specific
      prefixes (from the aggregate) MUST be announced to each contributing AS,
      excluding any that were learned from the contributing AS in
      consideration.  See <xref target="filter-example"/> for an example of
      this filtering policy.</t>

      <t>Operators MUST install egress filters to block data packets when the
      destination address belongs to an internal prefix. Similarly, any known
      single-homed customer prefix MUST also be included in the egress filters
      except on the interface for that customer. These safeguards mitigate looping in the
      data plane when connection to such an internal or customer prefix is
      lost. This mechanism effectively compensates for the lack of the
      additional loop detection capability accorded by AS_SETs (if they were
      allowed).</t>

    </section>

    <section title="Security Considerations">
      <t>This document deprecates the use of aggregation techniques that create
      AS_SETs or AS_CONFED_SETs. Obsoleting these path segment types from BGP
      and removal of the related code from implementations would potentially
      decrease the attack surface for BGP. Deployments of new BGP security
      technologies 
      (<xref target="RFC6480"/>, <xref target="RFC6811"/>, 
      <xref target="RFC8205"/>) benefit greatly if AS_SETs and AS_CONFED_SETs are not used in BGP.</t>
    </section>

    <section title="IANA Considerations">
      <t>This document requires no IANA actions.</t>
    </section>

    <section title="Acknowledgements">
      <t>The authors would like to thank John Heasley, Job Snijders, Jared
      Mauch, Jakob Heitz, Keyur Patel, Douglas Montgomery, Randy Bush, Susan
      Hares, John Scudder, Curtis Villamizar, Danny McPherson, Chris Morrow,
      Tom Petch, Ilya Varlashkin, Enke Chen, Tony Li, Florian Weimer, John
      Leslie, Paul Jakma, Rob Austein, Russ Housley, Sandra Murphy, Steve
      Bellovin, Steve Kent, Steve Padgett, Alfred Hoenes, and Alvaro Retana for
      comments and suggestions.</t>
    </section>
  </middle>

  <back>
    <references title="Normative References">
      &rfc2119;
      &rfc4271;
      &rfc5065;
    </references>

    <references title="Informative References">
      &rfc3779; 
      &rfc6472;
      &rfc6811;
      &rfc6480;
      &rfc6482;
      &rfc6907;
      &rfc7606;
      &rfc8205;
      &rfc8174;
      &rfc9319;

      <reference anchor="IANA-SP-ASN"
       target="https://www.iana.org/assignments/iana-as-numbers-special-registry/iana-as-numbers-special-registry.xhtml">
        <front>
          <title>Special-Purpose Autonomous System (AS) Numbers</title>
            <author initials="" surname="">
              <organization />
            </author>
            <date month="" year="" />
        </front>
      </reference>

      <reference anchor="Analysis"
                 target="https://github.com/ksriram25/IETF/blob/main/Detailed-AS_SET-analysis.txt">
        <front>
          <title>Detailed analysis of AS_SETs in BGP updates</title>
          <author initials="L." surname="Hannachi">
            <organization />
          </author>

          <author initials="K." surname="Sriram">
            <organization />
          </author>

          <date month="October" year="2019" />
        </front>

        <seriesInfo name="NIST Robust Inter-domain Routing Project Website" value="" />
      </reference>
    </references>
    <section title="Example of Route Filtering for Aggregate Routes and its Contributors"
             anchor="filter-example">

       <t> 
       Presented here is an illustration of how an AS_SET is not used when 
       aggregating and still data-plane route loops are avoided. 
       Consider that p1/24 (from AS 64501), p2/24 (from AS 64502), p3/24 (from AS 64503), 
       and p4/24 (from AS 64504) are aggregated by AS 64505 to p/22.
       AS_SET is not used with the aggregate p/22 but AGGREGATOR and ATOMIC AGGREGATE are used. 
       Data-plane route loops are avoided by not announcing the aggregate p/22 
       to the contributing ASes, i.e., AS 64501, AS 64502, AS 64503, and AS 64504.  
       Instead, as further illustration, p1/24, p2/24, and p4/24 are announced to AS 64503. 
       The routing tables (post aggregation) of each of the ASes are depicted in the diagram below .
       </t>

      <artset>
        <artwork type="ascii-art" align="center">
          <![CDATA[

 (       )     (       )           (       )     (       )
( AS64501 )   ( AS64502 )         ( AS64503 )   ( AS64504 )
 (       )     (       )           (       )     (       )
   p1/24         p2/24               p3/24         p4/24
     |             |                   |             |
     |             +-->  (       )  <--+             |
     |                  ( AS64505 )                  |
     +---------------->  (       )  <----------------+
                            p/22
                             |
                             V

AS 64501                      AS 64502
==========================    ==========================
p1/24 AS_PATH ""              p1/24 AS_PATH "64505 64501"
p2/24 AS_PATH "64505 64502"   p2/24 AS_PATH ""
p3/24 AS_PATH "64505 64503"   p3/24 AS_PATH "64505 64503"
p4/24 AS_PATH "64505 64504"   p4/24 AS_PATH "64505 64504"


AS 64503                      AS 64504
==========================    ==========================
p1/24 AS_PATH "64505 64501"   p1/24 AS_PATH "64505 64501"
p2/24 AS_PATH "64505 64502"   p2/24 AS_PATH "64505 64502"
p3/24 AS_PATH ""              p3/24 AS_PATH "64505 64503"
p4/24 AS_PATH "64505 64504"   p4/24 AS_PATH ""

AS 64505
==========================
p/22  AS_PATH "" AGGREGATOR 64505 ATOMIC_AGGREGATE
p1/24 AS_PATH "64501"
p2/24 AS_PATH "64502"
p3/24 AS_PATH "64503"
p4/24 AS_PATH "64504"
          ]]>
        </artwork>
      </artset>
    </section>
    <section title="Examples of Inconsistent BGP Origin-AS Generated by
                    Traditional Brief Aggregation" anchor="brief-agg-example">
      <t>
      In the examples below, it is illustrated how brief aggregation 
      may result in inconsistent origin AS.   
      </t>

      <t>AS 64500 aggregates more specific routes into 192.0.2.0/24.</t>

      <t>Consider the following scenarios where brief aggregation is done
      by AS 64500 and what the resultant origin ASes would be.</t>

      <artset>
        <artwork type="ascii-art" align="left">
          <![CDATA[
Routes:
R1 - 192.0.2.0/26   AS_PATH "64501"
R2 - 192.0.2.64/26  AS_PATH "64502"
R3 - 192.0.2.128/26 AS_PATH "64504 64502"
R4 - 192.0.2.192/26 AS_PATH "64504 64501"
          ]]>
        </artwork>
      </artset>

      <section title="Scenario 1: First one route, then another, each with a
                      fully disjoint AS_PATH">
        <t>Receive R1. Aggregate 192.0.2.0/24 AS_PATH "64501"</t>
        <t>Alternate "bug?": Aggregate 192.0.2.0/24 AS_PATH "[ 64501 ]"</t>

        <t>Receive R2.  Aggregate 192.0.2.0/24 AS_PATH "[ 64501 64502 ]"</t>

        <t>If brief aggregation is in use, the AS_PATH would be truncated to
        the empty AS_PATH, "".</t>

        <t>The resulting AS_PATH is thus not stable and depends on the presence
        of specific routes.</t>
      </section>

      <section title="Scenario 2: First one route, then another, the AS_PATHs
                      overlap at the origin AS.">
        <t>Receive R1.  Aggregate 192.0.2.0/24 AS_PATH "64501"</t>

        <t>Receive R4.  Aggregate 192.0.2.0/24 AS_PATH "[ 64504 64501 ]"</t>

<!-- 
XXX KS: I make a correction above from "64504 [ 64501 ]" 
to "[ 64504 64501 ] because "[ 64504 ] 64501" does not follow
from algorithm in RFC 4271. 64504 is not common to both
contributing paths. So it must also be included in the AS_SET.
-->    

<!-- XXX KS: This is replaced (as below):  <t>If brief aggregation is in use, 
the AS_PATH is truncated to "64504".</t>  -->

        <t>If brief aggregation is in use,  the AS_PATH is truncated to "".</t>

        <t>The resulting AS_PATH is thus not stable and depends on the presence
        of specific routes.</t>
      </section>

      <section title="Scenario 3: First one route, then another, the AS_PATHs
                      overlap at the neighbor AS">
        <t>Receive R3.  Aggregate 192.0.2.0/24 AS_PATH "64504 64501".</t>

        <t>Receive R4.  Aggregate 192.0.2.0/24 AS_PATH "64504 [ 64501 64502 ]"</t>

        <t>If brief aggregation is in use, the AS_PATH is truncated to "64504".</t>

        <t>The resulting AS_PATH is thus not stable and depends on the presence
        of specific routes.</t>
      </section>

      <section title="Achieving Consistent Origin-AS During Aggregation">
        <t>In the three scenarios above, the aggregating AS 64500 is using
        traditional brief aggregation.  This results in inconsistent
        origin ASes as the contributing routes are learned.</t>

        <t>The trivial solution to addressing the issue is to simply discard
        all of the ASes for the contributing routes. In simple BGP aggregation
        topologies, this is likely the correct thing to do.  The AS originating
        the aggregate, 192.0.2.0/24 in this example, is likely the resource
        holder for the route in question.  In such a case, simply originating
        the route to its BGP upstream neighbors in the Internet with its own
        AS, 64500, means that a consistent Route Origin Authorization (ROA)
        could be registered in the RPKI for this prefix.  This satisfies the
        need for a consistent origin AS.</t>

        <t>If the contributing ASes are themselves multihomed to the Internet
        outside of their connections to AS 64500, then additional ROAs would
        need to be created for each of the more specific prefixes.</t>

        <t>In more complex proxy aggregation scenarios, there may be a desire
        to permit some stable (i.e., common) portion of the contributing AS_PATHs to be kept in the
        aggregate route.  Consider the case for Scenario 3, where the neighbor
        AS is the same for both R3 and R4 - AS 64504.  In such a case, an
        implementation may permit the aggregate's brief AS_PATH to be "64504", and
        a ROA would be created for the aggregate prefix with 64504 as the origin AS.
</t>
      </section>
    </section>
  </back>
</rfc>