<?xml version="1.0" encoding="US-ASCII"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd">
<?rfc toc="yes"?>
<?rfc tocompact="yes"?>
<?rfc tocdepth="3"?>
<?rfc tocindent="yes"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes"?>
<?rfc comments="yes"?>
<?rfc inline="yes"?>
<?rfc compact="yes"?>
<?rfc subcompact="no"?>
<rfc category="std" docName="draft-geng-sidrops-regionalized-roa-00"
     ipr="trust200902">
  <front>
    <title abbrev="Regionalized ROAs">AS Hijacking Detection and Mitigation in
    the Presence of Regionalized ROAs</title>

    <author fullname="Nan Geng" initials="N." surname="Geng">
      <organization>Huawei Technologies</organization>

      <address>
        <postal>
          <street>Huawei Campus, No. 156 Beiqing Road</street>

          <city>Beijing</city>

          <region/>

          <code>100095</code>

          <country>China</country>
        </postal>

        <phone/>

        <facsimile/>

        <email>gengnan@huawei.com</email>

        <uri/>
      </address>
    </author>

    <author fullname="Shunwan Zhuang" initials="S." surname="Zhuang">
      <organization>Huawei Technologies</organization>

      <address>
        <postal>
          <street>Huawei Campus, No. 156 Beiqing Road</street>

          <city>Beijing</city>

          <region/>

          <code>100095</code>

          <country>China</country>
        </postal>

        <phone/>

        <facsimile/>

        <email>zhuangshunwan@huawei.com</email>

        <uri/>
      </address>
    </author>

    <author fullname="Haibo Wang" initials="H." surname="Wang">
      <organization>Huawei Technologies</organization>

      <address>
        <postal>
          <street>Huawei Campus, No. 156 Beiqing Road</street>

          <city>Beijing</city>

          <region/>

          <code>100095</code>

          <country>China</country>
        </postal>

        <phone/>

        <facsimile/>

        <email>rainsword.wang@huawei.com</email>

        <uri/>
      </address>
    </author>

    <author fullname="Longfei Dai" initials="L." surname="Dai">
      <organization>Huawei Technologies</organization>

      <address>
        <postal>
          <street>Huawei Campus, No. 156 Beiqing Road</street>

          <city>Beijing</city>

          <region/>

          <code>100095</code>

          <country>China</country>
        </postal>

        <phone/>

        <facsimile/>

        <email>larry.dai@huawei.com</email>

        <uri/>
      </address>
    </author>

    <date day="20" month="September" year="2026"/>

    <abstract>
      <t>Resource Public Key Infrastructure (RPKI) Route Origin Validation
      (ROV) verifies whether an Autonomous System (AS) is authorized to
      originate a given IP prefix. However, multi-national or geographically
      dispersed ASes often hold IP prefix allocations from different Regional
      Internet Registries (RIRs) or announce specific prefixes only within
      designated geographic regions under a single Origin AS. An attacker
      located in a different region can maliciously announce an authorized
      prefix under the same legitimate Origin AS, effortlessly bypassing
      standard RPKI ROV. This document defines the concept of "Regionalized
      ROA" (R-ROA), specifies protocol enhancements to convey regional scope
      metadata from Trust Anchors down to routers via RPKI-Router protocol
      extensions, and outlines enhanced validation procedures to detect and
      mitigate intra-AS cross-regional route hijacking.</t>

      <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">
      <t><xref target="RFC6811"/> defines Route Origin Validation (ROV), which
      uses Route Origin Authorizations (ROAs) issued within the Resource
      Public Key Infrastructure (RPKI) <xref target="RFC6480"/> to verify
      whether a BGP route's Origin AS is authorized to announce a specific IP
      prefix. While ROV effectively prevents traditional Origin AS hijacking,
      it cannot detect attacks where the attacker spoofs the legitimate Origin
      AS or where an attacker within a legitimate AS re-announces a regionally
      restricted prefix in an unauthorized geographic zone.</t>

      <t>In operational networks, large enterprise networks, content delivery
      networks (CDNs), and global Tier-1 service providers frequently hold IP
      address blocks allocated across multiple Regional Internet Registries
      (RIRs), such as RIPE NCC, APNIC, and ARIN, while utilizing a single
      globally unique Autonomous System Number (ASN).</t>

      <t><figure>
          <artwork align="left"><![CDATA[+---------------+---------+------------------------+------------+
| Prefixes      | Origin  | Source RIR / Trust     | Intended   |
|               | AS      | Anchor (TA)            | Region     |
+---------------+---------+------------------------+------------+
| 10.1.0.0/16   | AS64596 | RIPE NCC RPKI Root     | Europe     |
| 10.2.0.0/16   | AS64596 | APNIC RPKI Root        | Asia       |
| 10.3.0.0/16   | AS64596 | ARIN RPKI Root         | N. America |
+---------------+---------+------------------------+------------+

Figure 1: Geographically Dispersed Prefix Usage

]]></artwork>
        </figure>Note: The addresses used in Figure 1 are for illustrative
      purposes.</t>

      <t>Under current specifications, RPKI Relying Parties (RPs) and routers
      ingest ROAs into an Ingress Validation Database without regional or RIR
      context. When viewed on a BGP router, the ROA cache presents an
      undifferentiated list:</t>

      <t><figure>
          <artwork align="left"><![CDATA[
Command: show ip bgp rpki table
-----------------------------------------------------------------
Network         Maxlen  Origin-AS  Source  Neighbor
10.1.0.0/16     16      64596      0       192.168.160.2/43779
10.2.0.0/16     16      64596      0       192.168.160.2/43779
10.3.0.0/16     16      64596      0       192.168.160.2/43779
-----------------------------------------------------------------

Figure 2: Legacy ROA Table

]]></artwork>
        </figure>Consider a scenario where AS64596 intends for 10.2.0.0/16 to
      be announced exclusively in Asia (APNIC region). An attacker (or an
      unauthorized edge node) located in Europe originates a BGP announcement
      for 10.2.0.0/16 with Origin AS64596 into European transit networks.</t>

      <t>Because the ROA database authorizes (10.2.0.0/16, AS64596) globally,
      standard [RFC6811] ROV marks this illegitimate announcement as 'Valid'.
      If the malicious path in Europe offers a shorter AS-PATH or better BGP
      metrics, European traffic destined for 10.2.0.0/16 will be hijacked.</t>

      <t>This vulnerability exists because regional authorization metadata
      inherent to RIR allocations and ROA issuance is stripped before reaching
      the router's decision engine. This document specifies:</t>

      <t><list style="numbers">
          <t>A schema for carrying Region Identifiers in ROAs (Regionalized
          ROA).</t>

          <t>Extensions to the RPKI-Router Protocol [RFC8210] to propagate
          Region Identifiers to routers.</t>

          <t>Enhanced Route Origin Validation procedures incorporating
          Regional Context (R-ROV) to detect cross-regional hijacking.</t>
        </list></t>
    </section>

    <section title="Definitions and Acronyms">
      <t><list style="symbols">
          <t>ROV: Route Origin Validation <xref target="RFC6811"/>.</t>

          <t>R-ROA: Regionalized Route Origin Authorization. A ROA augmented
          with a standardized Region Identifier.</t>

          <t>R-ROV: Regionalized Route Origin Validation. The enhanced
          validation logic executing on BGP Speakers.</t>

          <t>Region Identifier (Region-ID): A standardized identifier encoding
          a geographical or administrative scope (e.g., ISO 3166-1 country
          code, UN M49 region code, or RIR Authority Code).</t>

          <t>RIR: Regional Internet Registry</t>

          <t>RP: Relying Party</t>

          <t>RPKI: Resource Public Key Infrastructure</t>
        </list></t>
    </section>

    <section title="Regionalized ROA Architecture and Protocol Extensions">
      <t/>

      <section title="Option 1: Cryptographic In-Band Extension (R-ROA Extension)">
        <t>An extended ROA object payload is defined by incorporating an
        optional `RegionIdentifier` attribute within the ROA eContent
        structure <xref target="RFC9582"/>.</t>

        <t>RegionIdentifier CHOICE {</t>

        <t>rirCode ENUMERATED { ripe(1), apnic(2), arin(3), lacnic(4),
        afrinic(5) },</t>

        <t>isoCountryCode PrintableString (SIZE (2)), -- ISO 3166-1
        alpha-2</t>

        <t>unRegionCode INTEGER (0..999) -- UN M49 numeric</t>

        <t>}</t>

        <t>When an IP Resource Holder creates a ROA, it optionally binds the
        Prefix to its designated operational region.</t>

        <t/>
      </section>

      <section title="RPKI-Router Protocol (RTR) Extensions">
        <t>To transport R-ROAs from Relying Party (RP) caches to routers, this
        document extends the RTR PDU definitions <xref target="RFC8210"/>.</t>

        <t>A new PDU or an extended field in the IPv4/IPv6 Prefix PDU is
        introduced:</t>

        <t><figure>
            <artwork align="left"><![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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|  Version (2)  |  PDU Type (n) |           Reserved            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                            Length                             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Flags |  Length |  Max Length |          Region-ID            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                         Autonomous System                     |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                        IPv4 Prefix / IPv6                     |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                  Figure 3: Extended RTR Prefix PDU
]]></artwork>
          </figure>Region-ID: A 16-bit unsigned integer representing the
        authoritative RIR or geographical scope (e.g., 0x0001 = RIPE, 0x0002 =
        APNIC, 0x0003 = ARIN).</t>

        <t/>
      </section>

      <section title="Option 2: Local Out-of-Band Management Database">
        <t>In environments where RPKI objects cannot be updated immediately,
        the RP or local management plane MAY synthesize an Enhanced ROA
        Database by ingesting RIR Delegated Stats files and Geolocation
        databases (e.g., Geolocation Data in RPKI <xref
        target="RFC9632"/>).</t>

        <t>The enhanced local cache presented on the router is structured
        as:</t>

        <t><figure>
            <artwork align="left"><![CDATA[
Command: show ip bgp rpki table
--------------------------------------------------------------------
Network      Maxlen  Origin-AS  Source  Neighbor        Region-ID
10.1.0.0/16  16      64596      0       192.168.160.2   RIPE-NCC (EU)
10.2.0.0/16  16      64596      0       192.168.160.2   APNIC (AS)
10.3.0.0/16  16      64596      0       192.168.160.2   ARIN (NA)
--------------------------------------------------------------------

                  Figure 4: Enhanced R-ROA Local Table
]]></artwork>
          </figure></t>

        <t/>
      </section>
    </section>

    <section title="Operational Validation and Hijacking Mitigation (R-ROV)">
      <t/>

      <section title="Router Locality &amp; Ingress Context Identification">
        <t>To compare the expected ROA Region-ID against the actual path
        region, the validating BGP speaker MUST establish the "Received Region
        Context" (Region_Ctx) of an incoming BGP UPDATE. Region_Ctx is
        determined via one or more of the following control-plane
        mechanisms:</t>

        <t><list style="numbers">
            <t>Ingress Peer Configuration: BGP sessions are explicitly mapped
            to a Region-ID based on physical peering location or peer
            configuration.</t>

            <t>BGP Communities / Large Communities: Ingress border routers tag
            incoming routes with administrative location communities <xref
            target="RFC8092"/> (e.g., Target Region Community).</t>

            <t>Control-Plane Telemetry &amp; BGP-LS: The router correlates BGP
            update ingress points with network topology data.</t>
          </list></t>
      </section>

      <section title="Validation Workflow">
        <t>When a BGP speaker receives an UPDATE for prefix P with Origin AS A
        from an ingress peer with determined context Region_Ctx:</t>

        <t>Step 1: Perform Standard RFC 6811 Validation</t>

        <t>--------------------------------------------</t>

        <t>Look up (P, A) in the Validation Database.</t>

        <t><list style="symbols">
            <t>If match state is 'NotFound', return NotFound (Process per RFC
            6811).</t>

            <t>If match state is 'Invalid' (Origin AS mismatch or length
            exceeded), return Invalid (Reject or Deprioritize per RFC
            6811).</t>

            <t>If match state is 'Valid', proceed to Step 2.</t>
          </list>Step 2: Regional Scope Evaluation (R-ROV)</t>

        <t>--------------------------------------------</t>

        <t>Retrieve the Region-ID (Region_ROA) associated with the matching
        ROA entry.</t>

        <t><list style="symbols">
            <t>Case A (Unscoped ROA): If Region_ROA is empty or set to
            'Global' (0x0000), return Valid.</t>

            <t>Case B (Scoped ROA Check): If Region_ROA is specified: Compare
            Region_ROA with Region_Ctx (Ingress/Observed Region).<list
                style="symbols">
                <t>If Region_ROA == Region_Ctx: Return Valid.</t>

                <t>If Region_ROA != Region_Ctx: Return RegionMismatch (or
                Invalid_Region).</t>
              </list></t>
          </list></t>
      </section>

      <section title="Mitigation Actions">
        <t>Routes yielding a 'RegionMismatch' validation state SHOULD be
        handled according to local routing policy:</t>

        <t><list style="numbers">
            <t>Hard Drop: Reject the route to prevent cross-regional traffic
            leakage.</t>

            <t>Local Preference Penalty: Lower the BGP `LOCAL_PREF` attribute
            substantially (e.g., set to 10) so that legitimate local
            announcements or alternative paths are strictly preferred.</t>

            <t>Alarm and Logging: Generate syslog/NETCONF notification
            telemetry flagging potential intra-AS cross-regional
            hijacking.</t>
          </list></t>
      </section>
    </section>

    <section title="Security Considerations">
      <t><list style="symbols">
          <t>Spoofed Peering Context: If an attacker injects routes via an
          IBGP or EBGP session where Region_Ctx is misconfigured, false
          positives or negatives may occur. Operators MUST securely bind
          Region_Ctx to ingress interfaces.</t>

          <t>Transition and Backward Compatibility: Unextended routers will
          ignore the Region-ID field in RTR PDUs (or process standard RFC 6811
          entries), ensuring full backward compatibility.</t>

          <t>Geolocation Spoofing: Out-of-band Region-ID compilation relying
          on unverified Geolocation data could lead to invalid route drops.
          Standardized RPKI-signed location metadata [RFC9632] SHOULD be
          prioritized.</t>
        </list></t>
    </section>

    <section anchor="IANA" title="IANA Considerations">
      <t>This document requests IANA to allocate:</t>

      <t><list style="numbers">
          <t>A new PDU Type in the RPKI-Router Protocol (RTR) Registry
          [RFC8210] for "IPv4/IPv6 Prefix with Region PDU".</t>

          <t>A new Registry for "RPKI Region Identifiers".</t>
        </list></t>
    </section>

    <section title="Contributors ">
      <t>The following people made significant contributions to this
      document:</t>

      <t><figure>
          <artwork align="left"><![CDATA[TBD

]]></artwork>
        </figure></t>
    </section>

    <section anchor="Acknowledgements" title="Acknowledgements">
      <t>TBD.</t>

      <t/>
    </section>
  </middle>

  <back>
    <references title="Normative References">
      <?rfc include='reference.RFC.2119'?>

      <?rfc include='reference.RFC.6811'?>

      <?rfc include='reference.RFC.8174'?>

      <?rfc include='reference.RFC.8210'?>

      <?rfc include='reference.RFC.9582'?>
    </references>

    <references title="Informative References">
      <?rfc include='reference.RFC.6480'?>

      <?rfc include='reference.RFC.8092'?>

      <?rfc include='reference.RFC.9632'?>
    </references>
  </back>
</rfc>
