<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE rfc SYSTEM 'rfc2629.dtd' []>
<rfc ipr="trust200902" category="std" docName="draft-michaelson-rir-interface-00">
<?rfc toc="yes"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes"?>
<?rfc compact="yes"?>
<?rfc subcompact="yes"?>
<?rfc private=""?>
<?rfc topblock="yes"?>
<?rfc comments="no"?>
<front>
<title abbrev="IPAM to RIR Interface">Interfacing from IPAM to the RIR systems</title>

<author initials="G." surname="Michaelson" fullname="George G. Michaelson">
<organization abbrev="APNIC">APNIC P/L.</organization>
<address>
<postal>
<street>6 Cordelia St</street>
<city>Brisbane</city>
<code>4101</code>
<country>Australia</country>
<region>Queensland</region>
</postal>
<phone>+61 7 3858 3100</phone>
<email>ggm@apnic.net</email>
<uri></uri>
</address>
</author>
<author initials="D." surname="Shaw" fullname="Daniel Shaw">
<organization abbrev="AFRINIC">AFRINIC Ltd.</organization>
<address>
<postal>
<street>11th floor, Standard Chartered Tower</street>
<city>Ebene</city>
<code></code>
<country>Mauritius</country>
<region></region>
</postal>
<phone>+230 403 5134</phone>
<email>daniel@afrinic.net</email>
<uri></uri>
</address>
</author>
<author initials="C." surname="Martinez" fullname="Carlos M. Martinez">
<organization abbrev="LACNIC">LACNIC</organization>
<address>
<postal>
<street>Rambla República de México 6125, 11400 Montevideo, Uruguay</street>
<city>Montevideo</city>
<code></code>
<country>Uruguay</country>
<region></region>
</postal>
<phone>+598 2 6042222</phone>
<email>carlos@lacnic.net</email>
<uri></uri>
</address>
</author>
<date year="2017" month="June" day="30"/>

<area>Internet</area>
<workgroup></workgroup>
<keyword>RIR</keyword>
<keyword>IPAM</keyword>
<keyword>CASM</keyword>


<abstract>
<t>The CASM BoF at IETF98 discussed the need for Coordinated Address Space Management, in a 'downward' facing manner: the application of automatic configuration to information systems under the control of an entity.
</t>
<t>This document explores the requirements for 'upward' facing systems interfaces to permit the address space related information to be fetched from assigning bodies, and maintained inside their systems as required.
</t>
</abstract>


</front>

<middle>

<section anchor="introduction" title="Introduction">
<t><spanx style="emph">The idea here is to give some &quot;why&quot; background, to the need for this document.</spanx>
</t>
<t><spanx style="emph">It is in the problem-specification space, saying there is a role for an upward facing interface to be specified, and what kinds of things can be done over it.</spanx>
</t>
<t>CASM explores the application of address space management to a
complex system of network routers and switches and associated
systems. Its basic operating model is documented elsewhere. A common
element of this operating model is that the address space is a
'given' - a set of resources are assumed to exist for application
into the network. But, this 'given' is not an axiom of the system,
it is something which lives inside another information management
model, the one operated in common by the RIR, under the aegis of
the NRO.
</t>
<t>The RIR information systems consist of completely independent
software suites, developed over a long time and reflecting specific
information management goals of each instance. There is currently
no unified access model, no unified identity and authorisation model
and some shared information models (such as RPSL, RDAP, RPKI,
reverse-DNS).
</t>
</section>

<section anchor="conventions-used-in-this-document" title="Conventions Used In This Document">
<t>The key words &quot;MUST&quot;, &quot;MUST NOT&quot;, &quot;REQUIRED&quot;, &quot;SHALL&quot;,
&quot;SHALL NOT&quot;, &quot;SHOULD&quot;, &quot;SHOULD NOT&quot;, &quot;RECOMMENDED&quot;,
&quot;MAY&quot;, and &quot;OPTIONAL&quot; in this document are to be interpreted as
described in <xref target="RFC2119"/> when they appear in ALL CAPS.  These words may
also appear in this document in lower case as plain English words,
absent their normative meanings.
</t>
</section>

<section anchor="potentially-unexpected-abbreviations-and-terms-used-in-this-document" title="Potentially Unexpected Abbreviations and terms used in this document">
<t><spanx style="emph">It's possible this won't be necessary, INR feels like it may need defining. And some others:</spanx>
</t>
<t>
<list style="symbols">
<t>INR Internet Number Resources - the combination of IPv4 addresses, IPv6 addresses and AS numbers - are collectively referred to as INR.</t>
<t>NIR National Internet Registry - a sub registry of the APNIC or LACNIC region, which has independent status and authority under the global address policy and co-ordinates INR for a given economy, under the aegis of an RIR.</t>
</list>
</t>
<t>[TBD]
</t>
<t>
<list style="symbols">
<t>APNIC</t>
<t>AFRINIC</t>
<t>LACNIC</t>
<t>ARIN</t>
<t>RIPE</t>
<t>CNNIC</t>
<t>TWNIC</t>
<t>KRNIC</t>
<t>VNNIC</t>
<t>APJII</t>
<t>IRNN</t>
<t>Registro.BR</t>
<t>RPSL</t>
<t>RPKI</t>
<t>reverse-DNS</t>
</list>
</t>
</section>

<section anchor="basic-operational-model" title="Basic Operational Model">
<t>It is assumed that an entity seeking to apply a CASM approach to INR management has an account with one or more RIR, and is able to register for online services in some manner with the RIR.
</t>
<t>Given some secure access method (eg, a 2 factor authentication system, or an API key system which issues an ephemeral session token) the entity should be able to perform the following:
</t>
<t>
<list style="numbers">
<t>get a list of supported functions from this RIR parent, which might be a subset of the remaining functions since not all services are provided at all RIR.</t>
<t>request a list of all INR held, by category. This will be a set of addresses and AS numbers, in a canonical form (no overlaps, all resources represented as either prefix or ranges).</t>
<t>register Nameservers (NS) to be associated with specified (sub)sets of IPv4 and IPv6 addresses, for reverse-DNS delegation.</t>
<t>register Delegation Signer (DS) records, to bind DNSSEC over the specified (sub)sets of IPv4 and IPv6 addresses for secure reverse-DNS delegation.</t>
<t>enable RPKI, and exchange basic business PKI b(PKI) identity information to be used over the provisioning protocol channel.</t>
<t>manage WHOIS objects for internet routing (IRR). Create, delete and modify records.</t>
<t>manage WHOIS objects for customer/more-specific sub-assignment record keeping. Create, delete and modify records.</t>
<t>request INR in line with the RIR policy.</t>
<t>register interest in acquiring INR, subject to RIR policy.</t>
<t>register interest in releasing INR, either for return to the registry or for transfer, subject to RIR policy.</t>
</list>
</t>
</section>

<section anchor="possible-protocols" title="possible protocols">
<t>At the time of writing, there is not a single definition of interface across this space for all RIR. Interfaces will have to be developed in some cases, and prior information systems exist in others, which can be adapted to provide some of the functions.
</t>
<t>
<list style="numbers">
<t>RIPE Whois v3 'Syncupdates' (whois objects, reverse DNS)</t>
<t>ARIN API [TBD]</t>
<t>APNIC API (some whois objects, reverse DNS)</t>
<t>LACNIC API</t>
<t>AFRINIC</t>
<t>RPKI provisioning protocol</t>
<t>email submission of WHOIS updates</t>
<t>WHOIS query (port 43)</t>
<t>RDAP query</t>
<t>RPKI publication protocol</t>
</list>
</t>

<section anchor="ripe-api-and-related-bindings-draft" title="RIPE API and related bindings (draft)">
<t>RIPE NCC have a number of member related APIs documented at
<eref target="https://www.ripe.net/support/documentation/developer-documentation"/>
</t>
<t>A beta hosted CA API to manage hosted ROA services is documented at
<eref target="https://www.ripe.net/support/documentation/developer-documentation/rpki-management-api"/>
</t>
<t>Whois maintenance via a REST API is documented at:
<eref target="https://github.com/RIPE-NCC/whois/wiki/WHOIS-REST-API"/>
</t>
<t>syncupdates and mail-updates which may also be available at APNIC and AFRINIC, are documented here:
<eref target="https://www.ripe.net/manage-ips-and-asns/db/support/documentation/ripe-database-documentation/updating-objects-in-the-ripe-database/6-3-syncupdates"/>
<eref target="https://www.ripe.net/manage-ips-and-asns/db/support/documentation/ripe-database-documentation/updating-objects-in-the-ripe-database/6-4-email-updates"/>
</t>
</section>

<section anchor="arin-api-tbd" title="ARIN API (TBD)">
<t>RESTful API to ARIN public whois services
</t>
<t>see <eref target="https://www.arin.net/resources/whoisrws/whois_api.html"/>
</t>
</section>

<section anchor="apnic-api-ddraftraft" title="APNIC API (ddraftraft)">
<t>see <eref target="https://www.apnic.net/manage-ip/apnic-services/services-roadmap/public-api-draft-for-members/"/>
</t>
</section>

<section anchor="lacnic-api-draft" title="LACNIC API (draft)">
<t>LACNIC currently operates a project named SARA (SARA is the Spanish acronym for &quot;Automated Resource Management System&quot;). SARA provides an EPP-based interface for members allowing them to perform, among others, the following operations:
</t>
<t>
<list style="numbers">
<t>Point-of-Contact management</t>
<t>Managing Organizations</t>
<t>Managing IPv4 / IPv6 ranges (including reverse DNS delegations)</t>
<t>Managing ASN registrations</t>
</list>
</t>
<t>More information can be found at: <eref target="http://www.lacnic.net/en/web/lacnic/sara"/>
</t>
</section>

<section anchor="afrinic" title="AFRINIC">

<section anchor="myafrinic" title="&quot;MyAFRINIC&quot;">
<t>AFRINIC's member portal
</t>
<t>
<list style="symbols">
<t>All tasks/operations, including writes/requests.</t>
<t>Web based - manual (no API currently).</t>
<t>Single factor auth - password login or certificate authentication.</t>
<t>Also non-CASM related RIR functions.</t>
</list>
</t>
</section>

<section anchor="email-whois-submission" title="Email WHOIS Submission">
<t>AFRINIC allows for updates of the WHOIS database by email submission. Authentication is supported by plain password in the body (not recommended), or by PGP signed emails.
</t>
</section>

<section anchor="whois-web-form" title="WHOIS web form">
<t>The AFRINIC web site includes an embedded web interface to the WHOIS DB.
</t>
<t>
<list style="symbols">
<t>Not an API, just a web form.</t>
<t>All read-only queries possible on port 43 are supported.</t>
<t>Also provides for updates/writes.</t>
<t>Single factor (password) authentication.</t>
</list>
</t>
</section>

<section anchor="whois-port-43" title="WHOIS port 43">
<t>Standard port 43. Reference port 43 RFC here. Supports &quot;RIPE&quot; flags.
</t>
</section>

<section anchor="rdap" title="RDAP">
<t>Standard RDAP. Reference multiple RFCs here.
</t>
</section>

<section anchor="rpki" title="RPKI">
<t>Reference AFRINIC public repo.
</t>
</section>
</section>
</section>

<section anchor="matrix-of-support-by-rir-and-protocoltask" title="matrix of support by RIR and protocol/task">
</section>

<section anchor="iana-considerations" title="IANA Considerations">
<t>IANA is not expected to have a direct role in this problem space
</t>
</section>

<section anchor="security-considerations" title="Security Considerations">
<t>AAA models have to be developed which preserve the integrity of the resource management systems in the RIR systems.
</t>
</section>

<section anchor="acknowledgements" title="Acknowledgements">
</section>

<section anchor="notes" title="Notes">
<t>'''
If you like, the primary driver CASM cares about is:
</t>
<t>&quot;list all my resources
</t>
<t>If we simply specify how that can be done, at each RIR, then we can
leave the rest as TBD.
</t>
<t>For APNIC (for instance) this would be a set of WHOIS or RDAP queries
which specified a member. Once we have org-id implemented it would be
as simple as an inverse-query in WHOIS on an org-id. Because we don't
have that, it currently demands a bit more ad-hoc heuristics. RIPE has
org-id so for RIPE, this is really done.
</t>
<t>It's possible the best we can say is that absent a single consistent
mechanism, a CASM specified IPAM system should let somebody declare by
fiat what resources they control, and use some consistent
representation of them, and how they are confirmed inside an RIR is
out of scope. I think that's a low goal and would probably stand as
the implicit problem definition: we should do better.
</t>
<t>The secondary set includes things like:
</t>
<t>&quot;manage my reverse-DNS&quot;
<vspace/>
&quot;manage my publicly visible WHOIS/RDAP&quot;
<vspace/>
&quot;manage my IRR&quot;
<vspace/>
&quot;manage my RPKI&quot;
<vspace/>
&quot;manage my contact and other ownership info&quot;
<vspace/>
&quot;request more resources&quot;
<vspace/>
&quot;formally acquire more resources&quot;
<vspace/>
&quot;transfer resources out&quot;
</t>
<t>Not all of these exist in all API at all RIR, or in ways which it
makes sense to say are machine managed online.
</t>
<t>We don't have a cross RIR consistent view on auth, tokens. We don't
all use the same representations across our API. This is just a given.
'''
</t>
</section>

</middle>
<back>
<references title="Normative References">
<?rfc include="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml"?>
</references>

</back>
</rfc>
