TTR Networks

What is IRRd?

Internet Routing Registry daemon

IRRd (Internet Routing Registry daemon) is open-source software for running an Internet Routing Registry, storing RPSL objects and answering queries.

An IRR is a database of routing intentions: which AS originates which prefixes, which ASNs belong to an AS-SET, and who maintains each object. IRRd is the software many of these databases run on, including RADb, which also mirrors many other registries. Like any IRR it answers classic whois queries on TCP port 43, returning whole RPSL objects as text. What makes it especially useful to tools is a second, compact query language of commands starting with !:

  • !g followed by an AS number returns the IPv4 prefixes that AS originates, taken from route objects; !6 does the same for IPv6.
  • !i followed by an AS-SET name returns its members, and with ,1 expands nested sets recursively down to plain ASNs.

Replies are framed so a program can read them reliably: A and a length, then the data, then C, or D when there's nothing to return. IRRd can also mirror other registries using NRTM, which is how one server can answer for many sources.

Most engineers never run IRRd; they use it indirectly through filter generators such as bgpq4, which issue !i and !g queries to whois.radb.net by default and turn the answers into prefix lists. Knowing the queries helps when a generated filter looks wrong: you can ask the server directly and see whether the problem is the data or the tool. Remember that data from non-authoritative sources isn't checked against who actually holds the address space. The IRR, RPSL and AS-SETs lesson uses these queries to build real filters.

Lessons that use IRRd

  • IRR, RPSL and AS-SETsIntermediate · 60 min

    How networks publish what they announce and how their neighbours turn it into filters: Internet Routing Registries, whois queries, RPSL objects and attributes, AS-SET expansion, bgpq4, and the pitfalls of unsigned routing data.

Related terms