DNS Resource Records for DTN Overlays
Internet-Draft draft-johnson-dns-ipn-cla-07
Scott M. Johnson, Ed.
Spacely Packets, LLC
46 High Ridge Road
Daytona Beach
FL
32117
US
386-888-7311
scott@spacelypackets.com
2024-07-01
General
Internet Engineering Task Force
DTN
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.
Introduction
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.
Requirements Language
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 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here.
Purpose
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.
RRTYPES for Delay Tolerant Networks
IPN
A popular naming scheme for BP nodes is the IPN naming scheme, a URI scheme defined in [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 [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.
CLA
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 [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.
node.foo. CLA IN "TCP-V4-V6" "TCP-V6-V7"
node.foo. CLA IN TCP-V4-V6 TCP-V6-V7
The following is an example of an unsuitable syntax, as two labels quoted together represent only a single character string.
node.foo. CLA IN "TCP-V4-V6 TCP-V6-V7"
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).
Convergence Layer Adapters
Valid CLA RRTYPE Values | Specification Document
TCP-v4-v6 | [RFC7242]
UDP-v4-v6 | [RFC7112]
LTP-v4-v6 | [RFC7112]
STCP-v4-v6 | [I-D.burleigh-dtn-stcp]
BSSP-v4-v6 | CCSDS 730.2-G-1
IPND-v4-v6 | [I-D.johnson-dtn-ipnd]
TCP-v4-v7 | [RFC9174]
TCP-v6-v7 | [RFC9174]
UDP-v4-v7 | [RFC7112]
UDP-v6-v7 | [RFC7112]
LTP-v4-v7 | [RFC7112]
LTP-v6-v7 | [RFC7112]
STCP-v4-v7 | [I-D.burleigh-dtn-stcp]
STCP-v6-v7 | [I-D.burleigh-dtn-stcp]
BSSP-v4-v7 | CCSDS 730.2-G-1
BSSP-v6-v7 | CCSDS 730.2-G-1
IPND-v4-v7 | [I-D.johnson-dtn-ipnd]
IPND-v6-v7 | [I-D.johnson-dtn-ipnd]
IANA Considerations
IANA is requested to create CLA and IPN RRTYPES in the Domain Name System (DNS) Resource Record (RR) TYPEs registry.
Security Considerations
This document should not affect the security of the Internet.
References
Normative References
[RFC2119]
[RFC8174]
[RFC7116]
[RFC9171]
[RFC1035]
[RFC7242]
[RFC7112]
[I-D.burleigh-dtn-stcp]
[I-D.johnson-dtn-ipnd]
[RFC9174]
Contributors
Thanks to Mark Andrews, Scott Burleigh, Brian Sipos, Rick Taylor, and Ray Bellis for their contributions to this document.