<?xml version='1.0' encoding='utf-8'?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" version="3" submissionType="IETF" category="bcp" consensus="true" docName="draft-ietf-sidrops-roa-considerations-08" number="9455" ipr="trust200902" tocInclude="true" tocDepth="3" symRefs="true" sortRefs="true" updates="" obsoletes="" xml:lang="en" prepTime="2023-08-23T19:13:51" indexInclude="true" scripts="Common,Latin">
  <link href="https://datatracker.ietf.org/doc/draft-ietf-sidrops-roa-considerations-08" rel="prev"/>
  <link href="https://dx.doi.org/10.17487/rfc9455" rel="alternate"/>
  <link href="urn:issn:2070-1721" rel="alternate"/>
  <front>
    <title abbrev="ROA Considerations">Avoiding Route Origin Authorizations (ROAs) Containing Multiple IP Prefixes</title>
    <seriesInfo name="RFC" value="9455" stream="IETF"/>
    <seriesInfo name="BCP" value="238" stream="IETF"/>
    <author fullname="Zhiwei Yan" initials="Z." surname="Yan">
      <organization showOnFrontPage="true">CNNIC</organization>
      <address>
        <postal>
          <street>No.4 South 4th Street, Zhongguancun</street>
          <city>Beijing</city>
          <code>100190</code>
          <country>China</country>
        </postal>
        <email>yanzhiwei@cnnic.cn</email>
      </address>
    </author>
    <author fullname="Randy Bush" initials="R." surname="Bush">
      <organization showOnFrontPage="true">IIJ Research Lab &amp; Arrcus, Inc.</organization>
      <address>
        <postal>
          <street>5147 Crystal Springs</street>
          <city>Bainbridge Island</city>
          <region>Washington</region>
          <code>98110</code>
          <country>United States of America</country>
        </postal>
        <email>randy@psg.com</email>
      </address>
    </author>
    <author fullname="Guanggang Geng" initials="G." surname="Geng">
      <organization showOnFrontPage="true">Jinan University</organization>
      <address>
        <postal>
          <street>No.601, West Huangpu Avenue</street>
          <code>510632</code>
          <city>Guangzhou</city>
          <country>China</country>
        </postal>
        <email>gggeng@jnu.edu.cn</email>
      </address>
    </author>
    <author fullname="Ties de Kock" initials="T." surname="de Kock">
      <organization showOnFrontPage="true">RIPE NCC</organization>
      <address>
        <postal>
          <street>Stationsplein 11</street>
          <city>Amsterdam</city>
          <country>Netherlands</country>
        </postal>
        <email>tdekock@ripe.net</email>
      </address>
    </author>
    <author fullname="Jiankang Yao" initials="J." surname="Yao">
      <organization showOnFrontPage="true">CNNIC</organization>
      <address>
        <postal>
          <street>No.4 South 4th Street, Zhongguancun</street>
          <city>Beijing</city>
          <code>100190</code>
          <country>China</country>
        </postal>
        <email>yaojk@cnnic.cn</email>
      </address>
    </author>
    <date month="08" year="2023"/>
    <area>ops</area>
    <workgroup>sidrops</workgroup>
    <keyword>ROA</keyword>
    <keyword>Route Origin Authorization</keyword>
    <abstract pn="section-abstract">
      <t indent="0" pn="section-abstract-1">When using the Resource Public Key Infrastructure (RPKI), 
      address space holders need to issue Route Origin Authorization (ROA)
      object(s) to authorize one or more Autonomous Systems (ASes) to originate BGP routes to IP address prefix(es). 
      This memo discusses operational problems that may arise from
      ROAs containing multiple IP prefixes and recommends that each ROA
      contain a single IP prefix.</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 memo documents an Internet Best Current Practice.
        </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 BCPs 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/rfc9455" 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) 2023 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 Revised BSD License text as described in
            Section 4.e of the Trust Legal Provisions and are provided without
            warranty as described in the Revised 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-terminology">Terminology</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-problem-statement">Problem Statement</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-recommendations">Recommendations</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-security-considerations">Security Considerations</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-iana-considerations">IANA Considerations</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-normative-references">Normative References</xref></t>
          </li>
          <li pn="section-toc.1-1.8">
            <t indent="0" pn="section-toc.1-1.8.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.9">
            <t indent="0" pn="section-toc.1-1.9.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 numbered="true" removeInRFC="false" toc="include" pn="section-1">
      <name slugifiedName="name-introduction">Introduction</name>
      <t indent="0" pn="section-1-1">In the RPKI, a ROA, which is a digitally signed object, identifies that a
      single AS has been authorized by the address space
      holder to originate BGP routes to one or more IP prefixes within the related address
      space <xref target="RFC6482" format="default" sectionFormat="of" derivedContent="RFC6482"/>.</t>
      <t indent="0" pn="section-1-2">Each ROA contains an asID field and an ipAddrBlocks field. The
      asID field contains a single AS number that is authorized to
      originate routes to the given IP address prefix(es). The ipAddrBlocks
      field contains one or more IP address prefixes to which the AS is
      authorized to originate the routes.</t>
      <t indent="0" pn="section-1-3">If the address space holder needs to authorize more than one AS to
      advertise the same set of IP prefixes, multiple ROAs must be issued (one
      for each AS number <xref target="RFC6480" format="default" sectionFormat="of" derivedContent="RFC6480"/>). Prior to this document,
      there was no guidance recommending the issuance of a separate ROA for each IP
      prefix or a single ROA containing multiple IP prefixes.</t>
    </section>
    <section numbered="true" removeInRFC="false" toc="include" pn="section-2">
      <name slugifiedName="name-terminology">Terminology</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 numbered="true" removeInRFC="false" toc="include" pn="section-3">
      <name slugifiedName="name-problem-statement">Problem Statement</name>
      <t indent="0" pn="section-3-1">An address space holder can issue a separate ROA for each of its
      routing announcements. Alternatively, for a given asID, it can issue a
      single ROA for multiple routing announcements, or even for all of its
      routing announcements. Since a given ROA is either valid or invalid, the
      routing announcements for which that ROA was issued will "share fate"
      when it comes to RPKI validation. Currently, no existing RFCs provide recommendations about what kinds of ROAs to issue: one per prefix
      or one for multiple routing announcements. The problem of
      fate-sharing was not discussed or addressed.</t>
      <t indent="0" pn="section-3-2">  In the RPKI trust chain, the Certification Authority (CA) certificate
  issued by a parent CA to a delegatee of some resources may be revoked
  by the parent at any time, which would result in changes to resources specified
  in the certificate extensions defined in <xref target="RFC3779" format="default" sectionFormat="of" derivedContent="RFC3779"/>. Any ROA object that
      includes resources that are a) no longer entirely contained in the new CA
      certificate or b) contained in a new CA certificate that has not yet
      been discovered by Relying Party (RP) software will be rejected as invalid.
      Since ROA invalidity affects all routes specified in that ROA, unchanged
      resources with associated routes via that asID cannot be separated from
      those affected by the change in CA certificate validity. They will
      fall under this invalid ROA even though there was no intent to change
      their validity. Had these resources been in a separate ROA, there would
      be no change to the issuing CA certificate and therefore no
      subsequent invalidity.</t>
      <t indent="0" pn="section-3-3">CAs have to carefully coordinate ROA updates with updates to a resource certificate.
      This process may be automated if a single entity manages both
      the parent CA and the CA issuing the ROAs (Scenario D in <xref target="RFC8211" sectionFormat="comma" section="3.4" format="default" derivedLink="https://rfc-editor.org/rfc/rfc8211#section-3.4" derivedContent="RFC8211"/>). However, in other deployment scenarios,
      this coordination becomes more complex.</t>
      <t indent="0" pn="section-3-4">As there is a single expiration time for the entire ROA, expiration
      will affect all prefixes in the ROA. 
   Thus, changes to the ROA for any of the prefixes must be synchronized
   with changes to other prefixes, especially when authorization for a
   prefix is time bounded.
      Had these prefixes been in separately issued ROAs, the validity interval would be
      unique to each ROA, and invalidity would only be affected by reissuance of
      the specific issuing parent CA certificate.</t>
      <t indent="0" pn="section-3-5">A prefix could be allowed to originate from an AS only for a
      specific period of time, for example, if the IP prefix was leased out
      temporarily. If a ROA with multiple IP prefixes was used, this would be more difficult to manage, and potentially be more error-prone. Similarly,
      more complex routing may require changes in asID or routes for a subset of
      prefixes. 
   Reissuance of a ROA might result in changes to the validity of
   previously received BGP routes covered by the ROA's prefixes.
  There will be no change to the validity of unaffected routes if
  a) the time-limited resources are in separate ROAs, or b) for more
  complex routing, each change in asID or a change in routes for a
  given prefix is reflected in a change to a discrete ROA. </t>
      <t indent="0" pn="section-3-6">The use of ROA with a single IP prefix can minimize these
      side effects. It avoids fate-sharing irrespective of the cause, where
      the parent CA issuing each ROA remains valid and where each ROA itself
      remains valid.</t>
    </section>
    <section numbered="true" removeInRFC="false" toc="include" pn="section-4">
      <name slugifiedName="name-recommendations">Recommendations</name>
      <t indent="0" pn="section-4-1">Unless the CA has good reasons to the contrary, an issued ROA <bcp14>SHOULD</bcp14>
      contain a single IP prefix.</t>
    </section>
    <section anchor="Security" numbered="true" removeInRFC="false" toc="include" pn="section-5">
      <name slugifiedName="name-security-considerations">Security Considerations</name>
      <t indent="0" pn="section-5-1">Issuing separate ROAs for independent IP prefixes may increase the
      file-fetch burden on the RP during validation. </t>
    </section>
    <section anchor="IANA" numbered="true" removeInRFC="false" toc="include" pn="section-6">
      <name slugifiedName="name-iana-considerations">IANA Considerations</name>
      <t indent="0" pn="section-6-1">This document has no IANA actions.</t>
    </section>
  </middle>
  <back>
    <references pn="section-7">
      <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 fullname="S. Bradner" initials="S." surname="Bradner"/>
          <date month="March" year="1997"/>
          <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="RFC3779" target="https://www.rfc-editor.org/info/rfc3779" quoteTitle="true" derivedAnchor="RFC3779">
        <front>
          <title>X.509 Extensions for IP Addresses and AS Identifiers</title>
          <author fullname="C. Lynn" initials="C." surname="Lynn"/>
          <author fullname="S. Kent" initials="S." surname="Kent"/>
          <author fullname="K. Seo" initials="K." surname="Seo"/>
          <date month="June" year="2004"/>
          <abstract>
            <t indent="0">This document defines two X.509 v3 certificate extensions. The first binds a list of IP address blocks, or prefixes, to the subject of a certificate. The second binds a list of autonomous system identifiers to the subject of a certificate. These extensions may be used to convey the authorization of the subject to use the IP addresses and autonomous system identifiers contained in the extensions. [STANDARDS-TRACK]</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="3779"/>
        <seriesInfo name="DOI" value="10.17487/RFC3779"/>
      </reference>
      <reference anchor="RFC6480" target="https://www.rfc-editor.org/info/rfc6480" quoteTitle="true" derivedAnchor="RFC6480">
        <front>
          <title>An Infrastructure to Support Secure Internet Routing</title>
          <author fullname="M. Lepinski" initials="M." surname="Lepinski"/>
          <author fullname="S. Kent" initials="S." surname="Kent"/>
          <date month="February" year="2012"/>
          <abstract>
            <t indent="0">This document describes an architecture for an infrastructure to support improved security of Internet routing. The foundation of this architecture is a Resource Public Key Infrastructure (RPKI) that represents the allocation hierarchy of IP address space and Autonomous System (AS) numbers; and a distributed repository system for storing and disseminating the data objects that comprise the RPKI, as well as other signed objects necessary for improved routing security. As an initial application of this architecture, the document describes how a legitimate holder of IP address space can explicitly and verifiably authorize one or more ASes to originate routes to that address space. Such verifiable authorizations could be used, for example, to more securely construct BGP route filters. This document is not an Internet Standards Track specification; it is published for informational purposes.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="6480"/>
        <seriesInfo name="DOI" value="10.17487/RFC6480"/>
      </reference>
      <reference anchor="RFC6482" target="https://www.rfc-editor.org/info/rfc6482" quoteTitle="true" derivedAnchor="RFC6482">
        <front>
          <title>A Profile for Route Origin Authorizations (ROAs)</title>
          <author fullname="M. Lepinski" initials="M." surname="Lepinski"/>
          <author fullname="S. Kent" initials="S." surname="Kent"/>
          <author fullname="D. Kong" initials="D." surname="Kong"/>
          <date month="February" year="2012"/>
          <abstract>
            <t indent="0">This document defines a standard profile for Route Origin Authorizations (ROAs). A ROA is a digitally signed object that provides a means of verifying that an IP address block holder has authorized an Autonomous System (AS) to originate routes to one or more prefixes within the address block. [STANDARDS-TRACK]</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="6482"/>
        <seriesInfo name="DOI" value="10.17487/RFC6482"/>
      </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 fullname="B. Leiba" initials="B." surname="Leiba"/>
          <date month="May" year="2017"/>
          <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="RFC8211" target="https://www.rfc-editor.org/info/rfc8211" quoteTitle="true" derivedAnchor="RFC8211">
        <front>
          <title>Adverse Actions by a Certification Authority (CA) or Repository Manager in the Resource Public Key Infrastructure (RPKI)</title>
          <author fullname="S. Kent" initials="S." surname="Kent"/>
          <author fullname="D. Ma" initials="D." surname="Ma"/>
          <date month="September" year="2017"/>
          <abstract>
            <t indent="0">This document analyzes actions by or against a Certification Authority (CA) or an independent repository manager in the RPKI that can adversely affect the Internet Number Resources (INRs) associated with that CA or its subordinate CAs. The analysis is done from the perspective of an affected INR holder. The analysis is based on examination of the data items in the RPKI repository, as controlled by a CA (or an independent repository manager) and fetched by Relying Parties (RPs). The analysis does not purport to be comprehensive; it does represent an orderly way to analyze a number of ways that errors by or attacks against a CA or repository manager can affect the RPKI and routing decisions based on RPKI data.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="8211"/>
        <seriesInfo name="DOI" value="10.17487/RFC8211"/>
      </reference>
    </references>
    <section anchor="Acknowledgements" numbered="false" removeInRFC="false" toc="include" pn="section-appendix.a">
      <name slugifiedName="name-acknowledgements">Acknowledgements</name>
      <t indent="0" pn="section-appendix.a-1">The authors wish to thank the following people for their reviews and
      contributions to this document: <contact fullname="George Michaelson"/>, <contact fullname="Tim Bruijnzeels"/>, <contact fullname="Job       Snijders"/>, <contact fullname="Di Ma"/>, <contact fullname="Geoff Huston"/>, <contact fullname="Tom Harrison"/>, <contact fullname="Rob Austein"/>, <contact fullname="Stephen Kent"/>,
      <contact fullname="Christopher Morrow"/>, <contact fullname="Russ Housley"/>, <contact fullname="Ching-Heng Ku"/>, <contact fullname="Keyur Patel"/>, <contact fullname="Cuiling       Zhang"/>, and <contact fullname="Kejun Dong"/>. Thanks are also due to <contact fullname="Sean Turner"/> for the
      Security Area Directorate review. </t>
      <t indent="0" pn="section-appendix.a-2">This work was supported by the Beijing Nova Program of Science and
      Technology under grant Z191100001119113.</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="Zhiwei Yan" initials="Z." surname="Yan">
        <organization showOnFrontPage="true">CNNIC</organization>
        <address>
          <postal>
            <street>No.4 South 4th Street, Zhongguancun</street>
            <city>Beijing</city>
            <code>100190</code>
            <country>China</country>
          </postal>
          <email>yanzhiwei@cnnic.cn</email>
        </address>
      </author>
      <author fullname="Randy Bush" initials="R." surname="Bush">
        <organization showOnFrontPage="true">IIJ Research Lab &amp; Arrcus, Inc.</organization>
        <address>
          <postal>
            <street>5147 Crystal Springs</street>
            <city>Bainbridge Island</city>
            <region>Washington</region>
            <code>98110</code>
            <country>United States of America</country>
          </postal>
          <email>randy@psg.com</email>
        </address>
      </author>
      <author fullname="Guanggang Geng" initials="G." surname="Geng">
        <organization showOnFrontPage="true">Jinan University</organization>
        <address>
          <postal>
            <street>No.601, West Huangpu Avenue</street>
            <code>510632</code>
            <city>Guangzhou</city>
            <country>China</country>
          </postal>
          <email>gggeng@jnu.edu.cn</email>
        </address>
      </author>
      <author fullname="Ties de Kock" initials="T." surname="de Kock">
        <organization showOnFrontPage="true">RIPE NCC</organization>
        <address>
          <postal>
            <street>Stationsplein 11</street>
            <city>Amsterdam</city>
            <country>Netherlands</country>
          </postal>
          <email>tdekock@ripe.net</email>
        </address>
      </author>
      <author fullname="Jiankang Yao" initials="J." surname="Yao">
        <organization showOnFrontPage="true">CNNIC</organization>
        <address>
          <postal>
            <street>No.4 South 4th Street, Zhongguancun</street>
            <city>Beijing</city>
            <code>100190</code>
            <country>China</country>
          </postal>
          <email>yaojk@cnnic.cn</email>
        </address>
      </author>
    </section>
  </back>
</rfc>
