Skip to content
Fresh IPv4 news just dropped — 🎉 see what you’re missing

RPKI and ROA: Authorize and Verify an IPv4 Origin

RPKI lets a resource holder publish signed Route Origin Authorizations (ROAs) for its prefixes. A ROA identifies a permitted origin ASN and prefix length. Publish the intended authorization, verify its visibility in validation data, then coordinate the BGP change with your upstreams.

What the validation state tells you

Routers use validated prefix-origin data derived from RPKI to classify announcements into three states:

StateMeaningOperator check
ValidAt least one covering authorization matches the origin and permits the announced lengthConfirm it matches your intended routing plan
InvalidCovering authorization exists, but none matches both origin and lengthCompare the actual origin and prefix length with all covering records
NotFoundNo validated authorization covers the prefixConfirm whether publication is missing or not yet visible

One matching authorization is enough for Valid, even if another covering record differs. A wrong origin can be Invalid rather than NotFound because a less-specific ROA covers the route.

Validation does not prove the entire AS path, prevent every route leak, or guarantee forwarding. Creating a ROA also does not turn on validation or filtering on your own routers. Router-side validation deployment remains a separate task.

Before publishing

Have the actual prefix-origin plan, access to the resource holder’s RPKI service, an inventory of current announcements and a rollback plan. For leased space, the holder or its authorized administrator controls publication; tenant access is an arrangement to confirm, not an automatic right.

A letter of authorization and an IRR route object serve separate purposes. Check each requirement with the upstream.

Inventory existing and planned announcements

List every exact prefix and origin, including less-specific aggregates, intended more-specific routes and temporary migration origins. Check existing authorizations before adding one: the first covering ROA can make an existing route Invalid if its origin or length is omitted.

Example: 192.0.2.0/24 originated by documentation ASN AS64496. If providers A and B only carry it, both paths retain origin 64496. If the provider will originate the prefix under its own ASN, that is a different authorization plan.

Confirm RPKI control and choose exact authorizations

A ROA binds one origin ASN to one or more prefixes, with optional maximum lengths. Prefer authorizations for the routes you actually intend to originate.

For the example, authorize prefix 192.0.2.0/24, origin 64496, with an effective maximum length of 24. Depending on the portal, that means omitting an optional maxLength or entering 24 explicitly.

Avoid setting a broad maximum just in case. For example, 192.0.2.0/24 with maxLength: 25 also permits its /25 more-specific routes for that origin. Separate exact-prefix entries can limit authority to the routes you intend, including planned exceptions for mitigation services. Authorization does not override a network’s prefix-length filters.

Publish through the applicable registry service

These hosted-service entry points were checked on 15 November 2026. Account eligibility, privileges and portal labels can change. Use the current instructions linked by the NRO’s guide to all five registries.

RegistryWhere to startBefore committing
RIPE NCCRPKI Dashboard; create a hosted certification authority if needed, then create the ROAReview affected announcements and any invalidation warning
ARINARIN Online, Routing Security; enroll the eligible resources in hosted RPKI, then create the ROACheck the selected organization, origin and prefixes
APNICMyAPNIC, RPKI / Route Management; use an account with the required privilege and MFAReview pending changes and commit the intended ROA publication
LACNICThe holder’s RPKI service; create a ROA using the current hosted instructionsCheck the prefix, origin and maximum length
AFRINICMyAFRINIC, Resource Certification; activate the service where required and issue the ROACheck the resources, origin and applicable validity fields

Some portals offer both IRR and ROA options. Verify which records you are publishing. For a delegated certificate authority, use that system’s publication workflow rather than assuming the hosted portal controls it.

Verify the published origin authorization

Check the intended pair independently of the portal. This read-only example uses the documented RIPEstat validation API:

curl --fail --silent --show-error --get \
  'https://stat.ripe.net/data/rpki-validation/data.json' \
  --data-urlencode 'resource=AS64496' \
  --data-urlencode 'prefix=192.0.2.0/24' \
  | jq '.data | {status, description}'

The prefix and ASN are documentation values, not a live success test. Replace them with the planned pair. RIPEstat reports valid, invalid_asn, invalid_length or unknown; its unknown corresponds to no covering authorization in that view.

Check through another validator or the upstream’s own view and record observation times. A Valid result for a proposed pair does not prove the route is currently announced. Repository publication, validator refresh and router updates run on different schedules.

Change BGP and remove obsolete authorizations

For an origin migration, publish authorization for the new origin while retaining the old one for the explicitly approved overlap. Verify the new pair before changing BGP. Both origins can be valid during that window; this is a deliberate permission, not an error by itself.

After cutover, confirm the observed origin and traffic, wait through the agreed rollback period, then retire obsolete ROAs and IRR objects with their administrators. A resource transfer can also change certification authority; coordinate with both holders and the registry instead of assuming every transition can use the same overlap.

Worked example: changing the origin ASN

Assume the same authorized holder can publish for documentation prefix 192.0.2.0/24 throughout the change. The old origin is AS64496; the approved new origin is AS64499. This is an illustrative migration plan, not a recorded production change. For a registry transfer that changes certification control, agree a different handover sequence with the registries and both holders where needed.

StagePublished authorization and routing stateVerification and action
Before the changeExact /24 authorization for 64496; BGP still originates from 64496Old pair is Valid; preserve its working state as the agreed rollback
Prepare new originAdd an exact /24 authorization for 64499 while retaining the approved old one; stage the new IRR record and upstream filterValidate the proposed new pair independently; confirm the provider is ready before changing BGP
Cut overBoth intended origins remain authorized during the agreed window; change the actual BGP origin to 64499Observe 64499 from relevant external networks and test service traffic and the return path
Recover if acceptance failsThe agreed old authorization and routing arrangement remain availableRestore the approved old BGP origin through the responsible operator; recheck traffic before retrying
CompleteNew origin works and the rollback period endsRemove obsolete permission and IRR records for 64496, then confirm the intended published and observed state

Two transit providers carrying the new origin do not themselves require two additional origin authorizations. Add a provider’s ASN only if that provider is intentionally originating the prefix.

Stage and retire an IPv4 origin authorizationConcept timeline for one authorized holder retaining control of documentation prefix 192.0.2.0/24. Before: permit and observe AS64496. Stage: permit AS64496 and AS64499, while observing 64496. Cut over: both remain permitted while the new observed origin is 64499 and traffic is tested. Retire: remove obsolete 64496 permission after the agreed rollback window. An IRR update alone cannot validate a new BGP origin when the only covering ROA still permits 64496. The diagram assumes no other matching covering authorization and is not a universal registry-transfer sequence.RPKI / ORIGIN CHANGEIPV4.ONLINESame authorized holder / 192.0.2.0/24BeforeStageCut overRetireIRR changed first: compare ROA and BGPBeforeROA: 64496BGP: 64496Keep working routeStageROA: 64496 + 64499BGP: 64496Verify new permissionCut overROA: 64496 + 64499BGP: 64499Test; retain rollbackRetireROA: 64499BGP: 64499End old permissionIRR changed first?BGP 64499 + only a covering ROA for 64496 = InvalidConcept: permission, observed routing and service acceptance are separate.
Stage and retire an IPv4 origin authorizationConcept timeline for one authorized holder retaining control of documentation prefix 192.0.2.0/24. Before: permit and observe AS64496. Stage: permit AS64496 and AS64499, while observing 64496. Cut over: both remain permitted while the new observed origin is 64499 and traffic is tested. Retire: remove obsolete 64496 permission after the agreed rollback window. An IRR update alone cannot validate a new BGP origin when the only covering ROA still permits 64496. The diagram assumes no other matching covering authorization and is not a universal registry-transfer sequence.RPKI / ORIGIN CHANGEIPV4.ONLINEBeforeStageCut overRetireIRR changed first: compare ROA and BGPBeforeROA: 64496BGP: 64496Keep working routeStageROA: 64496 + 64499BGP: 64496Verify new permissionCut overROA: 64496 + 64499BGP: 64499Test; retain rollbackRetireROA: 64499BGP: 64499End old permissionIRR changed first?New BGP origin: 64499Old-only ROA: InvalidConcept: permission is not observation.

Stage the new origin permission before changing BGP, verify the new route and service, then retire obsolete permission after the agreed rollback window. This conceptual example assumes the same authorized holder retains publication control. ROA values show permitted origin ASNs; BGP values show the intended observed origin. The ASNs and prefix are reserved for documentation.

View full diagram

Failure case: the IRR changed before the ROA

Suppose the IRR object now names AS64499 and BGP has moved to 64499, but the only validated covering authorization still permits 64496. The new announcement is Invalid, because a covering record exists and none matches the new origin. The IRR update does not change that result.

Confirm the intended origin with the holder and upstream, then publish the approved matching authorization or use the agreed rollback if service cannot wait for publication and refresh. Recheck the validator and provider views before resuming. Do not delete all ROAs to make the warning disappear, or widen maxLength when the actual error is the ASN.

If both exact-prefix origins are intentionally authorized and visible to the validator, either matching origin can be Valid. A remaining old authorization does not make a matching new route Invalid. Conversely, Valid does not mean the old permission is still needed: retire it at the agreed removal point.

Use the prefix-announcement runbook for upstream acceptance and forwarding checks. If a validation check fails, compare the published data with the intended origin before changing it; widening maxLength or deleting all authorizations can conceal the actual mistake.

When arranging IPv4 address services, confirm who controls RPKI publication, who can request changes and how the upstream will verify readiness. No fixed publication time follows from acquiring the addresses.

Frequently asked questions

What is the difference between a ROA and route origin validation?
A ROA is a signed authorization published under the resource holder’s RPKI authority. Route origin validation compares a BGP route with validated authorization data. Creating a ROA does not enable filtering on your own routers.
Does NotFound mean the route is Invalid?
No. NotFound means no validated authorization covers the prefix. Invalid means covering authorization exists but none matches the announced origin and permitted length. Networks apply their own routing policies to these states.
Which ASN belongs in a ROA with two upstreams?
Use the ASN that originates the prefix. If your ASN remains the origin through both providers, another transit path alone needs no additional origin authorization. If a provider originates the prefix itself, authorize that origin separately where intended.
How long does a new ROA take to reach routers?
Publication, validator fetches, router-cache updates and policy processing occur separately. Confirm the new view with the relevant providers before cutover instead of assuming a universal propagation time.
Last updated on