Key takeaways

  • A Route Origin Authorization (ROA) is a signed object that states which autonomous system number (ASN) is authorized to originate a given prefix, up to a maximum length. It says nothing about who may carry the traffic.
  • Route-origin validation, defined in RFC 6811, compares each BGP route to the ROA data and labels it Valid, Invalid or NotFound. Invalid means a ROA covers the prefix but none matches the origin AS and length.
  • ARIN's hosted RPKI means ARIN runs the certificate authority and signs your ROAs. It is open only to direct resource holders; networks that received space from an upstream must ask the upstream to publish the ROAs.
  • Make ROAs minimal. RFC 9319 recommends authorizing only the prefixes you actually originate and avoiding loose maxLength values, which can leave room for forged-origin hijacks.
  • Before you publish, list every ASN that originates your space, including DDoS-protection providers and upstreams that announce on your behalf. A missing ROA turns a legitimate route into an Invalid one for networks that drop invalids.
  • Publishing ROAs protects your prefixes from other people's networks. Validating routes on your own routers protects you from other people's mistakes. Do both, in that order.

The problem RPKI addresses

BGP, the protocol that carries routes between networks, accepts an announcement from a neighbor and passes it on. ARIN's overview describes the history: in the early Internet routing depended on mutual trust, and as the network grew into a commercial platform it became vulnerable to abuse. A wrong announcement can be an accident, such as a leaked route or a mistyped prefix, or an attack that pulls traffic toward the wrong network. Either way, customers see an outage or their traffic is diverted.

RPKI is the Internet's answer to a narrow part of that problem. As ARIN puts it, it uses cryptographically verifiable statements to ensure that Internet number resources are certifiably linked to the stated holders, so a holder can attest which ASNs should originate its prefixes. The architecture is described in RFC 6480: a public key infrastructure for Internet number resources, ROAs as signed objects and repositories that distribute them.

What a ROA states

ARIN describes a ROA as a cryptographically signed object that states which ASN is authorized to originate a particular IP address prefix or set of prefixes. In ARIN Online a ROA is built from an origin AS, a prefix with a maximum length, and an optional name. The ROA can only cover resources in your own resource certificate. Space that was reallocated or reassigned to someone else cannot be added to your certificate.

Read the statement carefully. It says that this ASN may originate this prefix, and that announcements more specific than the maximum length are not authorized. It does not say which networks may carry the route, and it does not validate the path. It is an origin claim, and that is by design.

Route-origin validation: valid, invalid, not found

A ROA does nothing until a network checks routes against it. RFC 6811 defines how. A validator downloads and checks the signed objects and builds a local cache of validated ROA payloads, each with an address, a prefix length, a maximum length and an origin ASN. The router then compares each received route to that data. The RFC defines the terms: a route prefix is covered when a payload prefix is equal to or shorter than it and matches in the shared bits, and matched when it is covered, no longer than the maximum length and the origin ASN is the same.

  • Valid: at least one payload matches the route.
  • Invalid: at least one payload covers the route, but none matches it. Either the origin ASN is wrong, or the route is more specific than any payload allows.
  • NotFound: no payload covers the route at all. Routes for address space that has no ROA yet land here.

The RFC leaves the policy to the operator. A network can prefer valid routes, or drop invalid ones. It also warns that the global RPKI presents a loosely consistent view, and that one cache or router can have different data than another, so allow time after any change.

ARIN hosted RPKI for a regional network

ARIN offers three models: hosted, delegated, and a repository publication service. Hosted RPKI is the simplest. ARIN hosts the certificate authority and signs your ROAs, with the keys protected by a hardware security module and a repository that ARIN runs. It needs little or no coding. Only direct resource holders can take part, and the resources must be covered by an ARIN agreement. A downstream customer that received space from an upstream provider must ask that provider to submit the ROAs.

The steps, in ARIN Online: open Routing Security, sign up for RPKI for the organization, choose Hosted, request the certificate, then create ROAs from the ROA page. During creation you can choose whether to create a matching route object in the Internet Routing Registry. After submission the information reaches ARIN's repository within a few minutes. ARIN notes that duplicate and overlapping ROAs are no longer allowed, because the ROA auto-renew feature removed the need for them. Check that a ROA is live with an RPKI validator that has fetched ARIN's repository. A deleted ROA takes effect immediately in ARIN's database and in the public repository within 24 hours.

Writing ROAs that will not hurt you

The usual failure is a ROA that is wrong, not one that is missing. Work through this list before you publish.

  • Inventory your announcements. Pull the routes you originate today and the ASN that announces each one. Include anything announced from a backup site or from a mitigation provider during an attack.
  • Match the real announcements. If you announce a /22 as two /23s, the ROA must cover what you actually send.
  • Keep maxLength tight. RFC 9319 explains that loose maxLength values are a hijack risk: measurements it cites found that most prefixes in such ROAs were exposed to a forged-origin sub-prefix hijack. It recommends minimal ROAs that authorize only what is originated in BGP, and avoiding maxLength except in specific cases.
  • Add ROAs for every origin. If two ASNs may legitimately originate a prefix, publish a ROA for each, so an upstream change does not turn your route Invalid.
  • Check after every renumbering, transfer or new circuit. An address transfer is the moment ROAs most often go stale.

Start validating, too

Once your own space is covered, add validation to your edge routers: run a validator, connect your routers to it, and apply policy. A careful order is to log and tag invalid routes for a few weeks, check for false positives, then prefer valid routes over not-found ones, and finally reject invalids. Run more than one validator so validation keeps working if one fails.

Where MANRS fits

Mutually Agreed Norms for Routing Security (MANRS) is a community effort that asks network operators for a small set of routing-security actions. Described generally, they cover filtering so you announce only what you should and accept only what you should, preventing spoofed traffic, keeping contact information current so other operators can reach you, and publishing routing information, including ROAs, so others can validate your routes. RPKI work maps onto the last of these. We make no claim about any network's participation; use the program's own pages as the source if you want to join.

Our team designs and operates BGP edges, RPKI publication and route-origin validation for regional networks, and helps with address transfers so that ROAs stay correct.

Sources

This article is general information, not legal or technical advice for your environment. Product menus, license names and provider rules change; check the vendor's current documentation before you act. Last reviewed .

Next article

Related reading

Need help with this?

Cloud cost review and management, without compromising on quality or security.

Cloud Management