<?xml version="1.0" encoding="utf-8"?>
<?xml-model href="rfc7991bis.rnc"?>
<!DOCTYPE rfc [
<!ENTITY nbsp "&#160;">
<!ENTITY zwsp "&#8203;">
<!ENTITY nbhy "&#8209;">
<!ENTITY wj "&#8288;">
]>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" category="info" docName="draft-johnson-dns-ipn-cla-07" ipr="trust200902" submissionType="IETF" xml:lang="en" version="3">
  <front>
    <title>DNS Resource Records for DTN Overlays</title>
    <seriesInfo name="Internet-Draft" value="draft-johnson-dns-ipn-cla-07"/>
    <author fullname="Scott M. Johnson" initials="S." role="editor" surname="Johnson">
      <organization>Spacely Packets, LLC</organization>
      <address>
        <postal>
          <street>46 High Ridge Road</street>
          <city>Daytona Beach</city>
          <region>FL</region>
          <code>32117</code>
          <country>US</country>
        </postal>
        <phone>386-888-7311</phone>
        <email>scott@spacelypackets.com</email>  
      </address>
    </author>
    <date year="2024" month="7" day="1"/>
    <area>General</area>
    <workgroup>Internet Engineering Task Force</workgroup>
    <keyword>DTN</keyword>
    <abstract>
      <t>Delay Tolerant Networks (DTNs) are typically characterized by high latency and lack of constant end to end connectivity, consistent with their use in deep space communications.
      This, however,  is not the limit of application of Bundle Protocol (BP) and related DTN enabling technologies.  Through a collection of Convergance Layer Adapters (CLAs), deployment overlaying 
      the terrestrial Internet is a core component of DTN implementations. IPN is a integer based naming scheme for DTN networks.  Notwithstanding cryptographic considerations, 
      three basic components are necessary to enable a BP node to use the underlying Internet to communicate with another BP node: the IP address of the node, the CBHE Node Number 
      (component of any ipn-scheme URI identifying a BP endpoint of which that node is a member), and the CLA which provides 
      IP connectivity to that node.  This document describes RRTYPE additions to DNS to enable terrestrial BP resource look-up.</t>
    </abstract>
  </front>
  <middle>
    <section>
      <name>Introduction</name>
      <t>Terrestrial use of DTNs across reliable, low latency paths introduces the opportunity to leverage the existing DNS infrastructure to distribute connectivity related data.
      While is it not technically feasible to ensure delivery of non-stale data to spaceborne DTN nodes in response to a DNS lookup request, there is no such barrier to deploying 
      DNS records which describe those core datasets necessary to enable connection of DTN nodes overlaying IPv4 or IPv6 networks. </t>
     <section>
     <name>Requirements Language</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>
      </section>
    </section>
    <section>
      <name>Purpose</name>
      <t>One barrier to BP native
      application authoring which has been identified is lack of an API.
      This is being explored in multiple directions, including userspace and
      kernel API implementations. It is highly useful, when operating over 
      the underlying Internet, for an application to be able to collect all
      necessary connectivity data via DNS query.  A web browser, for example, does a DNS lookup before making a http
      request.  At a minimum, this means Node Number and available CLA(s) in
      addition to IP address when making a BP connection.  If BPSEC is
      deployed, additional RRTYPES, such as a security context identifier
      (CTX) and public key (BSEC) records might be appropriate to negotiate
      such a connection, but they are out of scope of this draft.
      If the application then transmits that information via an API to the
      BPA, the BPA can take action in the contact graph to perfect the
      connection. This draft, and the RRTYPEs it describes, enable a
      preferred component of an API structure to encourage application
      development.</t>
      </section>
    <section>
      <name>RRTYPES for Delay Tolerant Networks</name>
      <section>
      <name>IPN</name>
      <t>A popular naming scheme for BP nodes is the IPN naming scheme, a URI scheme defined in <xref target="RFC7116" format="default" sectionFormat="of" derivedContent="RFC7116"/>.  
      URIs composed in this scheme identify BP endpoints.  The scheme-specific part of a BP ipn-scheme Endpoint Identifier (EID) comprises two 64 bit unsigned
      integers separated by  single '.'character as described in section 4.2.5.1.2 of <xref target="RFC9171" format="default" sectionFormat="of" derivedContent="RFC9171"/>.  
      Of these two components of an EID, only the first component termed the (node-nbr), identifies the node, while the second (service-nbr)
      component generally is analogus to the port number bound to an IP socket.  Therefore, a DNS RRTYPE, IPN, is requested by which the (node-nbr) component of a Bundle Protocol EID is represented.  
     Wire format encoding shall be an unsigned 64-bit integer in network order. Presentation format for these resource records are either a 64 bit unsigned decimal integer, or two
     32 bit unsigned decimal integers delimited by a period with the most significant 32 bits first and least significant 32 bits last.  Values are not to be zero padded.
     </t> 
      </section>
      <section>
      <name>CLA</name>
      <t>BP supports a wide range of CLAs; some are IP based while others interface at different  layers or via different network layer protocols.  Those treated here
      represent the subset designed to utilize underlying IP networks, and hence have DNS services generally constantly available in a low latency environment.  
      Primary among these are TCP, UDP and LTP over UDP CLAs operating over both IPv4 and IPv6 links.  A DNS RRTYPE, CLA, is requested 
      to represent Convergence Layer Adapters on a node.  Table 1 describes an initial list of
      of valid values for a CLA RRTYPE.  Wire format is defined as one or more character strings as defined in <xref target="RFC1035"/>, Section 3.3,
      conforming to the format described in Section 3.3.14 of same, with character set restricted to Letters, Digits, and internal Hyphens.  
      The presentation format syntax for this RRTYPE is  defined as [CLA protocol]-[IP Version]-[BP Version].  Each CLA label MUST be formed of exactly one character-string.
      The character set for the presentation format is restricted to Letters, Digits, and interior Hyphens, although quoting is acceptable in a zone file, per the below example.</t>
        <t>node.foo. CLA  IN "TCP-V4-V6" "TCP-V6-V7"</t>
       <t> node.foo. CLA IN TCP-V4-V6 TCP-V6-V7</t>
      <t>The following is an example of an unsuitable syntax, as two labels quoted together represent only a single character string.</t>
      <t>node.foo. CLA IN "TCP-V4-V6 TCP-V6-V7"
      </t>
      
      <t>The first field describes the packet or datagram type for transmission,
      the second the version of IP (v4 or v6) and the third describes the version BP (v6 or v7) of the service(s) offered on the node.      
      It is possible for a node to deploy multiple CLAs using a single Node Number and IP address; 
      TCP-v4-v6 and UDP-v4-v6 can work side by side on the same node, for example.  To address this capability in the CLA RRTYPE, records may be expressed as a lone entry (i.e TCP-v6-v7) 
      or in a space delimited format, expressing multiple values (i.e. TCP-v4-v7 TCP-v6-v7 LTP-v6-v7).
      </t>
      </section>
      </section>
      <section>
       <name>Convergence Layer Adapters</name>
       <table>
        <thead>
          <tr><th>Valid CLA RRTYPE Values</th><th>Specification Document</th></tr>
        </thead>
        <tbody>
          <tr><td>TCP-v4-v6</td><td><xref target="RFC7242"/></td></tr>
          <tr><td>UDP-v4-v6</td><td><xref target="RFC7112"/></td></tr>
          <tr><td>LTP-v4-v6</td><td><xref target="RFC7112"/></td></tr>
          <tr><td>STCP-v4-v6</td><td><xref target="I-D.burleigh-dtn-stcp"/></td></tr>
          <tr><td>BSSP-v4-v6</td><td>CCSDS 730.2-G-1</td></tr>
          <tr><td>IPND-v4-v6</td><td><xref target="I-D.johnson-dtn-ipnd"/></td></tr>
          <tr><td>TCP-v4-v7</td><td><xref target="RFC9174"/></td></tr>
          <tr><td>TCP-v6-v7</td><td><xref target="RFC9174"/></td></tr>
          <tr><td>UDP-v4-v7</td><td><xref target="RFC7112"/></td></tr>
          <tr><td>UDP-v6-v7</td><td><xref target="RFC7112"/></td></tr>
          <tr><td>LTP-v4-v7</td><td><xref target="RFC7112"/></td></tr>
          <tr><td>LTP-v6-v7</td><td><xref target="RFC7112"/></td></tr>
          <tr><td>STCP-v4-v7</td><td><xref target="I-D.burleigh-dtn-stcp"/></td></tr>
          <tr><td>STCP-v6-v7</td><td><xref target="I-D.burleigh-dtn-stcp"/></td></tr>
          <tr><td>BSSP-v4-v7</td><td>CCSDS 730.2-G-1</td></tr>
          <tr><td>BSSP-v6-v7</td><td>CCSDS 730.2-G-1</td></tr>
          <tr><td>IPND-v4-v7</td><td><xref target="I-D.johnson-dtn-ipnd"/></td></tr>
          <tr><td>IPND-v6-v7</td><td><xref target="I-D.johnson-dtn-ipnd"/></td></tr>
        </tbody>
      </table>
      </section>
    <section anchor="IANA">
      <name>IANA Considerations</name>
      <t>IANA is requested to create CLA and IPN  RRTYPES in the Domain Name System (DNS) Resource Record (RR) TYPEs registry.</t>
    </section>
    
    <section anchor="Security">
      <name>Security Considerations</name>
      <t>This document should not affect the security of the Internet.</t>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.1035.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.2119.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7112.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7116.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7242.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9171.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9174.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.burleigh-dtn-stcp.xml"/>
         <xi:include href="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.johnson-dtn-ipnd.xml"/>
      </references>
    </references>
    <section anchor="Contributors" numbered="false">
      <name>Contributors</name>
      <t>Thanks to Mark Andrews, Scott Burleigh, Brian Sipos, Rick Taylor, and Ray Bellis for their contributions to this document.</t>
    </section>
    </back>
</rfc>
