<?xml version="1.0" encoding="utf-8"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude"
     category="std"
     docName="draft-ranjbar-regext-rdap-subordinate-referrals-01"
     ipr="trust200902"
     submissionType="IETF"
     version="3">

  <front>
    <title abbrev="RDAP Subordinate Referrals">Redirecting RDAP Queries to Holder-Designated Servers for Subordinate Resources</title>
    <seriesInfo name="Internet-Draft" value="draft-ranjbar-regext-rdap-subordinate-referrals-01"/>
    <author fullname="Kaveh Ranjbar" initials="K." surname="Ranjbar">
      <organization>Whisper Security</organization>
      <address>
        <email>kaveh@whisper.security</email>
      </address>
    </author>
    <date year="2026" month="July" day="21"/>
    <abstract>
      <t>Registration Data Access Protocol (RDAP) queries can be resolved
      from the IANA bootstrap registries down to the most specific object
      held by a registry operator's RDAP service. Where the holder of a
      registered resource maintains registration data for resources
      subordinate to it, such as DNS names below a registered domain or
      more-specific networks below an address allocation, and operates a
      conformant RDAP service for that data, there is currently no
      discoverable referral from the registry's response to the holder's
      service. This document describes an optional, holder-designated
      referral for subordinate resources, carried by a pair of directional
      RDAP link relations, "rdap-base-down" and "rdap-base-up", whose
      targets are the base URL of a downstream RDAP service and the base
      URL of the covering registry service, respectively. The
      holder-designated subordinate referral is the primary application,
      but the same relations serve related base-URL discovery needs,
      including delegated and hybrid RPKI referrals. It is written as input
      to draft-ietf-regext-rdap-referrals and its content may be merged
      into that document.</t>
    </abstract>
  </front>

  <middle>
    <section anchor="intro">
      <name>Introduction</name>
      <t>RDAP <xref target="RFC7480"/> <xref target="RFC9082"/>
      <xref target="RFC9083"/> allows a client to discover the
      authoritative server for a resource using the IANA bootstrap
      registries <xref target="RFC9224"/> and to navigate object
      hierarchies, including with the search and link relations defined
      in <xref target="RFC9910"/>. In current deployments this walk
      terminates at the most specific object the registry operator's
      database holds: the registered domain object at a domain registry
      or registrar, or the covering allocation or aggregated assignment
      object at a Regional Internet Registry (RIR).</t>
      <t>Resource holders increasingly maintain large, dynamic sets of
      subordinate resources with meaningful registration data of their
      own. Examples include DNS names below a registered domain that are
      provisioned and retired programmatically, and more-specific
      networks or individual addresses below an allocation that are
      assigned at machine speed. Registry databases deliberately do not
      hold this per-subordinate detail; aggregation conventions exist at
      RIRs precisely to keep it out of the central database. A holder
      may instead operate a conformant RDAP service that serves this
      data directly from the system where it is maintained.</t>
      <t>Today such a holder-operated service is undiscoverable: a client
      walking from the bootstrap has no indication that a more specific
      answer exists or where to find it. This document describes an
      optional referral from the registry operator's RDAP response to a
      holder-designated RDAP server, scoped strictly to resources
      subordinate to the referring object. Nothing is mandatory on
      either side beyond the redirection a registry already performs: a
      holder that designates no server, and a client that follows no
      referral, observe exactly today's behaviour.</t>
      <t>The referral is carried by a pair of directional RDAP link
      relations, "rdap-base-down" and "rdap-base-up"
      (<xref target="mechanism"/>), naming the downstream and reverse
      directions explicitly so that the "rdap-up" relation of
      <xref target="RFC9910"/> is left unchanged. Their targets are,
      respectively, the base URL of a downstream RDAP service and the base
      URL of the covering registry service. Holder-designated subordinate
      referral is the primary application and the focus of this document,
      but the same relations address related base-URL discovery needs;
      <xref target="applicability"/> describes several.</t>
      <t>This document is written as input to
      <xref target="I-D.ietf-regext-rdap-referrals"/>, which defines the
      underlying explicit redirect mechanism, and the author's preference
      is for the substance of this document to be merged into that work
      rather than progressing independently.</t>
    </section>

    <section anchor="terminology">
      <name>Terminology</name>
      <t>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 <xref target="RFC2119"/> <xref target="RFC8174"/>
      when, and only when, they appear in all capitals, as shown here.</t>
      <dl>
        <dt>Subordinate resource:</dt>
        <dd>A resource wholly contained within a registered resource: a
        DNS name below a registered domain name, or a network or address
        contained within a registered or allocated network.</dd>
        <dt>Holder-designated server:</dt>
        <dd>An RDAP server operated by or for the holder of a registered
        resource, designated by the holder to answer queries for
        subordinate resources of that registered resource.</dd>
        <dt>Downstream RDAP service:</dt>
        <dd>An RDAP service, distinct from the one returning a response,
        that holds registration data subordinate to, or otherwise
        delegated below, the context object.</dd>
      </dl>
    </section>

    <section anchor="mechanism">
      <name>Referral to a Holder-Designated Server</name>
      <t>A registry operator's RDAP server that knows a holder-designated
      server for a registered resource MAY include, in responses for that
      resource, a link whose context is the object itself and whose
      target is the base URL of the holder-designated server. The link
      SHOULD use the relations and behaviour defined in
      <xref target="I-D.ietf-regext-rdap-referrals"/> so that a client
      can either follow the link opportunistically or request an
      explicit redirect for a subordinate resource.</t>
      <t>Where the holder has registered such a pointer with the registry,
      a registry operator's server MUST still redirect a lookup for a
      subordinate resource to the holder-designated server, so that an
      unchanged client continues to receive the most-specific record with
      no change on its side. The "rdap-base-down" link is additive
      discovery, not a replacement for that redirect: a client that does
      not recognise the link keeps receiving the most-specific record by
      redirection exactly as it does today, and a client that does may
      additionally follow the link to enumerate the delegation and cross
      the authority boundary deliberately. A client that prefers the
      registry's own record as well as the holder's can decline the
      redirect, using a redirect-suppression control of the kind under
      discussion for <xref target="I-D.ietf-regext-rdap-referrals"/>.</t>
      <t>A registry operator's server SHOULD include this link in both
      lookup and search responses for the context object, for domain
      objects and for number resources alike, so that a client following
      either query type can discover the downstream service by the same
      means it uses to follow the "up" and "rdap-up" relations today.</t>
      <t>For example, a lookup or search at a domain registry for
      example.com may carry an "rdap-base-down" referral to
      https://rdap.example.com/ designated by the registrant, and a
      lookup for a name subordinate to example.com is redirected to the
      corresponding object on that server, unless the client has asked to
      suppress the redirect. A lookup at an RIR for an allocation may
      likewise carry a referral for its more-specifics.</t>
      <t>The referral target MUST be an HTTPS URL. A holder-designated
      server is a candidate source of registration data only for
      resources subordinate to the referring object, and clients
      MUST NOT treat it as authoritative for any other resource.</t>
      <t>This referral is carried by a pair of dedicated RDAP link
      relations, "rdap-base-down" and "rdap-base-up", defined and
      registered by this document (<xref target="iana"/>). The target of
      an "rdap-base-down" link is the base URL of a downstream RDAP
      service that holds registration data subordinate to, or otherwise
      delegated below, the context object; an "rdap-base-up" link is its
      reverse, carried by an object on the downstream service and pointing
      to the base URL of the covering registry service. Naming the
      relations for the base URL they target, and for the direction of
      the crossing, rather than for the resource-holder role, keeps them
      reusable for the related cases in <xref target="applicability"/> and
      leaves the "rdap-up" relation of <xref target="RFC9910"/> unchanged
      for navigation within a single authority.</t>
    </section>

    <section anchor="applicability">
      <name>Applicability Beyond Subordinate Referrals</name>
      <t>Because "rdap-base-down" names a downstream RDAP base URL rather
      than a role, it is useful wherever one RDAP response needs to point
      a client at another RDAP service that holds more-specific or
      delegated data. Besides the holder-designated subordinate referral
      that motivates this document, the following cases share that need:</t>
      <ul>
        <li>Delegated and hybrid RPKI: an RDAP response for a number
        resource can point to the RDAP service of a downstream
        organisation that operates delegated or hybrid RPKI for that
        resource. <xref target="I-D.ietf-regext-rdap-rpki"/> identifies
        the same base-URL discovery need and addresses it with an
        "rdap-help" relation; a single general "rdap-base-down" relation
        could serve both, and this document invites alignment with that
        work.</li>
        <li>Modernising RWhois and SWIP: as operators replace
        holder-side RWhois <xref target="RFC2167"/> with RDAP, a registry
        response for a number resource can carry an "rdap-base-down" link
        to the holder's RDAP service in place of the legacy referral.</li>
      </ul>
      <t>In each case the relation semantics are defined by the link
      target, a downstream RDAP base URL, and not by the role of either
      endpoint, so the same relation applies without special-casing.</t>
      <t>The "rdap-bootstrap" relation defined in
      <xref target="I-D.ietf-regext-rdap-referrals"/> is complementary to
      "rdap-base-down" rather than overlapping. "rdap-bootstrap" points to
      the authoritative service that can be derived from the IANA
      bootstrap registries <xref target="RFC9224"/>; "rdap-base-down"
      points to a downstream service that, by construction, cannot be so
      derived, because the subordinate or delegated data it serves is not
      present in the bootstrap. Together they give a client both
      directions: outward to the bootstrap-authoritative service and
      downward to the holder's own service. This complementarity is a
      further reason to define both relations in the same document.</t>
    </section>

    <section anchor="consistency">
      <name>Hierarchy Consistency and Loop Avoidance</name>
      <t>A holder-designated server SHOULD include, in each response for
      a subordinate resource, an "rdap-base-up" link whose target is the
      base URL of the covering registry operator's service, so that the
      hierarchy remains navigable in both directions. This reverse link
      crosses the authority boundary from the holder's service back to
      the registry, which is why it uses "rdap-base-up" rather than the
      within-authority "up" and "rdap-up" <xref target="RFC9910"/>
      relations.</t>
      <t>A holder-designated server can determine the base URL of the
      registry operator's service, needed for that reverse link, from the
      IANA RDAP bootstrap registries <xref target="RFC9224"/>: resolving
      the covering domain or number resource yields the authoritative
      service for the parent object, and the reverse link stays correct
      even if the registry operator later changes its service URL. Where
      bootstrap is not sufficiently granular, the registry operator can
      supply its base URL to the holder at the time the holder-designated
      server is configured. In neither case does the holder need a
      private arrangement with the registry to keep the reverse link
      correct.</t>
      <t>Clients MUST bound the number of holder-level referrals they
      follow for a single query resolution. A single hop from the
      registry operator's service to a holder-designated server is
      sufficient for the use cases described here.</t>
    </section>

    <section anchor="operational">
      <name>Operational Considerations</name>
      <t>How a holder communicates its designated server to the registry
      operator is a matter for that operator (for example a registry or
      registrar portal, or a future EPP extension for domain
      registrations) and is out of scope for this document. Registry
      operators SHOULD validate that a designated server responds with
      conformant RDAP for the holder's resources before emitting
      referrals to it.</t>
      <t>Referrals shift availability for subordinate data to the
      holder. A holder-designated server that is unreachable affects
      only the additional, subordinate data it would have served; the
      registry operator's own responses are unaffected.</t>
    </section>

    <section anchor="security">
      <name>Security Considerations</name>
      <t>Data served by a holder-designated server is asserted by the
      holder, not by the registry operator. Clients presenting such data
      SHOULD distinguish its provenance from registry-held data. The
      strict subordination rule in <xref target="mechanism"/> prevents a
      holder from asserting data about resources it does not hold.</t>
      <t>Because queries for subordinate resources reach the holder's
      infrastructure, the holder can observe interest in its own
      resources. This is comparable to the visibility a DNS operator
      already has for its own zones, but clients with confidentiality
      requirements can decline to follow referrals.</t>
      <t>The security considerations of <xref target="RFC7480"/> and
      <xref target="I-D.ietf-regext-rdap-referrals"/> apply.</t>
    </section>

    <section anchor="iana">
      <name>IANA Considerations</name>
      <t>This document registers the following two relations in the "Link
      Relation Types" registry maintained under
      <xref target="RFC8288"/>:</t>
      <dl>
        <dt>Relation Name:</dt>
        <dd>rdap-base-down</dd>
        <dt>Description:</dt>
        <dd>Refers from an RDAP object to the base URL of a downstream
        RDAP service that holds registration data subordinate to, or
        otherwise delegated below, the context object.</dd>
        <dt>Reference:</dt>
        <dd>This document</dd>
      </dl>
      <dl>
        <dt>Relation Name:</dt>
        <dd>rdap-base-up</dd>
        <dt>Description:</dt>
        <dd>Refers from an RDAP object on a downstream RDAP service to
        the base URL of the covering registry RDAP service from which the
        context object's parent can be reached. It does not alter the
        semantics of the "rdap-up" relation of <xref target="RFC9910"/>,
        which remains for navigation within a single authority.</dd>
        <dt>Reference:</dt>
        <dd>This document</dd>
      </dl>
      <t>If the working group prefers to define these relations in
      <xref target="I-D.ietf-regext-rdap-referrals"/>, or to reconcile
      "rdap-base-down" with the "rdap-help" relation of
      <xref target="I-D.ietf-regext-rdap-rpki"/>, the registrations can
      move accordingly.</t>
    </section>

    <section anchor="implstatus">
      <name>Implementation Status</name>
      <t>[RFC Editor: please remove this section before publication.]</t>
      <t>A holder-side implementation is in production operation. The
      registrant of whisper.online and holder of an IPv6 allocation
      operates a conformant RDAP service (rdap.whisper.online), a
      purpose-built implementation rather than an off-the-shelf server,
      serving per-name and per-address objects for programmatically
      provisioned subordinate names and IPv6 /128 assignments. Each
      response already carries a reverse link to the covering registry
      object, whose base URL is resolved from the IANA bootstrap
      registries as described in <xref target="consistency"/>; that link
      predates the "rdap-base-up" relation defined here and will be
      updated to it. The registry-side referral described in this document
      is the missing hop; a proposal for the number-resource side was
      posted to the RIPE Database Working Group in July 2026.</t>
    </section>

    <section anchor="changes">
      <name>Changes from -00</name>
      <t>[RFC Editor: please remove this section before publication.]</t>
      <ul>
        <li>Introduced the "rdap-base-down" and "rdap-base-up" link
        relations as the general, directional carriers for the referral,
        replacing the placeholder "rdap-resource-holder" name, and
        reframed the holder-designated subordinate referral as their
        primary application. This follows two suggestions by Jasdip
        Singh: first that the relation be named for its target, the base
        URL of an RDAP service, and then that it be split into explicit
        downstream and upstream directions so that the "rdap-up" relation
        of <xref target="RFC9910"/> is left unchanged.</li>
        <li>Stated that a registry operator's server MUST still redirect a
        lookup for a subordinate resource to the holder-designated server,
        so that an unchanged client keeps receiving the most-specific
        record; the relation is additive discovery on top of that
        redirect, not a replacement for it.</li>
        <li>Narrowed the applicability to the off-bootstrap,
        holder-run-server case, and removed the in-system
        Regional-to-National Internet Registry (RIR-to-NIR) referral
        case, which is served by existing bootstrap and redirection and
        needs no new relation.</li>
        <li>Added <xref target="applicability"/> describing use beyond
        subordinate referrals: delegated and hybrid RPKI (relating to the
        "rdap-help" relation of
        <xref target="I-D.ietf-regext-rdap-rpki"/>) and RWhois/SWIP
        modernisation.</li>
        <li>Specified that the registry SHOULD carry the relation in both
        lookup and search responses, for domains and number resources.</li>
        <li>Described how a holder-designated server discovers the
        registry's base URL for the reverse link, via the IANA bootstrap
        registries.</li>
        <li>Registered "rdap-base-down" and "rdap-base-up" in the IANA
        Link Relation Types registry.</li>
        <li>Noted that "rdap-base-down" is complementary to the
        "rdap-bootstrap" relation being defined in
        <xref target="I-D.ietf-regext-rdap-referrals"/>
        (bootstrap-derivable versus downstream-delegated), reinforcing
        the case for defining both in that document.</li>
      </ul>
    </section>
  </middle>

  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8288.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7480.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9082.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9083.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9910.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-regext-rdap-referrals.xml"/>
      </references>
      <references>
        <name>Informative References</name>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9224.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2167.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-regext-rdap-rpki.xml"/>
      </references>
    </references>
    <section anchor="ack" numbered="false">
      <name>Acknowledgements</name>
      <t>The number-resource half of this idea was first discussed on
      the RIPE Database Working Group mailing list, and the author
      thanks the participants in that thread. Jasdip Singh proposed
      naming the relation for the base URL it targets, which shaped the
      "rdap-base" framing and its applicability to RPKI referrals, and
      later proposed splitting it into the directional "rdap-base-down"
      and "rdap-base-up" relations so that direction is explicit at the
      point of use and RFC 9910's "rdap-up" is left unchanged. Tom
      Harrison pressed the backwards-compatibility case that a registry
      must continue to redirect for unchanged clients, and corrected the
      author's reasoning about how HTTP clients handle redirect bodies.
      Andy Newton provided early guidance. The referral mechanics here
      deliberately build on the work of Gavin Brown and Andy Newton in
      <xref target="I-D.ietf-regext-rdap-referrals"/>.</t>
    </section>
  </back>
</rfc>
