<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc SYSTEM "rfc2629-xhtml.ent">
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
<?rfc strict="yes" ?>
<?rfc toc="yes"?>
<?rfc tocdepth="4"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes" ?>
<?rfc compact="yes" ?>
<?rfc subcompact="no" ?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" category="std" docName="draft-wu-sidr-aspa-validation-signaling-00" ipr="trust200902" consensus="true" submissionType="IETF">
  <front>
    <title abbrev="RPKI ASPA Extended Community">
      BGP AS_PATH Validation State Extended Community
    </title>
    <author fullname="Tianhao Wu" initials="T." surname="Wu">
      <organization>Huawei</organization>
      <address>
        <email>wutianhao10@huawei.com</email>
      </address>
    </author>
    <author fullname="Jun Ge" initials="J." surname="Ge">
      <organization>Huawei</organization>
      <address>
        <email>jack.gejun@huawei.com</email>
      </address>
    </author>
    <author fullname="Xiangfeng Ding" initials="X." surname="Ding">
      <organization>Huawei</organization>
      <address>
        <email>dingxiangfeng@huawei.com</email>
      </address>
    </author>
    <author fullname="Haibo Wang" initials="H." surname="Wang">
      <organization>Huawei</organization>
      <address>
        <email>rainsword.wang@huawei.com</email>
      </address>
    </author>
    <date day="28" month="February" year="2024"/>
    <keyword>BGP</keyword>
    <keyword>Route leak</keyword>
    <keyword>Hijacks</keyword>
    <abstract>
      <t>
        This document defines a new BGP opaque extended community to carry the AS_PATH validation state based on Autonomous System Provider Authorization (ASPA) inside an autonomous system.  Internal BGP (IBGP) speakers that receive this
        validation state can configure local policies that allow it to influence their decision process.
      </t>
    </abstract>
    <note 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>
    </note>
  </front>
  <middle>
    <section title="Introduction" anchor="intro">
      <t>
        This document defines a new BGP opaque extended community to carry the AS_PATH validation state based on Autonomous System Provider Authorization (ASPA) inside an autonomous system.  Internal IBGP speakers that receive this
        validation state can configure local policies that allow it to influence their decision process.
      </t>
    </section>
    <section title="Origin Validation State Extended Community" anchor="community">
      <t>
        The origin validation state extended community is an opaque extended community <xref target="RFC4360"/> with the following encoding:
      </t>
      <figure anchor="Community-Format" align="center">
	    	<artwork align="center">
	    	    <![CDATA[
   0                   1                   2                   3
   0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |       0x43    |      0x03     |             Reserved          |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                    Reserved                   |validationstate|
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
	    	    ]]>
	    	</artwork>
	    </figure>
      <t>
        The value of the high-order octet of the extended Type field is 0x43, which indicates it is non-transitive and opaque <xref target="RFC7153"/>. The value of the low-order octet of the extended Type field is 0x03 which is an unassigned sub-type of non-transitive opaque extended communities.  The Reserved field MUST be set to 0 and ignored upon the receipt of this community.  The last octet of the extended community is an unsigned integer that gives the AS_PATH's validation state <xref target="I-D.ietf-sidrops-aspa-verification"/>. It can assume the following values:
      </t>
      <figure anchor="Validation-State" align="center">
	    	<artwork align="center">
	    	    <![CDATA[
  +-------+-----------------------------+
  | Value | Meaning                     |
  +-------+-----------------------------+
  |   0   | Lookup result = "Valid"     |
  |   1   | Lookup result = "Unknown"   |
  |   2   | Lookup result = "Invalid"   |
  +-------+-----------------------------+
	    	    ]]>
	    	</artwork>
	    </figure>
      <t>
        If the router is configured to support the extensions defined in this document, it SHOULD attach the AS-PATH validation state extended community to BGP UPDATE messages sent to IBGP peers by mapping the computed validation state in the last octet of the extended community. Similarly, a receiving BGP speaker, in the absence of validation state set based on local data, SHOULD derive a validation state from the last octet of the extended community, if present.
      </t>
      <t>
        An implementation SHOULD NOT send more than one instance of the AS-PATH validation state extended community.  However, if more than one instance is received, an implementation MUST disregard all instances other than the one with the numerically greatest validation state value.  If the value received is greater than the largest specified value (2), the implementation MUST apply a strategy similar to attribute discard <xref target="RFC7606"/> by discarding the erroneous community and logging the error for further analysis.
      </t>
      <t>
        By default, implementations MUST drop the AS-PATH validation state extended community if received from an External BGP (EBGP) peer, without processing it further.  Similarly, by default, an implementation SHOULD NOT send the community to EBGP peers.  However, it SHOULD be possible to configure an implementation to send or accept the community when warranted.  An example of a case where the community would reasonably be received from, or sent to, an EBGP peer is when two adjacent ASes are under control of the same administration.
      </t>
    </section>
    <section title="Deployment Considerations" anchor="deploy">
      <t>
        In deployment scenarios in which not all the speakers in an autonomous system are upgraded to support the extensions defined in this document, it is necessary to define policies that match on the AS-PATH validation extended community and set another BGP attribute that influences selection of the best path in the same way that an implementation of this extension would.
      </t>
    </section>
    <section title="IANA Considerations" anchor="iana">
      <t>
          The value 0x03 in the "Non-Transitive Opaque Extended Community Sub-Types" registry is unassigned by IANA. This value can be used as "BGP AS-PATH Validation State Extended Community".
      </t>
    </section>
    <section title="Security Considerations" anchor="security">
      <t>
          Security considerations such as those described in <xref target="RFC4272"/> continue to apply. Since this document introduces an extended community that will generally be used to affect route selection, the analysis in Section 4.5 ("Falsification") of <xref target="RFC4593"/> is relevant. These issues are neither new, nor unique to the origin validation extended community.
      </t>
      <t>
          This document describes a scheme where router A outsources validation to some router B. If this scheme is used, the participating routers should have the appropriate trust relationship -- B should trust A either because they are under the same administrative control. The security properties of the propagation path between the two routers should also be considered. See <xref target="RFC7454"/> Section 5.1 for advice regarding protection of the propagation path.
      </t>
    </section>
  </middle>
  <back>
    <references title="Normative References">
      <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/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>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="RFC8174" target="https://www.rfc-editor.org/info/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>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>
    </references>
    <references title="Informative References">
      <reference anchor="RFC4360" target="https://www.rfc-editor.org/info/rfc4360">
        <front>
          <title>BGP Extended Communities Attribute</title>
          <author fullname="S. Sangli" initials="S." surname="Sangli"/>
          <author fullname="D. Tappan" initials="D." surname="Tappan"/>
          <author fullname="Y. Rekhter" initials="Y." surname="Rekhter"/>
          <date month="February" year="2006"/>
          <abstract>
          <t>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="RFC7153" target="https://www.rfc-editor.org/info/rfc7153">
        <front>
          <title>IANA Registries for BGP Extended Communities</title>
          <author fullname="E. Rosen" initials="E." surname="Rosen"/>
          <author fullname="Y. Rekhter" initials="Y." surname="Rekhter"/>
          <date month="March" year="2014"/>
          <abstract>
          <t>This document reorganizes the IANA registries for the type values and sub-type values of the BGP Extended Communities attribute and the BGP IPv6-Address-Specific Extended Communities attribute. This is done in order to remove interdependencies among the registries, thus making it easier for IANA to determine which codepoints are available for assignment in which registries. This document also clarifies the information that must be provided to IANA when requesting an allocation from one or more of these registries. These changes are compatible with the existing allocations and thus do not affect protocol implementations. The changes will, however, impact the "IANA Considerations" sections of future protocol specifications. This document updates RFC 4360 and RFC 5701.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="7153"/>
        <seriesInfo name="DOI" value="10.17487/RFC7153"/>
      </reference>
      <reference anchor="RFC7606" target="https://www.rfc-editor.org/info/rfc7606">
        <front>
          <title>Revised Error Handling for BGP UPDATE Messages</title>
          <author fullname="E. Chen" initials="E." role="editor" surname="Chen"/>
          <author fullname="J. Scudder" initials="J." role="editor" surname="Scudder"/>
          <author fullname="P. Mohapatra" initials="P." surname="Mohapatra"/>
          <author fullname="K. Patel" initials="K." surname="Patel"/>
          <date month="August" year="2015"/>
          <abstract>
          <t>According to the base BGP specification, a BGP speaker that receives an UPDATE message containing a malformed attribute is required to reset the session over which the offending attribute was received. This behavior is undesirable because a session reset would impact not only routes with the offending attribute but also other valid routes exchanged over the session. This document partially revises the error handling for UPDATE messages and provides guidelines for the authors of documents defining new attributes. Finally, it revises the error handling procedures for a number of existing attributes.</t>
          <t>This document updates error handling for RFCs 1997, 4271, 4360, 4456, 4760, 5543, 5701, and 6368.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="7606"/>
        <seriesInfo name="DOI" value="10.17487/RFC7606"/>
      </reference>
      <reference anchor="RFC4272" target="https://www.rfc-editor.org/info/rfc4272">
        <front>
          <title>BGP Security Vulnerabilities Analysis</title>
          <author fullname="S. Murphy" initials="S." surname="Murphy"/>
          <date month="January" year="2006"/>
          <abstract>
          <t>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>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="RFC4593" target="https://www.rfc-editor.org/info/rfc4593">
        <front>
          <title>Generic Threats to Routing Protocols</title>
          <author fullname="A. Barbir" initials="A." surname="Barbir"/>
          <author fullname="S. Murphy" initials="S." surname="Murphy"/>
          <author fullname="Y. Yang" initials="Y." surname="Yang"/>
          <date month="October" year="2006"/>
          <abstract>
          <t>Routing protocols are subject to attacks that can harm individual users or network operations as a whole. This document provides a description and a summary of generic threats that affect routing protocols in general. This work describes threats, including threat sources and capabilities, threat actions, and threat consequences, as well as a breakdown of routing functions that might be attacked separately. This memo provides information for the Internet community.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="4593"/>
        <seriesInfo name="DOI" value="10.17487/RFC4593"/>
      </reference>
      <reference anchor="RFC7454" target="https://www.rfc-editor.org/info/rfc7454">
        <front>
          <title>BGP Operations and Security</title>
          <author fullname="J. Durand" initials="J." surname="Durand"/>
          <author fullname="I. Pepelnjak" initials="I." surname="Pepelnjak"/>
          <author fullname="G. Doering" initials="G." surname="Doering"/>
          <date month="February" year="2015"/>
          <abstract>
          <t>The Border Gateway Protocol (BGP) is the protocol almost exclusively used in the Internet to exchange routing information between network domains. Due to this central nature, it is important to understand the security measures that can and should be deployed to prevent accidental or intentional routing disturbances.</t>
          <t>This document describes measures to protect the BGP sessions itself such as Time to Live (TTL), the TCP Authentication Option (TCP-AO), and control-plane filtering. It also describes measures to better control the flow of routing information, using prefix filtering and automation of prefix filters, max-prefix filtering, Autonomous System (AS) path filtering, route flap dampening, and BGP community scrubbing.</t>
          </abstract>
        </front>
        <seriesInfo name="BCP" value="194"/>
        <seriesInfo name="RFC" value="7454"/>
        <seriesInfo name="DOI" value="10.17487/RFC7454"/>
      </reference>
      <reference anchor="I-D.ietf-sidrops-aspa-verification" target="https://datatracker.ietf.org/doc/html/draft-ietf-sidrops-aspa-verification-16" xml:base="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-sidrops-aspa-verification.xml">
        <front>
          <title>BGP AS_PATH Verification Based on Autonomous System Provider Authorization (ASPA) Objects</title>
          <author fullname="Alexander Azimov" initials="A." surname="Azimov">
            <organization>Yandex</organization>
          </author>
          <author fullname="Eugene Bogomazov" initials="E." surname="Bogomazov">
            <organization>Qrator Labs</organization>
          </author>
          <author fullname="Randy Bush" initials="R." surname="Bush">
            <organization>Internet Initiative Japan &amp; Arrcus, Inc.</organization>
          </author>
          <author fullname="Keyur Patel" initials="K." surname="Patel">
            <organization>Arrcus</organization>
          </author>
          <author fullname="Job Snijders" initials="J." surname="Snijders">
            <organization>Fastly</organization>
          </author>
          <author fullname="Kotikalapudi Sriram" initials="K." surname="Sriram">
            <organization>USA National Institute of Standards and Technology</organization>
          </author>
          <date day="29" month="August" year="2023"/>
          <abstract>
            <t>This document describes procedures that make use of Autonomous System Provider Authorization (ASPA) objects in the Resource Public Key Infrastructure (RPKI) to verify the Border Gateway Protocol (BGP) AS_PATH attribute of advertised routes. This type of AS_PATH verification provides detection and mitigation of route leaks and improbable AS paths. It also provides protection, to some degree, against prefix hijacks with forged-origin or forged-path-segment.</t>
          </abstract>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-ietf-sidrops-aspa-verification-16"/>
      </reference>
    </references>
  </back>
</rfc>
