<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
    <!ENTITY rfc2119 PUBLIC '' 
      'http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml'>
]>

<rfc category="info" ipr="trust200902" docName="draft-blanchet-weirds-bootstrap-autonomous-00.txt">

<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>

<?rfc toc="yes" ?>
<?rfc symrefs="yes" ?>
<?rfc sortrefs="yes"?>
<?rfc iprnotified="no" ?>
<?rfc strict="yes" ?>
<?rfc compact="yes" ?>

<front>
<title abbrev="Finding Authoritative RDAP server">Finding the Authoritative Registration Data (RDAP) Server</title>
<author initials='M.' surname="Blanchet" fullname='Marc Blanchet'>
  <organization>Viagenie</organization>
  <address>
    <postal>
      <street>246 Aberdeen</street>
      <city>Quebec</city>
      <region>QC</region>
      <code>G1R 2E1</code>
      <country>Canada</country>
    </postal>
    <email>Marc.Blanchet@viagenie.ca</email>
    <uri>http://www.viagenie.ca</uri>
  </address>
</author>
<date/>
<abstract>
<t>This document specifies a method to find which Registration Data Access Protocol (RDAP) server is authoritative to answer queries for a requested scope, such as domain names, IP addresses or Autonomous System numbers.</t>
</abstract>
</front>
<middle>
  <section title="Introduction">
<t>Querying and retrieving registration data from registries are defined in the Registration Data Access Protocol(RDAP)<xref target="I-D.ietf-weirds-rdap-query"/><xref target="I-D.ietf-weirds-using-http"/><xref target="I-D.ietf-weirds-json-response"/>. These documents do not specify where to send the queries. This document specifies a method to find which server is authoritative to answer queries for the requested scope.</t>
<t>(author note: should it have some text on various possibilities that have been discussed, such as IETF84...?)</t>
<t>This document proposes two different mechanisms depending on the type of the queried object.</t>
<t>For IP addresses and autonomous system numbers, the method uses a Number Resource Organization(NRO) managed registry of allocations.</t>
<t>For domain names, the method uses a well-known label in the top of the registry.</t>
<t>Both use the same DNS resource record(RR) which is used to locate the RDAP server. The processing of the RR is discussed later in this document. It should be noted that the document currently uses SRV as an example and it is underspecified. When the concensus is reached on the method and the RR, the draft will be updated accordingly with the appropriate details.</t>
  </section>
  <section title="Domain Name Registry">
    <t>The domain names authoritative registration data servers are found by extracting the tld part of the queried domain name and then querying _rdap._tcp.tld with a DNS resource record of type SRV <xref target="RFC2782"/>.</t>
    <t>For example, a RDAP query for example.com generates a DNS SRV query to _rdap._tcp.com. </t>
    <t>IDN labels are in their A-label form<xref target="RFC5891"/>.</t>
  </section>
  <section title="Internet Numbers Registry">
    <t>The authoritative source is a file<xref target="NROFILE"/> containing the allocations of IP addresses and Autonomous System (AS) numbers for all (currently five) Regional Internet Registries(RIR). It is compiled and maintained by the Number Resource Organization(NRO). The current format is a list of rows, where each column is separated by "|" (ASCII 0x7c). The third column contains the type of the object and the fourth column contains the value of the object. The current format does not list the URL of the RDAP server related to the queried resource. However, it has been said that it can be augmented to provide that information.</t>
    <t>The file is currently large(19Moctets, 300K lines) and should not be queried by clients every time. The average number of lines changed every day is currelty around 100. However, there are days when 95K lines were changed. The file should be cached and regularly updated. (author note: more to discuss on the updating/caching).</t>
    <section title="IPv4 Address Space">
    <t>The IPv4 address space authoritative registration data servers are found in the file by looking for the type "ipv4" (currently in 3rd column) and doing a longest match on the queried prefix. The column X (not currently available) provides the fully-qualified domain name(FQDN) of the RDAP server for that prefix.</t>
    <t>For example, a query for 192.9.200.0/24 looks for the longest match prefix in the file and then fetch the fully-qualified domain name(FQDN) of that prefix, for example: rdap.rirexample.net. A DNS SRV record is then queried for the FQDN.</t>
    </section>
    <section title="IPv6 Address Space">
    <t>The IPv6 address space authoritative registration data servers are found in the file by looking for the type "ipv6" (currently in 3rd column) and doing a longest match on the queried prefix. The column X (not currently available) provides the fully-qualified domain name(FQDN) of the RDAP server for that prefix. </t>
    <t>For example, a query for 2001:db8::/32 looks for the longest match prefix in the file and then fetch the fully-qualified domain name(FQDN) of that prefix, for example: rdap.rirexample.net. A DNS SRV record is then queried on the FQDN.</t>
    </section>
    <section title="Autonomous Systems">
    <t>The Autonomous Systems (AS) authoritative registration data servers are found in the file by looking for the type "asn" (currently in 3rd column) and doing an exact match on the queried number. The column X (not currently available) provides the fully-qualified domain name(FQDN) of the RDAP server for that AS.</t>
    <t>For example, a query for AS 65411 looks for the exact match AS in the file and then fetch the fully-qualified domain name(FQDN) of that prefix, for example: rdap.rirexample.net. A DNS SRV record is then queried on the FQDN.</t>
    </section>
  </section>
  <section title="Nameserver">
   <t>TBD</t>
  </section>
  <section title="Entity">
   <t>TBD</t>
  </section>
  <section title="SRV Records Processing">
    <t>TBD. The other RR choices are: A, AAAA, CNAME, NAPTR. See discussion in IETF87 for details.</t>
  </section>
  <section title="Querying to the Authoritative Server">
   <t>After finding the authoritative server IP address, the client connects using the appropriate transport and application protocol to do the RDAP query<xref target="I-D.ietf-weirds-rdap-query"/>.</t>
  </section>
  <section title="Deployment Considerations">
   <t>Caching and Updating considerations (TBD)</t>
   <t>RDAP server operators may use various techniques such as anycast<xref target="RFC4786"/> to manage the load on their servers.</t>
  </section>
  <section title="Assumptions and Limitations">
   <t>This specification assumes that the NRO is the authoritative source of the IPv4, IPv6 and AS numbers allocations, and that it keeps the file updated. </t>
   <t>This specification only provides a method to find RDAP servers for two-labels domain names. </t>
  </section>
  <section title="Security Considerations">
     <t>TBD</t>
  </section>
  <section title="IANA Considerations">
    <t>none at the moment.</t>
  </section>
  <section title="Acknowledgements">
     <t>The weirds working group had multiple discussions on this topic, including a session during IETF 84 and 87. The ideas in this draft were proposed during the IETF 87 weirds session by (TBD).</t>
  </section>
</middle>
<back>
  <references title="Normative References">
    <?rfc include="reference.I-D.ietf-weirds-rdap-query.xml"?>
    <?rfc include="reference.I-D.ietf-weirds-using-http.xml"?>
    <?rfc include="reference.I-D.ietf-weirds-json-response.xml"?>
    <?rfc include="reference.RFC.2782" ?>
    <reference anchor="NROFILE" target="http://www.nro.net/wp-content/uploads/apnic-uploads/delegated-extended">
      <front><title>TBD</title><author surname="Number Resource Organization(NRO)"/><date/></front>
    </reference>
    <?rfc include="reference.RFC.5891" ?>
  </references>
  <references title="Informative References">
    <?rfc include="reference.RFC.4786" ?>
  </references>
</back>
</rfc>
