One document matched: draft-ietf-weirds-bootstrap-01.xml


<?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="std" ipr="trust200902" docName="draft-ietf-weirds-bootstrap-01.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 service">Finding the Authoritative Registration Data (RDAP) Service</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, using data available in IANA registries.</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>The proposed mechanism is based on that allocation data for domain names and IP addresses are maintained by IANA, are publicly available and are in a structured format. The mechanism assumes some data structure within these registries and request IANA to modify or create these registries for the specific purpose of RDAP use. An RDAP client fetches the registries, extract the data and then do a match with the query data to find the authoritative registration data server and appropriate query base URL.</t>
  </section>
  <section title="Domain Name RDAP Registry">
    <t>The domain names authoritative registration data service is found by doing the longest match of the target domain name with the values of the Domain column in the IANA Domain Name RDAP registry as defined in section <xref target="ianaconsiderations"/>. This is a string search of the longest match starting from the end of the target name and the end of each value in the Domain column. The value of the "RDAP URL" column is the base RDAP url as described in <xref target="I-D.ietf-weirds-rdap-query"/>.</t>
    <t>For example, a RDAP query for example.com matches the .com entry in the Domain column of the registry. The RDAP server URL for this address is located in the corresponding "RDAP URL" column for that entry, which could be http://rdap.example.org/rdap. Therefore the query URL would be: http://rdap.example.org/rdap/domain/example.com. This example is not normative.</t>
  </section>
  <section title="Internet Numbers RDAP Registries">
    <section title="IPv4 Address Space RDAP Registry">
    <t>The IPv4 address space authoritative registration data service is found by doing a longest match of the target address with the values of the Prefix column in the IANA IPv4 address space RDAP registry as defined in section <xref target="ianaconsiderations"/>. The longest match is done the same way as for routing: the addresses are converted in binary form and then the binary strings are compared. The value of the "RDAP URL" column is the base RDAP url as described in <xref target="I-D.ietf-weirds-rdap-query"/>.</t>
    <t>For example, a query for "192.0.2.0/24" matches the "192/8" entry in the Prefix column of the registry. The RDAP server URL for this address is located in the corresponding "RDAP URL" column for that entry, which could be http://rdap.example.org/rdap. Therefore the query URL would be: http://rdap.example.org/rdap/ip/192.0.2.0/24. This example is not normative.</t>
    </section>
    <section title="IPv6 Address Space RDAP Registry">
    <t>The IPv6 address space authoritative registration data service is found by doing a longest match of the target address with the values of the Prefix column in the IANA IPv6 address space RDAP registry as defined in section <xref target="ianaconsiderations"/>. The longest match is done the same way as for routing: the addresses are converted in binary form and then the binary strings are compared. The value of the "RDAP URL" column is the base RDAP url as described in <xref target="I-D.ietf-weirds-rdap-query"/>.</t>
    <t>For example, a query for "2001:db8::/32" matches the "2001/16" entry in the Prefix column of the registry. The RDAP server URL for this address is located in the corresponding "RDAP URL" column for that entry, which could be http://rdap.example.org/rdap. Therefore the query URL would be: http://rdap.example.org/rdap/ip/2001:db8::/32. This example is not normative.</t>
    </section>
    <section title="Autonomous Systems RDAP Registry">
    <t>The Autonomous Systems (AS) authoritative registration data service is found by identifying the range in which the target Autonomous System is,  with the values of the Number column in the IANA Autonomous Systems (AS) Numbers RDAP registry as defined in section <xref target="ianaconsiderations"/>. The value of the "RDAP URL" column is the base RDAP url as described in <xref target="I-D.ietf-weirds-rdap-query"/>.</t>
    <t>For example, a query for AS 65411 matches the "64512-65534" entry in the Number column of the registry. The RDAP server URL for this address is located in the corresponding "RDAP URL" column for that entry, which could be http://rdap.example.org/rdap. Therefore the query URL would be: http://rdap.example.org/rdap/autnum/65411. This example is not normative.</t>
    </section>
  </section>
  <section title="Entity">
   <t>Since there is no global namespace for entities, this document does not describe how to find the authoritative RDAP server for entities. It is possible however that, if the entity identifier was received from a previous query, the same RDAP server could be queried for that entity or the entity identifier itself is a fully referenced URL that can be queried.</t>
  </section>
  <section title="Non-existent Entries or RDAP URL Values">
    <t>The registries may not contain the requested value or the RDAP URL value may be empty. In these cases, there is no known RDAP server for that requested value and the client should provide an appropriate error message to the user.</t>
  </section>
  <section title="Deployment Considerations">
   <t>This method relies on the fact that RDAP clients are fetching the IANA XML registries. Clients SHOULD not fetch every time the XML files. </t>
   <t>If the query data does not match any entry in the already fetched registry in the client, then the client may implement various methods, such as the following:
   <list style="symbols">
     <t>The client first queries the DNS to see if the respective entry has been recently delegated or if it is a mistyped information by the user. The DNS query could be to fetch the NS records for a domain TLD. If the DNS answer is negative, then there is no need to fetch the new version of the XML registry. However, if the DNS answer is positive, this means that the currently cached XML registry is no more current. The client should fetch the registry, parse and then do the normal matching as specified above.</t>
     <t>If the client knows the existence of a RDAP aggregator or redirector and trust that service, then it could send the query to the redirector, which would redirect the client if it knows the authoritative server that client has not found.</t>
     <t>Clients can also rely on HTTP headers to verify if the registry has changed since last time it was fetched, without the need to fetch the whole registry.</t>
  </list>
  </t>
   <t>IANA should make sure that the service of those registries is able to cope with a larger demand and should take appropriate measures such as caching and load balancing.</t>
   <t>This specification makes no assumption on how the authorities of registration data may work together on sharing their information for a common service. </t>
  </section>
  <section title="Limitations">
    <t>This method does not provide a direct way to find authoritative RDAP servers:
      <list style="symbols">
        <t>for entities</t>
        <t>for queries using search patterns that do not contain a terminating string that matches some entries in the registries</t>
      </list>
    </t>
  </section>
  <section title="Security Considerations">
     <t>By providing a bootstrap method to find RDAP servers, this document helps making sure that the end-users will get the RDAP data from authoritative source, instead of from rogue sources. The method itself has the same security properties as the RDAP protocols themselves. The transport used to access the registries could be secured by TLS if IANA supports it.</t>
  </section>
  <section anchor="ianaconsiderations" title="IANA Considerations">
   <t>IANA is requested to do the following:
   <list style="symbols">
    <t>Create a new registry for IPv4 address space with the following columns: the first column is the entries taken from the current "IPv4 Address Space" registry<xref target="ipv4reg"/> and and the second column is the RDAP server URL. The same registrants for these entries are entitled to provide the RDAP URL value for their respective space, using the same communication channels already established between the registrants and IANA.</t>
    <t>Create a new registry for IPv6 address space with the following columns: the first column is the entries taken from the current IPv6 Address Space registries <xref target="ipv6regparent"/><xref target="ipv6reg"/> and the second column is the RDAP server URL. The same registrants for these entries are entitled to provide the RDAP URL value for their respective space, using the same communication channels already established between the registrants and IANA.</t>
    <t>Create a new registry for Autonomous System Number space with the following columns: the first column is the entries taken from the current "Autonomous System Number Space" registry<xref target="asreg"/> and the second column is the RDAP server URL. The same registrants for these entries are entitled to provide the RDAP URL value for their respective space, using the same communication channels already established between the registrants and IANA.</t>
    <t>Create a new registry of domain names, essentially TLDs, with the following columns: Domain and RDAP URL. The content should be initially populated by an extract of the Root zone database<xref target="domainreg"/>. The same registrants for these entries are entitled to provide the RDAP URL value for their respective space, using the same communication channels already established between the registrants and IANA.</t>
    <t>A change happening in any of the source registries should trigger a change in the corresponding new registry. For example, a new IPv6 address block appearing in the source IPv6 address space registry should trigger the same new entry in the corresponding RDAP registry.</t>
 <t>IANA shall update its procedures to include the provisioning of these values.</t>
 <t>It is envisioned that the entries of each of these registries are synched from the source assignment registries. There shall be no additional records. If there is a need for additional records, then the policy for updating the registry is Standards Track RFC.</t> 
   </list>
  </t>
  </section>
  <section title="Acknowledgements">
     <t>The weirds working group had multiple discussions on this topic, including a session during IETF 84. The idea of using IANA registries was discovered by the editor during discussions with his colleagues as well as by a comment from Andy Newton. All the people involved in these discussions are herein acknowledged. Linlin Zhou, Jean-Philippe Dionne, John Levine, Kim Davies, Ernie Dainow, Scott Hollenbeck, Arturo Servin, Andy Newton have provided input and suggestions to this document.</t>
  </section>
</middle>
<back>
  <references title="Non-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"?>
    <reference anchor="ipv4reg" target="http://www.iana.org/assignments/ipv4-address-space/ipv4-address-space.xml">
      <front><title>IPv4 Address Space</title><author surname="Internet Assigned Numbers Authority(IANA)"/><date/></front>
    </reference>
    <reference anchor="ipv6regparent" target="http://www.iana.org/assignments/ipv6-address-space/ipv6-address-space.xml">
      <front><title>Internet Protocol Version 6 Address Space</title><author surname="Internet Assigned Numbers Authority(IANA)"/><date/></front>
    </reference>
    <reference anchor="ipv6reg" target="http://www.iana.org/assignments/ipv6-unicast-address-assignments/ipv6-unicast-address-assignments.xml">
      <front><title>IPv6 Global Unicast Address Assignments</title><author surname="Internet Assigned Numbers Authority(IANA)"/><date/></front>
    </reference>
    <reference anchor="asreg" target="http://www.iana.org/assignments/as-numbers/as-numbers.xml">
      <front><title>Autonomous System (AS) Numbers</title><author surname="Internet Assigned Numbers Authority(IANA)"/><date/></front>
    </reference>
    <reference anchor="domainreg" target="http://www.iana.org/domains/root/db">
      <front><title>Root Zone Database</title><author surname="Internet Assigned Numbers Authority(IANA)"/><date/></front>
    </reference>
  </references>
</back>
</rfc>

PAFTECH AB 2003-20262026-04-24 00:51:29