RFC 9910: Registration Data Access Protocol (RDAP) Regional Internet Registry (RIR) Search

  • T. Harrison,  
  • J. Singh
Proposed Standard

Abstract

The Registration Data Access Protocol (RDAP) is used by Regional Internet Registries (RIRs) and Domain Name Registries (DNRs) to provide access to their resource registration information. The core specifications for RDAP define basic search functionality, but there are various search options related to IP addresses, IP prefixes, and Autonomous System Numbers (ASNs), which are provided by RIRs via their WHOIS services, but for which there is no corresponding RDAP functionality. This document extends RDAP to support those search options.

Status of This Memo

This is an Internet Standards Track document.

This document is a product of the Internet Engineering Task Force (IETF). It represents the consensus of the IETF community. It has received public review and has been approved for publication by the Internet Engineering Steering Group (IESG). Further information on Internet Standards is available in Section 2 of RFC 7841.

Information about the current status of this document, any errata, and how to provide feedback on it may be obtained at .

1. Introduction

The [] is used by Regional Internet Registries (RIRs) and Domain Name Registries (DNRs) to provide access to their resource registration information. The core specifications for RDAP define basic search functionality, but this is limited to domains, nameservers, and entities. No searches were defined for IP networks or autonomous system numbers. In an effort to have RDAP reach feature parity with the existing RIR WHOIS [] services in this respect, this document defines additional search options for IP networks and autonomous system numbers.

While this document is written in terms of RIRs and DNRs for the sake of consistency with earlier RDAP documents such as [] and [], the functionality described here may be used by any RDAP server operator that hosts Internet Number Resource (INR) objects.

1.1. Conventions Used in This Document

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 [] [] when, and only when, they appear in all capitals, as shown here.

Indentation and whitespace in examples are provided only to illustrate element relationships and are not required features of this specification.

"..." in examples is used as shorthand for elements defined outside of this document, as well as to abbreviate elements that are too long.

2. Basic Searches

2.1. Path Segments

The new resource type path segments for basic search (similar to the searches defined in [] and []) are:

'ips':
Used to identify an IP network search using a pattern to match one of a set of IP network attributes.
'autnums':
Used to identify an autonomous system number search using a pattern to match one of a set of autonomous system number attributes.

A search pattern matches a value where it equals the string representation of the value, or where it is a match for the value in accordance with the use of the asterisk ('*', ASCII value 0x2A) character for partial string matching as defined in Section 4.1 of []. For most searches, '*' may be used to match trailing characters only, and may appear in a search only once: see the previously mentioned section for a complete definition of the relevant behaviour.

Section 4.1 of [] describes the use of a trailing domain label suffix in a partial string search. It is not necessary that servers support this type of search pattern for the basic searches defined in this document, since those searches do not relate to domain name members.

Syntax:
ips?handle=<handle search pattern>
Syntax:
ips?name=<name search pattern>

Searches for IP network (see Section 5.4 of []) information by handle are specified using the form:

ips?handle=XXXX

XXXX is a search pattern representing an IP network identifier whose syntax is specific to the registration provider. The following URL would be used to find information for IP networks with handles matching the "NET-199*" pattern:

https://example.com/rdap/ips?handle=NET-199*

Searches for IP network (see Section 5.4 of []) information by name are specified using the form:

ips?name=XXXX

XXXX is a search pattern representing an IP network identifier that is assigned to the network registration by the registration holder. The following URL would be used to find information for IP networks with names matching the "NET-EXAMPLE-*" pattern:

https://example.com/rdap/ips?name=NET-EXAMPLE-*

2.3. Autonomous System Number Search

Syntax:
autnums?handle=<handle search pattern>
Syntax:
autnums?name=<name search pattern>

Searches for autonomous system number (see Section 5.5 of []) information by handle are specified using the form:

autnums?handle=XXXX

XXXX is a search pattern representing an autonomous system number identifier whose syntax is specific to the registration provider. The following URL would be used to find information for autonomous system numbers with handles matching the "AS1*" pattern:

https://example.com/rdap/autnums?handle=AS1*

Searches for autonomous system number (see Section 5.5 of []) information by name are specified using the form:

autnums?name=XXXX

XXXX is a search pattern representing an autonomous system number identifier that is assigned to the autonomous system number registration by the registration holder. The following URL would be used to find information for autonomous system numbers with names matching the "ASN-EXAMPLE-*" pattern:

https://example.com/rdap/autnums?name=ASN-EXAMPLE-*

3. Relation Searches

This section defines searches and link relations for finding objects and sets of objects with respect to their position within a hierarchy.

3.1. Path Segments

The variables used in the path segments in this section include:

<relation>:
a relation type, as defined in Section 3.2.2 of this document.
<IP address>:
an IP address, as defined in Section 3.1.1 of [].
<CIDR prefix>:
the first address of a Classless Inter-Domain Routing (CIDR) block, as defined in Section 3.1.1 of [].
<CIDR length>:
the prefix length for a CIDR block, as defined in Section 3.1.1 of [].
<domain name>:
a fully qualified domain name, as defined in Section 3.1.3 of [].
<autonomous system number or range>:
an autonomous system number, as defined in Section 3.1.2 of [], or two such numbers separated by a single hyphen ('-', ASCII value 0x2D), where the second number is greater than the first.
<resource type search path segment>:
a search path segment corresponding to an Internet Number Resource (INR) object class (i.e., an IP network address or range, autonomous system number or number range, or reverse domain name).
<object value>:
a value used to identify an object for the purposes of a relation search relative to that object. One of <IP address>, <CIDR prefix> and <CIDR length> pair, <domain name>, or <autonomous system number or range>, depending on the type of search that is being performed.
<status>:
an object status value, as defined in Section 4.6 of [].

The new resource type path segments for relation search (similar to the searches defined in [] and []) are:

'ips/rirSearch1/<relation>/<IP address>':
Used to identify an IP network search using a relation and an IP address to match a set of IP networks.
'ips/rirSearch1/<relation>/<CIDR prefix>/<CIDR length>':
Used to identify an IP network search using a relation and an IP address range to match a set of IP networks.
'autnums/rirSearch1/<relation>/<autonomous system number or range>':
Used to identify an autonomous system number search using a relation and a single ASN or an ASN range to match a set of ASN objects.
'domains/rirSearch1/<relation>/<domain name>':
Used to identify a reverse domain search using a relation and a reverse domain name to match a set of reverse domains.