Internship report: Who's running all those tiny RPKI servers?
The hidden infrastructure behind secure internet routing
Chose your color
Frequently visited
Frequently asked questions
The Whois is an easy-to-use tool for checking the availability of a .nl domain name. If the domain name is already taken, you can see who has registered it.
On the page looking up a domain name you will find more information about what a domain name is, how the Whois works and how the privacy of personal data is protected. Alternatively, you can go straight to look for a domain name via the Whois.
To get your domain name transferred, you need the token (unique ID number) for your domain name. Your existing registrar has the token and is obliged to give it to you within five days, if you ask for it. The procedure for changing your registrar is described on the page transferring your domain name.
To update the contact details associated with your domain name, you need to contact your registrar. Read more about updating contact details.
When a domain name is cancelled, we aren't told the reason, so we can't tell you. You'll need to ask your registrar. The advantage of quarantine is that, if a name's cancelled by mistake, you can always get it back.
One common reason is that the contract between you and your registrar says you've got to renew the registration every year. If you haven't set up automatic renewal and you don't renew manually, the registration will expire.
Wanneer je een klacht hebt over of een geschil met je registrar dan zijn er verschillende mogelijkheden om tot een oplossing te komen. Hierover lees je meer op pagina klacht over registrar. SIDN heeft geen formele klachtenprocedure voor het behandelen van een klacht over jouw registrar.
Would you like to be able to register domain names for customers or for your own organisation by dealing directly with SIDN? If so, you can become a .nl registrar. Read more about the conditions and how to apply for registrar status on the page becoming a registrar.
Domain names
Domain names
The hidden infrastructure behind secure internet routing
The Border Gateway Protocol (BGP) lacks built-in trust, leaving the internet routing layer exposed to accidental or malicious prefix hijacks. The Resource Public Key Infrastructure (RPKI) addresses that problem by letting address-space holders cryptographically authorise which Autonomous System may originate their prefixes, via Route Origin Authorizations (ROAs) published through a chain of trust anchored at the five Regional Internet Registries (RIRs). While most ROAs are published directly by the RIRs, a long tail of smaller, independently operated publication servers (run by cloud providers, ISPs, hobbyists, educational institutions and RPKIaaS companies) also contributes to the global RPKI dataset. In this blog we investigate who operates those small servers and why.
Every time you open a website, your traffic hops across dozens of routers guided by the Border Gateway Protocol (BGP). BGP is the glue of the internet: it tells routers where to send packets to reach any IP address on the planet. The trouble is that BGP was designed for an era when networks trusted each other, and misbehaviour was still uncommon. Any network can (accidentally or maliciously) announce that it owns an IP prefix it does not actually control. That is called a routing incident, and it can cause your traffic to be silently redirected to the wrong destination.
The Resource Public Key Infrastructure (RPKI) is (one of) the internet's answers to that problem. It works by letting the rightful owners of IP address blocks cryptographically sign a Route Origin Authorization (ROA); a small record that says: "IP prefix X is authorised to be announced by Autonomous System (AS) number Y." Routers that implement Route Origin Validation (ROV) then use those signed records to check incoming BGP announcements and drop the ones that don't match.
The entire system rests on a chain of trust anchored at the five Regional Internet Registries (RIRs): ARIN (North America), RIPE NCC (Europe/Middle East/Central Asia), APNIC (Asia-Pacific), LACNIC (Latin America) and AFRINIC (Africa). Those bodies issue IP address space to networks and operate the top-level RPKI certification authorities. ROA objects can be published directly from the RIR servers, or from smaller, independent publication servers.
Most ROA objects are published by the five RIRs, which are well-resourced, professionally maintained and globally trusted. But alongside those giants sits a long tail of smaller publication servers run by cloud providers, hobbyists, educational institutions, internet service providers (ISPs) and RPKI as a Service (RPKIaaS) companies. During the research described in this blog, we had a look at these ‘small’ servers to see what we can learn from them, why they operate and why they exist in the first place.
The first methodological challenge was defining what makes a server 'small'. We used a straightforward, ROA-count-based definition:
A server is classified as 'small' if it announces fewer than 1,300 ROA objects.
That threshold was chosen by inspecting the empirical cumulative distribution function (ECDF) of ROA counts across all known RPKI servers. The distribution is heavily skewed: a handful of large providers (the five RIRs and Amazon Web Services (AWS)) account for most ROAs. The 1,300-ROA cut-off captures the natural break between those large players and the rest.
One notable exclusion: the AWS RPKI Repository Delta Protocol (RRDP) servers. Amazon constructs its RPKI publication infrastructure unusually. Their architecture is distinct enough from the other small servers that it was kept out of scope. Whether that construction offers operational advantages remains an open question for future research.
The existence of small servers naturally raises the question: why bother? The RIRs already provide publication services as part of membership. The answer is that there are several legitimate reasons to operate independently; the table below lists a few examples.
Reason | Explanation |
|---|---|
RPKIaaS | Offer RPKI as a managed service with a uniform REST API, enabling customers to automate resource management without interacting with RIR portals directly or juggling multiple APIs. |
Cross-RIR simplicity | Organisations with IP allocations from multiple RIRs (e.g. both ARIN and RIPE) can update all their ROAs from a single interface instead of maintaining accounts at each registry. |
Research & education | Academic institutions and hobbyists can run Krill (NLnet Labs' open-source Certificate Authority (CA) software) to experiment with RPKI, test configurations, or contribute to deployment research. |
Operational control | Full control over publication schedules, object signing and infrastructure, useful for organisations with strict security requirements or custom routing setups. |
Fun / learning | Running your own RPKI server is a legitimate way to deepen your understanding of the internet routing infrastructure. Many of the smallest servers in the dataset appear to be personal or hobby setups. |
Table A: Reasons to operate an independent RPKI publication server.
Using the Routinator API (version 0.15.1), we fetched all ROA objects from each qualifying publication server as of 23 April 2026. The resulting dataset spans 2,467 unique ROAs covering 3,778 prefixes across 1,163 unique ASes. The table below summarises the key numbers.
Valid: at least one VRP covering the announced prefix exists (same or less specific, within max length) with a matching origin AS.
Invalid: a Validated ROA Payload (VRP) covering that prefix space exists, but part of the information in the VRP is incorrect, or the object has expired.
Unknown: no VRP was found, or an incorrect VRP was found and has been dropped.
Metric | Value | Note |
|---|---|---|
IPv4 prefixes with ROA coverage | 1,409 | Covering ~698,000 individual addresses |
IPv6 prefixes with ROA coverage | 2,369 | Covering an astronomical address range |
IPv4 fraction of internet | 0.0162% | A tiny but non-trivial slice |
Total ROA objects analysed | 3,778 | Across 1,163 unique ASes |
Valid ROA objects | 3,444 (91%) | Passing cryptographic validation |
Invalid ROA objects | 48 (1.2%) | Not passing cryptographic validation |
Unknown | 286 (7.6%) | Excluded from further analysis |
ROAs using maxLength | 53.98% | The set maxLength is set lower than the set bits of the prefix |
maxLength using ROAs with no BGP coverage | 19.6% | Potentially at risk of sub-prefix hijack |
Table B: Key statistics for the small RPKI server dataset (data collected 23 April 2026)
A few figures stand out. The covered IPv4 space (698,000 addresses, or 0.016% of all IPv4 addresses) and IPv6 space (adresses or %) both look small, but it is far from insignificant. The dataset includes prefixes hosting government services (such as gov.ai, the official domain of the Government of Anguilla) and potentially other services people rely on daily. The failure of such servers would not break the internet, but it could quietly make parts of it unverifiable for a subset of users.
None of the unknown ROA objects had active BGP announcements. That is good news, since it would indicate that the prefixes in question are vulnerable to BGP-hijacks.
The table below condenses the per-server statistics from the research. Each row represents one publication server, with columns showing prefix counts, validity breakdown, maxLength usage, BGP reachability and Firehol (a company that combines lists of different abuse lists to try and create a comprehensive and complete list of prefixes to block to ensure an acceptable level of safety) blocklist overlap. A few rows are shown below as examples.
Server | Prefixes | Valid | Invalid | Unknown | MaxLen | BGP % | At-Risk | Firehol |
|---|---|---|---|---|---|---|---|---|
r.magellan.ipxo.com | 776 | 755 | 18 | 3 | 164 | 100% | 103 | 4 |
cloudie-repo.rpki.app | 504 | 504 | 0 | 0 | 424 | 80.8% | 147 | 2 |
rpki.admin.freerangecloud.com | 476 | 476 | 0 | 0 | 48 | 100% | 28 | 0 |
rpki.sub.apnic.net | 390 | 254 | 28 | 108 | 91 | 98.2% | 27 | 4 |
krill.47272.net | 388 | 388 | 0 | 0 | 143 | 96.6% | 69 | 0 |
rpki.roa.net | 156 | 156 | 0 | 0 | 94 | 100% | 73 | 0 |
rsync.rp.ki | 150 | 150 | 0 | 0 | 104 | 98.7% | 81 | 0 |
krill.peering.ee.columbia.edu | 133 | 129 | 0 | 4 | 1 | 100% | 1 | 0 |
rpki-01.pdxnet.uk | 121 | 121 | 0 | 0 | 81 | 100% | 4 | 0 |
ca.nat.moe | 99 | 0 | 0 | 99 | 64 | 100% | 75 | 0 |
repo.rpki.space | 79 | 79 | 0 | 0 | 33 | 75.9% | 13 | 8 |
krill.accuristechnologies.ca | 45 | 45 | 0 | 0 | 3 | 88.9% | 1 | 0 |
rpki.axivora.net | 44 | 0 | 0 | 44 | 8 | 97.7% | 6 | 0 |
rpki.cc | 42 | 42 | 0 | 0 | 14 | 92.9% | 7 | 0 |
rpki.apernet.io | 37 | 18 | 0 | 19 | 10 | 100% | 6 | 0 |
Table C: Condensed overview of analysed RPKI publication servers (top 15 by prefix count). 'At-Risk' = maxLength ROAs with no corresponding BGP announcement for the authorised sub-prefixes.
In the remainder of this section, we will point out some servers that exhibit strange behaviours and describe the uncommon behaviours they exhibit.
With 776 prefixes, the Magellan server operated by the company IPXO is the largest in the dataset. All 776 are IPv4, and 100% are BGP-reachable, but 103 are flagged as at-risk due to broad maxLength settings without full BGP coverage of the authorised range.
With 8 Firehol level 1 blocklist matches out of only 79 prefixes, repo.rpki.space stands out immediately. Inspection of BGP Tools DNS records for this server reveals a high density of mailing domains, strongly suggesting that spam mailing infrastructure is hosted across the prefixes in question. One potential reason a spam operator would run their own RPKI server: the RIRs have active abuse prevention procedures, and having an independent publication server adds an extra step in the takedown chain; a layer of operational friction for abuse reporters.
This server is a striking outlier: every single one of its 99 ROA objects has unknown validity status, meaning all 99 failed cryptographic validation. Nevertheless, of the valid objects, 100% are BGP-reachable and 64 use maxLength..
This server announces almost half of its prefixes with maxLength set to 32 (IPv4) or 128 (IPv6): the maximum possible prefix length. That means that every IP address within the announced range is formally authorised. In practice, that is not exploitable: BGP does not accept prefixes more specific than /24 for IPv4 or /48 for IPv6, and the underlying prefixes are already at those limits. The reason for this unusual configuration remains unexplained.
One of the most interesting structural findings concerns the RIR origin of prefixes announced by small servers. When an organisation publishes ROAs on its own server, a natural expectation might be that it has cross-RIR allocations (i.e. IP space from multiple registries), which would make a single publication point convenient. The data tells a more nuanced story.
Server | ARIN | RIPE | APNIC | LACNIC | AFRINIC |
|---|---|---|---|---|---|
r.magellan.ipxo.com | ✓ | ||||
cloudie-repo.rpki.app | ✓ | ✓ | |||
rpki.admin.freerangecloud.com | ✓ | ✓ | ✓ | ||
rpki.sub.apnic.net | ✓ | ✓ | ✓ | ||
krill.47272.net | ✓ | ✓ | |||
rpki.roa.net | ✓ | ✓ | ✓ | ✓ | |
rsync.rp.ki | ✓ | ✓ | ✓ | ||
krill.peering.ee.columbia.edu | ✓ | ||||
rpki-01.pdxnet.uk | ✓ | ✓ | |||
ca.nat.moe | ✓ | ||||
repo.rpki.space | ✓ | ✓ | |||
krill.accuristechnologies.ca | ✓ | ✓ | |||
rpki.axivora.net | ✓ | ||||
rpki.cc | ✓ | ||||
rpki.apernet.io | ✓ | ✓ | |||
rpki-repo.as207960.net | ✓ | ||||
rpki.sunoaki.net | ✓ | ||||
rpki.pudu.be | ✓ | ✓ |
Table D: RIR origin presence per publication server (condensed first 18 servers). A checkmark indicates that at least one prefix from that RIR was present in the server's ROA set.
A sizable proportion of servers announce prefixes from only a single RIR (mainly RIPE). For servers that draw exclusively from RIPE, one of the most compelling reasons for running a custom server (avoiding managing multiple RIR accounts) does not apply.
More than half of all ROA objects in the dataset (53.98%) use the maxLength parameter to authorise announcements for prefixes more specific than the one listed in the ROA. RFC 9319 explicitly discourages that practice.
An ROA for 103.0.0.0/22 with maxLength /24 does not just authorise the /22; it authorises every /23 and /24 within that block, 103.0.0.0/24 through 103.0.3.0/24, without requiring a separate ROA for each. From a BGP perspective, the most specific matching prefix wins. So, if an attacker who controls the authorised AS number announces 103.0.0.0/24 (in principle), every relying party will mark it valid. The broader ROA has authorised the hijack (if there is no competing BGP announcement that is faster, and the announcement is RPKI valid).
Of the ROAs with a broad maxLength setting, approximately 80% already have the more specific sub-prefixes covered by existing BGP announcements, meaning the actual exposure is limited in most cases.
However, the remaining 19.6% have no BGP announcement covering the authorised sub-prefixes. Those represent potentially at-risk configurations: a sub-prefix hijack using the legitimate origin of the ASN could pass RPKI validation unchallenged (again if there is no competing BGP announcement that is faster, and the announcement is RPKI valid).
The fix is straightforward in principle: create a separate ROA for each prefix you intend to announce and set maxLength equal to the prefix length itself. The downside is that that increases ROA count significantly: exactly the opposite of the aggregation benefit that maxLength was designed to provide.
BGPsec is a method that verifies whether the announced BGP route has been cryptographically validated by every single AS in its path. That means that BGPsec verifies whether every AS in the announced path agrees that the path is valid. Even though BGPsec has been standardised since 2017, we found that (not only in our dataset) BGPsec is simply not deployed (having only a single AS announcing its routing keys) as also noted by Lisa Bruder in her blog post: BGPsec - Could you run it if you wanted to?.
We have reached out to one of the bigger operators (Axivora which operates: rpki.cc, krill.accuristechnologies.ca and rpki.folf.systems) to understand why they run their own RRDP notification server, and we got the following response:
The short answer is that we originally started running our own RPKI publication infrastructure because we were (and still are) Internet enthusiasts who wanted to understand how the system actually works.
Axivora still leases two dedicated IPv6 PA /40 allocations for educational and research purposes. Within those prefixes, they delegate smaller allocations to individuals who want their own independent address space. They handle the logistics of creating the corresponding ROA and IRR records for them, and they eliminate the need for them to operate their own ASN.
The original reason for running their own publication infrastructure was to get a better understanding of the RPKI ecosystem and to learn how ROAs propagate through the internet.
Today, all their business prefixes use RIPE's PaaS services, yet they continue to operate their own publisher server for research, educational and experimental purposes.
And, admittedly, we still think it's pretty cool.
Taken together, the data suggests that small RPKI publication servers cover a relatively modest corner of the internet. Even though the prefixes they cover are tiny in aggregate, they include some crucial services such as government domains. While the failure of such servers would not break entire the internet, it would have ramifications for the verifiability of the internet and potentially break specific prefixes, making them unreachable.
On the validation side, the picture seems relatively healthy: 92.4% of the ROA objects are valid and, of those objects, 91% carry an active and matching BGP announcement. The only notable metric here is that the unknown rate of 7.6% is relatively high.
A clearer area that raises some concern is the usage of maxLength. More than half of the ROA objects did not adhere to the recommendations of RFC 9319, which is not inherently problematic. However, 19.6% of those did not have BGP announcements that covered all sub-prefixes they permitted. Leaving a relatively limited but relevant risk of sub-prefix hijacks. That risk is, however, not exclusive to those publication servers and could very well exist with larger publication servers as well.
Other protective technologies had similarly not been deployed on the set of servers we studied. BGPsec was not deployed at all.
As for why operators choose to run their own infrastructure; the data broadly suggests cross-RIR simplicity as the dominant reason, but not the only one. Educational purposes proved to be a less common motivation than initially expected.
Article by:
Trainee
Ties Dirksen, Trainee
Share this article