Live
Black Hat USAAI BusinessBlack Hat AsiaAI BusinessHow to Register a Globe SIM?Dev.to AIHow to Build a Manus AI Agent That Writes & Emails Lead Reports While You SleepMedium AIЯ сделал 50 видео за неделю - нейросеть справилась самаDev.to AIBig Tech firms are accelerating AI investments and integration, while regulators and companies focus on safety and responsible adoption.Dev.to AII Built a GitHub-Style Contribution Calendar That Shows When My AI Works Without MeDev.to AIMy YouTube Automation Uploaded 29 Videos in One Afternoon — Here is What BrokeDev.to AITowards end-to-end automation of AI researchHacker News AI TopCoding Agents Have Hands But No EyesDev.to AIA look at how some teens use popular role-playing chatbots and, for parents, the high stakes task of understanding the impact of the possibly addictive products (New York Times)TechmemeWhy Every AI Agent Needs a BlogDev.to AII Built a Zero-Login Postman Alternative in 5 Weeks. My Cofounder Is an AI and I Work Long Shifts.Dev.to AICheaper/faster/easier makes for step changes (and that's why even current-level LLMs are transformative)LessWrongBlack Hat USAAI BusinessBlack Hat AsiaAI BusinessHow to Register a Globe SIM?Dev.to AIHow to Build a Manus AI Agent That Writes & Emails Lead Reports While You SleepMedium AIЯ сделал 50 видео за неделю - нейросеть справилась самаDev.to AIBig Tech firms are accelerating AI investments and integration, while regulators and companies focus on safety and responsible adoption.Dev.to AII Built a GitHub-Style Contribution Calendar That Shows When My AI Works Without MeDev.to AIMy YouTube Automation Uploaded 29 Videos in One Afternoon — Here is What BrokeDev.to AITowards end-to-end automation of AI researchHacker News AI TopCoding Agents Have Hands But No EyesDev.to AIA look at how some teens use popular role-playing chatbots and, for parents, the high stakes task of understanding the impact of the possibly addictive products (New York Times)TechmemeWhy Every AI Agent Needs a BlogDev.to AII Built a Zero-Login Postman Alternative in 5 Weeks. My Cofounder Is an AI and I Work Long Shifts.Dev.to AICheaper/faster/easier makes for step changes (and that's why even current-level LLMs are transformative)LessWrong
AI NEWS HUBbyEIGENVECTOREigenvector

Stop Accepting BGP Routes on Trust Alone: Deploy RPKI ROV on IOS-XE and IOS XR Today

DEV Communityby FirstPassLabApril 1, 20266 min read2 views
Source Quiz

<p>If you run BGP in production and you're not validating route origins with RPKI, you're accepting every prefix announcement on trust alone. That's the equivalent of letting anyone walk into your data center and plug into a switch because they said they work there.</p> <p>BGP RPKI Route Origin Validation (ROV) is the mechanism that changes this. With 500K+ ROAs published globally, mature validator software, and RFC 9774 formally deprecating AS_SET, there's no technical barrier left. Here's how to deploy it on Cisco IOS-XE and IOS XR.</p> <h2> How RPKI ROV Actually Works </h2> <p>RPKI (Resource Public Key Infrastructure) cryptographically binds IP prefixes to the autonomous systems authorized to originate them. Three components make it work:</p> <p><strong>Route Origin Authorizations (ROAs

If you run BGP in production and you're not validating route origins with RPKI, you're accepting every prefix announcement on trust alone. That's the equivalent of letting anyone walk into your data center and plug into a switch because they said they work there.

BGP RPKI Route Origin Validation (ROV) is the mechanism that changes this. With 500K+ ROAs published globally, mature validator software, and RFC 9774 formally deprecating AS_SET, there's no technical barrier left. Here's how to deploy it on Cisco IOS-XE and IOS XR.

How RPKI ROV Actually Works

RPKI (Resource Public Key Infrastructure) cryptographically binds IP prefixes to the autonomous systems authorized to originate them. Three components make it work:

Route Origin Authorizations (ROAs) — Signed objects published by prefix holders in RPKI repositories. A ROA states: "AS 65001 is authorized to originate 192.0.2.0/24 with a maximum prefix length of /24."

RPKI Validators — Servers (Routinator, Fort, OctoRPKI) that download ROA data from the five RIR trust anchors, validate cryptographic signatures, and build a validated cache.

RPKI-to-Router Protocol (RTR) — RFC 8210 protocol that transports the validated cache to your BGP routers. Each prefix gets tagged:

  • Valid: Prefix and origin AS match a ROA

  • Invalid: A ROA exists but origin AS or prefix length doesn't match

  • NotFound: No ROA published for this prefix

⚠️ Critical distinction: NotFound ≠ Invalid. ~60% of the global table is still NotFound. Dropping those would black-hole most of the internet. The safe policy: drop Invalid, accept everything else, prefer Valid.

Connecting to RPKI Validators

IOS-XE Configuration

router bgp 65001  bgp rpki server tcp 10.0.0.50 port 8282 refresh 300  bgp rpki server tcp 10.0.0.51 port 8282 refresh 300

Enter fullscreen mode

Exit fullscreen mode

IOS XR Configuration

router bgp 65001  rpki server 10.0.0.50  transport tcp port 8282  refresh-time 300  !  rpki server 10.0.0.51  transport tcp port 8282  refresh-time 300  !

Enter fullscreen mode

Exit fullscreen mode

The refresh 300 sets a 300-second poll interval as a safety net. Incremental updates (Serial Notify) arrive between polls.

🔑 Always deploy at least two validators from different implementations (e.g., Routinator + Fort). If your only validator goes down and the RTR session expires, the router flushes its cache and silently disables ROV. You won't even know it happened.

Applying ROV Policy — Start Soft

Without a route-map acting on validation state, the router knows which routes are Invalid but does nothing about it. Here's where enforcement happens.

Phase 1: Tag and Deprioritize (Weeks 1-4)

route-map RPKI-POLICY permit 10  match rpki invalid  set community no-export additive  set local-preference 50 ! route-map RPKI-POLICY permit 20  match rpki valid  set local-preference 200 ! route-map RPKI-POLICY permit 30  match rpki not-found  set local-preference 100 ! router bgp 65001  address-family ipv4 unicast  neighbor 203.0.113.1 route-map RPKI-POLICY in

Enter fullscreen mode

Exit fullscreen mode

This does three things:

  • Invalid routes → local-preference 50 + no-export community (least preferred, not propagated)

  • Valid routes → local-preference 200 (strongly preferred)

  • NotFound routes → local-preference 100 (functional, but not as trusted)

Why not hard-drop Invalid immediately? Some Invalid states come from stale or misconfigured ROAs by other operators. You need to observe before you enforce.

Phase 2: Hard Enforcement (After Monitoring)

route-map RPKI-POLICY deny 10  match rpki invalid ! route-map RPKI-POLICY permit 20  match rpki valid  set local-preference 200 ! route-map RPKI-POLICY permit 30  match rpki not-found  set local-preference 100

Enter fullscreen mode

Exit fullscreen mode

Now Invalid routes are silently dropped at the edge. Route hijacks don't propagate into your network.

Verification and Troubleshooting

Check Validator Connectivity

Router# show bgp rpki servers

BGP RPKI Server: Server Address: 10.0.0.50 Server Port: 8282 Server State: established Serial Number: 47 Record Count: 482631`

Enter fullscreen mode

Exit fullscreen mode

Key checks:

  • Server State must be established — if connecting or down, check reachability and validator health

  • Record Count should be 400K-500K+ — if 0, the validator isn't syncing

Check a Specific Prefix

Router# show bgp ipv4 unicast 1.0.0.0/24

BGP routing table entry for 1.0.0.0/24 RPKI validation state: valid Origin AS: 13335 ROA: 1.0.0.0/24, maxlen /24, origin-as 13335`

Enter fullscreen mode

Exit fullscreen mode

Monitor Invalid Routes

Router# show bgp ipv4 unicast rpki invalid

Enter fullscreen mode

Exit fullscreen mode

This is your daily monitoring command during initial deployment. Cross-reference Invalid prefixes against the ROA database to separate genuine hijacks from ROA misconfigurations.

Common Issues

Problem Cause Fix

Validator session flapping MTU issues on RTR path Check path MTU; large cache responses trigger fragmentation

High record count but no Valid routes Route-map not applied to neighbor Verify neighbor X route-map RPKI-POLICY in

Prefix shows NotFound when you expect Valid ROA not published or expired Check ROA status in RPKI repositories directly

Validator shows 0 records Not syncing with RIR trust anchors Verify validator config syncs with all 5 RIRs

💡 Set up syslog/SNMP traps for RPKI session state changes. A validator failure should be a P1 alert, not something you discover during the next change window.

Beyond ROV: What's Coming

RPKI ROV validates the origin AS only. It can't detect route leaks where a legitimate AS improperly announces a prefix it received from a peer.

ASPA (Autonomous System Provider Authorization) is the emerging standard that encodes customer-provider AS relationships, enabling AS path validation. NIST is building test tools (the BRIO framework), and early adoption is expected in 2026-2027.

RFC 9774 deprecated AS_SET, which simplifies ROV — every route now has a single unambiguous origin AS. If you're still generating AS_SET in aggregate routes, update your aggregate-address configs now. Compliant peers will increasingly reject those routes.

Key Takeaways

  • RPKI ROV is production-ready — 500K+ ROAs, mature validators, no excuses

  • Start soft — tag Invalid with low local-pref for 2-4 weeks, then hard deny

  • Two validators minimum — single validator failure = silent ROV death

  • ROV is layer one — complement with ASPA and BGP session auth (TCP-AO) as they mature

  • Fix your aggregation — RFC 9774 killed AS_SET; update your configs

  • Alert on validator failures — treat RTR session drops as P1 incidents

BGP security is no longer optional for any network participating in the global routing system. RPKI ROV gives you a concrete, deployable mechanism to verify route origins today. Configure it, monitor it, enforce it.

Originally published at FirstPassLab. For more protocol deep dives and lab guides, visit firstpasslab.com.

AI Disclosure: This article was adapted with AI assistance. All technical content, configurations, and recommendations are based on documented Cisco IOS-XE/XR behavior, RFC specifications, and industry best practices. Human-reviewed for accuracy.

Was this article helpful?

Sign in to highlight and annotate this article

AI
Ask AI about this article
Powered by Eigenvector · full article context loaded
Ready

Conversation starters

Ask anything about this article…

Daily AI Digest

Get the top 5 AI stories delivered to your inbox every morning.

More about

announceupdateproduct

Knowledge Map

Knowledge Map
TopicsEntitiesSource
Stop Accept…announceupdateproductreviewpolicyglobalDEV Communi…

Connected Articles — Knowledge Graph

This article is connected to other articles through shared AI topics and tags.

Knowledge Graph100 articles · 247 connections
Scroll to zoom · drag to pan · click to open

Discussion

Sign in to join the discussion

No comments yet — be the first to share your thoughts!

More in Products