Internet-Draft RDAP server validation Extension July 2026
Gould, et al. Expires 20 January 2027 [Page]
Workgroup:
Network Working Group
Internet-Draft:
draft-gould-regext-rdap-server-validation-00
Published:
Intended Status:
Standards Track
Expires:
Authors:
J.G. Gould
VeriSign, Inc.
S.G. Gould
VeriSign, Inc.
T.S. Sutan-Tanon
VeriSign, Inc.

Registration Data Access Protocol (RDAP) Extension for Server Validation

Abstract

This document describes an Registration Data Access Protocol (RDAP) extension for providing the status of server validations. Server validations can be done for an extensible set of types, with examples including validating DNS resolution with the type "dns" and validating DNSSEC with the type "dnssec". The validations can be performed synchronously in the provisioning command or asynchronously based on a triggering command or a schedule. The extension will provide the status of the validations, by type, performed by the server in an RDAP lookup response.

Status of This Memo

This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.

Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet-Drafts is at https://datatracker.ietf.org/drafts/current/.

Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress."

This Internet-Draft will expire on 20 January 2027.

Table of Contents

1. Introduction

This document describes an Registration Data Access Protocol (RDAP) extension for including server validation information for RDAP object classes, such as the Domain Object Class and the Nameserver Object Class in [RFC9083]. Server validations can be done for an extensible set of types, with examples including validating DNS resolution with the type "dns" and validating DNSSEC with the type "dnssec". The validations can be performed synchronously in the provisioning command or asynchronously based on a triggering command or a schedule. The server validation information is returned in an RDAP lookup response that includes for each validation type the current validation status and the date and time of the last validation.

This document is complementary to the Server Validation Extension for the Extensible Provisioning Protocol (EPP) [I-D.gould-regext-epp-server-validation], but registry operators do not need to implement that extension in their EPP server in order to implement this RDAP extension.

2. 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 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here.

The example RDAP responses don't include all of the RDAP response members, but are only representative of the members that are relavant to this extension.

3. RDAP Conformance

Servers implementing this extension MUST include the string "serverValidation" in the "rdapConformance" ([RFC9083]) array of all relevant RDAP responses. The registration of the "serverValidation" extension identifier is described in Section 6.

4. "serverValidation_data" Member

The server validation information is conveyed via a new top-level object member named "serverValidation_data" within the object class that the server validations have been executed for. The "serverValidation_data" member includes a list of server validation objects, where there is up to one per type, containing the following members:

{
  "objectClassName": "domain",
  "handle": "XXX",
  "ldhName": "example.com",
  "rdapConformance": ["rdap_level_0", "serverValidation"],
  "serverValidation_data": [
    {
      "type": "dnssec",
      "status": "success",
      "date": "2026-01-01T12:22:53.0Z"
    }
  ]
}
Figure 1: Domain object including the "serverValidation_data" member for the successful "dnssec" server validation:
{
  "objectClassName": "domain",
  "handle": "XXX",
  "ldhName": "example.com",
  "rdapConformance": ["rdap_level_0", "serverValidation"],
  "serverValidation_data": [
    {
      "type": "dnssec",
      "status": "failed",
      "date": "2026-01-03T07:21:33Z",
      "lastSuccess": "2025-12-11T07:20:00Z",
      "firstFailed": "2025-12-12T08:19:44Z",
      "reason": [
        "Matching DNSKEY not found for DS keyTag 12345"
      ]
    }
  ]
}
Figure 2: Domain object including the "serverValidation_data" member for the failed "dnssec" server validation:
{
  "objectClassName": "domain",
  "handle": "XXX",
  "ldhName": "example.com",
  "rdapConformance": ["rdap_level_0", "serverValidation"],
  "serverValidation_data": [
    {
      "type": "dns",
      "status": "success",
      "date": "2026-01-01T12:22:53.0Z",
      "operation": "create"
    },
    {
      "type": "dnssec",
      "status": "success",
      "date": "2026-01-01T12:22:53.0Z",
      "operation": "create",
      "firstFailed": "2026-01-01T06:22:53.0Z"
    }
  ]
}
Figure 3: Domain object including the "serverValidation_data" member for the successful "dns" and "dnssec" server validation:
{
  "objectClassName": "domain",
  "handle": "XXX",
  "ldhName": "example.com",
  "rdapConformance": ["rdap_level_0", "serverValidation"],
  "serverValidation_data": [
    {
      "type": "dns",
      "status": "success",
      "date": "2026-01-01T12:22:53.0Z",
      "operation": "create"
    },
    {
      "type": "dnssec",
      "status": "failed",
      "date": "2026-01-01T12:22:53Z",
      "firstFailed": "2026-01-01T12:22:53Z",
      "operation": "create",
      "reason": [
        "Matching DNSKEY not found for DS keyTag 12345",
        "Insecure DNSKEY algorithm for DS keyTag 54321"
      ]
    }
  ]
}
Figure 4: Domain object including the "serverValidation_data" member for the successful "dns" server validation and a failed "dnssec" server validation:
{
  "objectClassName": "domain",
  "handle": "XXX",
  "ldhName": "example.com",
  "rdapConformance": ["rdap_level_0", "serverValidation"],
  "serverValidation_data": [
    {
      "type": "dnssec",
      "status": "success",
      "date": "2026-01-01T12:22:53.0Z",
      "operation": "custom",
      "op": "keyExchange"
    }
  ]
}
Figure 5: Domain object including the "serverValidation_data" member for the successful "dnssec" server validation triggered by the custom "keyExchange" operation:

5. Extension Version Identifier

This extension supports the Point Versioning defined in [I-D.ietf-regext-rdap-versioning] with a Point Extension Version Identifier of "serverValidation-0.1". When there are interface changes to the extension, the Point Extension Version Identifier will be incremented, which may not match the draft version number. When the draft becomes a working group document and passes Working Group Last Call (WGLC), the Point Extension Version Identifier will be changed to "serverValidation-1.0".

6. IANA Considerations

6.1. RDAP Extensions Registry

IANA is requested to register the following value in the RDAP Extensions Registry:

Extension identifier:
serverValidation
Registry operator:
Any
Published specification:
This document.
Contact:
IETF <iesg@ietf.org>
Intended usage:
This extension identifies RDAP extension for server validation information.

7. Security Considerations

The extension described in this document does not provide any security services beyond those described by [RFC9083].

8. References

8.1. Normative References

[I-D.ietf-regext-rdap-versioning]
Gould, J., Keathley, D., and M. Loffredo, "Versioning in the Registration Data Access Protocol (RDAP)", Work in Progress, Internet-Draft, draft-ietf-regext-rdap-versioning-05, , <https://datatracker.ietf.org/doc/html/draft-ietf-regext-rdap-versioning-05>.
[RFC2119]
Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, , <https://www.rfc-editor.org/info/rfc2119>.
[RFC8174]
Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, , <https://www.rfc-editor.org/info/rfc8174>.
[RFC9083]
Hollenbeck, S. and A. Newton, "JSON Responses for the Registration Data Access Protocol (RDAP)", STD 95, RFC 9083, DOI 10.17487/RFC9083, , <https://www.rfc-editor.org/info/rfc9083>.

8.2. Informative References

[RFC3915]
Hollenbeck, S., "Domain Registry Grace Period Mapping for the Extensible Provisioning Protocol (EPP)", RFC 3915, DOI 10.17487/RFC3915, , <https://www.rfc-editor.org/info/rfc3915>.
[RFC5730]
Hollenbeck, S., "Extensible Provisioning Protocol (EPP)", STD 69, RFC 5730, DOI 10.17487/RFC5730, , <https://www.rfc-editor.org/info/rfc5730>.

Authors' Addresses

James Gould
VeriSign, Inc.
12061 Bluemont Way
Reston, VA 20190
United States of America
Sandra Gould
VeriSign, Inc.
12061 Bluemont Way
Reston, VA 20190
United States of America
Tanya Sutan-Tanon
VeriSign, Inc.
12061 Bluemont Way
Reston, VA 20190
United States of America