diff options
Diffstat (limited to 'doc/rfc/rfc6950.txt')
-rw-r--r-- | doc/rfc/rfc6950.txt | 1739 |
1 files changed, 1739 insertions, 0 deletions
diff --git a/doc/rfc/rfc6950.txt b/doc/rfc/rfc6950.txt new file mode 100644 index 0000000..19ba03a --- /dev/null +++ b/doc/rfc/rfc6950.txt @@ -0,0 +1,1739 @@ + + + + + + +Internet Architecture Board (IAB) J. Peterson +Request for Comments: 6950 NeuStar, Inc. +Category: Informational O. Kolkman +ISSN: 2070-1721 NLnet Labs + H. Tschofenig + Nokia Siemens Networks + B. Aboba + Skype + October 2013 + + + Architectural Considerations on Application Features in the DNS + +Abstract + + A number of Internet applications rely on the Domain Name System + (DNS) to support their operations. Many applications use the DNS to + locate services for a domain; some, for example, transform + identifiers other than domain names into formats that the DNS can + process, and then fetch application data or service location data + from the DNS. Proposals incorporating sophisticated application + behavior using DNS as a substrate have raised questions about the + role of the DNS as an application platform. This document explores + the architectural consequences of using the DNS to implement certain + application features, and it provides guidance to future application + designers as to the limitations of the DNS as a substrate and the + situations in which alternative designs should be considered. + +Status of This Memo + + This document is not an Internet Standards Track specification; it is + published for informational purposes. + + This document is a product of the Internet Architecture Board (IAB) + and represents information that the IAB has deemed valuable to + provide for permanent record. It represents the consensus of the + Internet Architecture Board (IAB). Documents approved for + publication by the IAB are not a candidate for any level of Internet + Standard; see Section 2 of RFC 5741. + + Information about the current status of this document, any errata, + and how to provide feedback on it may be obtained at + http://www.rfc-editor.org/info/rfc6950. + + + + + + + + +Peterson, et al. Informational [Page 1] + +RFC 6950 Application Features in DNS October 2013 + + +Copyright Notice + + Copyright (c) 2013 IETF Trust and the persons identified as the + document authors. All rights reserved. + + This document is subject to BCP 78 and the IETF Trust's Legal + Provisions Relating to IETF Documents + (http://trustee.ietf.org/license-info) in effect on the date of + publication of this document. Please review these documents + carefully, as they describe your rights and restrictions with respect + to this document. + +Table of Contents + + 1. Motivation ......................................................2 + 2. Overview of DNS Application Usages ..............................4 + 2.1. Locating Services in a Domain ..............................5 + 2.2. NAPTR and DDDS .............................................6 + 2.3. Arbitrary Data in the DNS ..................................8 + 3. Challenges for the DNS .........................................10 + 3.1. Compound Queries ..........................................10 + 3.1.1. Responses Tailored to the Originator ...............12 + 3.2. Using DNS as a Generic Database ...........................14 + 3.2.1. Large Data in the DNS ..............................14 + 3.3. Administrative Structures Misaligned with the DNS .........16 + 3.3.1. Metadata about Tree Structure ......................18 + 3.4. Domain Redirection ........................................20 + 4. Private DNS and Split Horizon ..................................21 + 5. Principles and Guidance ........................................23 + 6. Security Considerations ........................................25 + 7. IAB Members at the Time of Approval ............................26 + 8. Acknowledgements ...............................................26 + 9. Informative References .........................................27 + +1. Motivation + + The Domain Name System (DNS) has long provided a general means of + translating domain names into Internet Protocol addresses, which + makes the Internet easier to use by providing a valuable layer of + indirection between names and lower-layer protocol elements. + [RFC0974] documented a further use of the DNS: to locate an + application service operating in a domain, via the Mail Exchange (MX) + Resource Record; these records help email addressed to the domain to + find a mail service for the domain sanctioned by the zone + administrator. + + + + + + +Peterson, et al. Informational [Page 2] + +RFC 6950 Application Features in DNS October 2013 + + + The seminal MX record served as a prototype for other DNS resource + records that supported applications associated with a domain name. + The SRV Resource Record [RFC2052] provided a more general mechanism + for locating services in a domain, complete with a weighting system + and selection among transports. The Naming Authority Pointer (NAPTR) + Resource Record (originally described in [RFC2168]), especially as it + evolved into the more general Dynamic Delegation Discovery System + (DDDS) [RFC3401] framework, added a generic mechanism for storing + application data in the DNS. Primarily, this involved a client-side + algorithm for transforming a string into a domain name, which might + then be resolved by the DNS to find NAPTR records. This enabled the + resolution of identifiers that do not have traditional host + components through the DNS; the best-known examples of this are + telephone numbers, as resolved by the DDDS application ENUM. Recent + work, such as DomainKeys Identified Mail (DKIM) [RFC6376], has + enabled security features of applications to be advertised through + the DNS, via the TXT Resource Record. + + The scope of application usage of the DNS has thus increased over + time. Applications in many environments require features such as + confidentiality, and as the contexts in which applications rely on + the DNS have increased, some application protocols have looked to + extend the DNS to include these sorts of capabilities. However, some + proposed usages of, and extensions to, the DNS have become misaligned + with both the DNS architecture and the DNS protocol. If we take the + example of confidentiality, we see that in the global public DNS, the + resolution of domain names to IP addresses is an exchange of public + information with no expectation of confidentiality. Thus, the + underlying query/response protocol has no encryption mechanism; + typically, any security required by an application or service is + invoked after the DNS query, when the resolved service has been + contacted. Only in private DNS environments (including split-horizon + DNS) where the identity of the querier is assured through some + external policy can the DNS maintain confidential records, by + providing distinct answers to the private and public users of the + DNS. In support of load-balancing or other optimizations, a DNS + server may return different addresses in response to queries from + different sources, or even no response at all; see Section 3.1.1 for + details. + + This document provides guidance to application designers and + application protocol designers looking to use the DNS to support + features in their applications. It provides an overview of past + application usage of the DNS as well as a review of proposed new + usages. It identifies concerns and trade-offs and provides guidance + on the question, "Should I store this information in the DNS, or use + some other means?" when that question arises during protocol + development. These guidelines remind application protocol designers + + + +Peterson, et al. Informational [Page 3] + +RFC 6950 Application Features in DNS October 2013 + + + of the strengths and weaknesses of the DNS in order to make it easier + for designers to decide what features the DNS should provide for + their application. + + The guidance in this document complements the guidance on extending + the DNS given in [RFC5507]. Whereas [RFC5507] considers the + preferred ways to add new information to the underlying syntax of the + DNS (such as defining new resource records or adding prefixes or + suffixes to labels), the current document considers broader + implications of applications that rely on the DNS for the + implementation of certain features, be it through extending the DNS + or simply reusing existing protocol capabilities -- implications that + may concern the invocation of the resolver by applications; the + behavior of name servers, resolvers, or caches; extensions to the + underlying DNS protocol; the operational responsibilities of zone + administrators; security; or the overall architecture of names. When + existing DNS protocol fields are used in ways that their designers + did not intend to handle new applications, those applications may + demand further changes and extensions that are fundamentally at odds + with the strengths of the DNS. + +2. Overview of DNS Application Usages + + [RFC0882] identifies the original and fundamental connection between + the DNS and applications. It begins by describing how the + interdomain scope of applications creates "formidable problems when + we wish to create consistent methods for referencing particular + resources that are similar but scattered throughout the environment". + This motivated transitioning the "mapping between host names... and + ARPA Internet addresses" from a global table (the original "hosts" + file) to a "distributed database that performs the same function". + [RFC0882] also envisioned some ways to find the resources associated + with mailboxes in a domain: without these extensions, a user trying + to send mail to a foreign domain lacked a discovery mechanism to + locate the right host in the remote domain to which to connect. + + While a special-purpose service discovery mechanism could be built + for each such application protocol that needed this functionality, + the universal support for the DNS encourages installing these + features into its public tree rather than inventing something new. + Thus, over time, several other applications leveraged DNS resource + records for locating services in a domain or for storing application + data associated with a domain in the DNS. This section gives + examples of various types of DNS usage by applications to date. + + + + + + + +Peterson, et al. Informational [Page 4] + +RFC 6950 Application Features in DNS October 2013 + + +2.1. Locating Services in a Domain + + The MX Resource Record provides the simplest example of an + application advertising its domain-level resources in the Domain Name + System. The MX Resource Record contains the domain name of a server + that receives mail on behalf of the administrative domain in + question; that domain name must itself be resolved to one or more + IP addresses through the DNS in order to reach the mail server. + While naming conventions for applications might serve a similar + purpose (a host might be named "mail.example.com", for example), + approaching service location through the creation of a new resource + record yields important benefits. For example, one can put multiple + MX records under the same name, in order to designate backup + resources or to load-balance across several such servers (see + [RFC1794]); these properties could not easily be captured by naming + conventions (see [RFC4367], though more recently DNS-based Service + Discovery (DNS-SD) [RFC6763] codifies service instance naming + conventions for use across applications to locate services in a + domain). + + While the MX record represents a substantial improvement over naming + conventions as a means of service location, it remains specific to a + single application. Thus, the general approach of the MX record was + adapted to fit a broader class of applications through the Service + (SRV) Resource Record (originally described in [RFC2052]). The SRV + record allows DNS resolvers to query for particular services and + underlying transports (for example, HTTP running over Transport Layer + Security (TLS) [RFC2818]) and to learn a host name and port where + that service resides in a given domain. It also provides a weighting + mechanism to allow load-balancing across several instances of a + service. + + The reliance of applications on the existence of MX and SRV records + has important implications for the way that applications manage + identifiers and the way that applications pass domain names to + resolvers. Email identifiers of the form "user@domain" rely on MX + records to provide the convenience of simply specifying a "domain" + component rather than requiring an application to guess which + particular host handles mail on behalf of the domain. While naming + conventions continue to abound ("www.example.com") for applications + like web browsing, SRV records allow applications to query for an + application-specific protocol and transport in the domain. For the + Lightweight Directory Access Protocol (LDAP), the SRV service name + corresponds to the URL scheme of the identifier invoked by the + application (e.g., when "ldap://example.com" is the identifier, the + SRV query passed to the resolver is for "_ldap._tcp.example.com"); + for other applications, the SRV service name that the application + passes to the resolver may be implicit in the identifier rather than + + + +Peterson, et al. Informational [Page 5] + +RFC 6950 Application Features in DNS October 2013 + + + explicit. In either case, the application delivers the service name + to the DNS to find the location of the host of that service for the + domain, the port where the service resides on that host, additional + locations or ports for load-balancing and fault tolerance, and + related application features. + + Locating specific services for a domain was the first major function + for which applications started using the DNS beyond simple name + resolution. SRV broadened and generalized the precedent of MX to + make service location available to any application, rather than just + to mail. As applications that acquire MX (or SRV) records might need + to perform further queries or transformations in order to arrive at + an eventual domain name that will resolve to the IP addresses for the + service, [RFC1034] allowed that the Additional (data) section of DNS + responses may contain the corresponding address records for the names + of services designated by the MX record; this optimization, which + requires support in the authoritative server and the resolver, is an + initial example of how support for application features requires + changes to DNS operation. At the same time, this is an example of an + extension of the DNS that cannot be universally relied on: many DNS + resolver implementations will ignore the addresses in the additional + section of the DNS answers because of the trustworthiness issues + described in [RFC2181]. + +2.2. NAPTR and DDDS + + The NAPTR Resource Record evolved to fulfill a need in the transition + from Uniform Resource Locators (URLs) to the more mature Uniform + Resource Identifier (URI) [RFC3986] framework, which incorporated + Uniform Resource Names (URNs). Unlike URLs, URNs typically do not + convey enough semantics internally to resolve them through the DNS, + and consequently a separate URI-transformation mechanism is required + to convert these types of URIs into domain names. This allows + identifiers with no recognizable domain component to be treated as + domain names for the purpose of name resolution. Once these + transformations result in a domain name, applications can retrieve + NAPTR records under that name in the DNS. NAPTR records contain a + far more rich and complex structure than MX or SRV Resource Records. + A NAPTR record contains two different weighting mechanisms ("order" + and "preference"), a "service" field to designate the application + that the NAPTR record describes, and then two fields that can contain + translations: a "replacement" field or a "regexp" (regular + expression) field, only one of which appears in a given NAPTR record + (see [RFC2168]). A "replacement", like NAPTR's ancestor the PTR + record, simply designates another domain name where one would look + for records associated with this service in the domain. The + + + + + +Peterson, et al. Informational [Page 6] + +RFC 6950 Application Features in DNS October 2013 + + + "regexp", on the other hand, allows regular expression + transformations on the original URI intended to turn it into an + identifier that the DNS can resolve. + + As the abstract of [RFC2915] says, "This allows the DNS to be used to + lookup services for a wide variety of resource names (including URIs) + which are not in domain name syntax". Any sort of hierarchical + identifier can potentially be encoded as a domain name, and thus + historically the DNS has often been used to resolve identifiers that + were never devised as a name for an Internet host. A prominent early + example is found in the in-addr domain [RFC0883], in which IPv4 + addresses are encoded as domain names by applying a string + preparation algorithm that required reversing the octets and treating + each individual octet as a label in a domain name -- thus, for + example, the address 192.0.2.1 became 1.2.0.192.in-addr.arpa. This + allowed resolvers to query the DNS to learn name(s) associated with + an IPv4 address. The same mechanism has been applied to IPv6 + addresses [RFC3596] and other sorts of identifiers that lack a domain + component. Eventually, this idea connected with activities to create + a system for resolving telephone numbers on the Internet, which + became known as ENUM (originally described in [RFC2916]). ENUM + borrowed from an earlier proposal, the "tpc.int" domain [RFC1530], + which provided a means for encoding telephone numbers as domain names + by applying a string preparation algorithm that required reversing + the digits and treating each individual digit as a label in a domain + name -- thus, for example, the number +15714345400 became + 0.0.4.5.4.3.4.1.7.5.1.tpc.int. In the ENUM system, in place of + "tpc.int" the special domain "e164.arpa" was reserved for use. + + In the more mature form of the NAPTR standard, in the Dynamic + Delegation Discovery System (DDDS) [RFC3401] framework, the initial + transformation of an identifier (such as a telephone number) to a + domain name was called the "First Well Known Rule". The address- + reversing mechanism, whereby a query name is formed by reversing an + IPv4 address and prepending it to the in-addr.arpa domain, is + generalized for the use of NAPTR: each application defines a "First + Well Known Rule" that translates a specific resource into a query + name. Its flexibility has inspired a number of proposals beyond ENUM + to encode and resolve unorthodox identifiers in the DNS. Provided + that the identifiers transformed by the "First Well Known Rule" have + some meaningful structure and are not overly lengthy, virtually + anything can serve as an input for the DDDS structure: for example, + civic addresses. Though [RFC3402] stipulates regarding the + identifier that "The lexical structure of this string must imply a + unique delegation path", there is no requirement that the identifier + be hierarchical nor that the points of delegation in the domain name + + + + + +Peterson, et al. Informational [Page 7] + +RFC 6950 Application Features in DNS October 2013 + + + created by the "First Well Known Rule" correspond to any points of + administrative delegation inherent in the structure of the + identifier. + + While this ability to look up names "which are not in domain name + syntax" does not change the underlying DNS protocol -- the names + generated by the DDDS algorithm are still just domain names -- it + does change the context in which applications pass name to resolvers + and can potentially require very different operational practices of + zone administrators (see Section 3.3). In terms of the results of a + DNS query, the presence of the "regexp" field of NAPTR records + enabled unprecedented flexibility in the types of identifiers that + applications could resolve with the DNS. Since the output of the + regular expression frequently took the form of a URI (in ENUM + resolution, for example, a telephone number might be converted into a + SIP URI [RFC3261]), anything that could be encoded as a URI might be + the result of resolving a NAPTR record -- which, as the next section + explores, essentially means arbitrary data. + +2.3. Arbitrary Data in the DNS + + URI encoding has ways of encapsulating basically arbitrary data: the + most extreme example is a data URL [RFC2397]. Thus, the returned + NAPTR record might be interpreted to produce output other than a + domain name that would subsequently be resolved to IP addresses and + contacted for a particular application -- it could give a literal + result that would be consumed by the application. Originally, as + discussed in [RFC2168], the intended applicability of the regular + expression field in NAPTR was narrower: the "regexp" field contained + a "substitution expression that is applied to the original URI in + order to construct the next domain name to lookup", in order to + "change the host that is contacted to resolve a URI" or as a way of + "changing the path or host once the URL has been assigned". The + regular expression tools available to NAPTR record authors, however, + grant much broader powers to alter the input string, and thus + applications began to rely on NAPTR to perform more radical + transformations that did not serve any of those aforementioned needs. + According to [RFC3402], the output of DDDS is wholly application- + specific: "the Application must define what the expected output of + the Terminal Rule should be", and the example given in the document + is one of identifying automobile parts by inputting a part number and + receiving at the end of the process information about the + manufacturer. + + Historically speaking, NAPTR did not pioneer the storage of arbitrary + data in the DNS. At the start, [RFC0882] observed that "it is + unlikely that all users of domain names will be able to agree on the + set of resources or resource information that names will be used to + + + +Peterson, et al. Informational [Page 8] + +RFC 6950 Application Features in DNS October 2013 + + + retrieve", and consequently places little restriction on the + information that DNS records might carry: it might be "host + addresses, mailbox data, and other as yet undetermined information". + [RFC1035] defined the TXT record, a means to store arbitrary strings + in the DNS; [RFC1035] also specifically stipulates that a TXT + contains "descriptive text" and that "the semantics of the text + depends on the domain where it is found". The existence of TXT + records has long provided new applications with a rapid way of + storing data associated with a domain name in the DNS, as adding data + in this fashion requires no registration process. [RFC1464] + experimented with a means of incorporating name/value pairs to the + TXT record structure, which allowed applications to distinguish + different chunks of data stored in a TXT record -- surely not just + "descriptive text" as the TXT originally specified. In this fashion, + an application that wants to store additional data in the DNS can do + so without registering a new resource record type, though [RFC5507] + points out that it is "difficult to reliably distinguish one + application's record from others, and for its parser to avoid + problems when it encounters other TXT records". + + While open policies surrounding the use of the TXT record have + resulted in a checkered past for standardizing application usage of + TXT, TXT has been used as a technical solution for many applications. + Recently, DKIM [RFC6376] sidestepped the problem of TXT ambiguity by + storing keys under a specialized DNS naming structure that includes + the component "_domainkeys", which serves to restrict the scope of + that TXT solely to DKIM use. Storing keys in the DNS became the + preferred solution for DKIM for several reasons: notably, because + email applications already queried the DNS in their ordinary + operations, because the public keys associated with email required + wide public distribution, and because email identifiers contain a + domain component that applications can easily use to consult the DNS. + If the application had to negotiate support for the DKIM mechanism + with mail servers, it would give rise to bid-down attacks (where + attackers misrepresent that DKIM is unsupported on the originating + side) that are not possible if the DNS delivers the keys (provided + that DNSSEC [RFC4033] guarantees authenticity of the data). However, + there are potential issues with storing large data in the DNS, as + discussed in Section 3.2.1, as well as with the DKIM namespace + conventions that complicate the use of DNS wildcards (as discussed in + Section 6.1.2 of [RFC6376] and in more general terms in [RFC5507]). + If prefixes are used to identify TXT records used by an application, + potentially the use of wildcards may furthermore cause leakages that + other applications will need to detect. + + + + + + + +Peterson, et al. Informational [Page 9] + +RFC 6950 Application Features in DNS October 2013 + + +3. Challenges for the DNS + + The methods discussed in the previous section for transforming + arbitrary identifiers into domain names and returning arbitrary data + in response to DNS queries both represent significant departures from + the basic function of translating host names to IP addresses, yet + neither fundamentally alters the underlying semantics of the DNS. + When we consider, however, that the URIs returned by DDDS might be + base-64-encoded binary data in a data URL, the DNS could effectively + implement the entire application feature set of any simple query- + response protocol. Effectively, the DDDS framework considers the DNS + a generic database -- indeed, the DDDS framework was designed to work + with any sort of underlying database; as [RFC3403] says, the DNS is + only one potential database for DDDS to use. Whether the DNS as an + underlying database can support the features that some applications + of DDDS require, however, is a more complicated question. + + As the following subsections will show, the potential for + applications to rely on the DNS as a generic database gives rise to + additional requirements that one might expect to find in a database + access protocol: authentication of the source of queries for + comparison to access control lists, formulating complex relational + queries, and asking questions about the structure of the database + itself. The global public DNS was not designed to provide these + sorts of properties, and extending the DNS protocols to encompass + them could result in a fundamental alteration to its model. + Ultimately, this document concludes that efforts to retrofit these + capabilities into the DNS would be better invested in selecting, or + if necessary inventing, other Internet services with broader powers + than the DNS. If an application protocol designer wants these + properties from a database, in general this is a good indication that + the DNS cannot, or can only partly, meet the needs of the application + in question. + + Since many of these new requirements have emerged from the ENUM + space, the following sections use ENUM as an illustrative example; + however, any application using the DNS as a feature-rich database + could easily end up with similar requirements. + +3.1. Compound Queries + + Traditionally, DNS RRsets are uniquely identified by domain name, + resource record type, and class. DNS queries are based on this + 3-tuple, and the replies are resource record sets that are to be + treated as atomic data elements (see [RFC2181]); to applications, the + behavior of the DNS has traditionally been that of an exact-match + query-response lookup mechanism. Outside of the DNS space, however, + there are plenty of query-response applications that require a + + + +Peterson, et al. Informational [Page 10] + +RFC 6950 Application Features in DNS October 2013 + + + compound or relational search, one taking into account more than one + factor in formulating a response or one that uses no single factor as + a key to the database. For example, in the telephony space, + telephone call routing often takes into account numerous factors + aside from the dialed number, including originating trunk groups, + interexchange carrier selection, number portability data, time of + day, and so on. All are considered simultaneously in generating a + route. While in its original conception ENUM hoped to circumvent the + traditional Public Switched Telephone Network (PSTN) and route + directly to Internet-enabled devices, the infrastructure ENUM effort + to support the migration of traditional carrier routing functions to + the Internet aspires to achieve feature parity with traditional + number routing. However, [RFC3402] explicitly states that "it is an + assumption of the DDDS that the lexical element used to make a + delegation decision is simple enough to be contained within the + Application Unique String itself. The DDDS does not solve the case + where a delegation decision is made using knowledge contained outside + the AUS and the Rule (time of day, financial transactions, rights + management, etc.)". Consequently, some consideration has been given + to ways to append additional data to ENUM queries to give the DNS + server sufficient information to return a suitable URI (see + Section 3.1.1). + + From a sheer syntactical perspective, however, domain names do not + admit of this sort of rich structure. Several workarounds have + attempted to instantiate these sorts of features in DNS queries. For + example, the domain name itself could be compounded with the + additional parameters: one could take a name like + 0.0.4.5.4.3.4.1.7.5.1.e164.arpa and append a trunk group identifier + to it, for example, of the form + tg011.0.0.4.5.4.3.4.1.7.5.1.e164.arpa. While in this particular case + a DNS server can adhere to its traditional behavior in locating + resource records, the syntactical viability of encoding additional + parameters in this fashion is dubious, especially if more than one + additional parameter is required and the presence of parameters is + optional so that the application needs multiple queries to assess the + completeness of the information it needs to perform its function. + + As an alternative, it has been proposed that we piggyback additional + query parameters as Extension Mechanisms for DNS (EDNS(0)) extensions + (see [RFC6891]). This might be problematic for three reasons. + First, supporting EDNS(0) extensions requires significant changes to + name server behavior; these changes need to be supported by the + authoritative and recursive name servers on which the application + relies and might be very hard to realize on a global scale. In + addition, the original stated applicability of the EDSN(0) mechanism, + as [RFC2671] states, was to "a particular transport level message and + not to any actual DNS data", and consequently the OPT Resource + + + +Peterson, et al. Informational [Page 11] + +RFC 6950 Application Features in DNS October 2013 + + + Records it specifies are never to be forwarded. The use of EDNS(0) + for compound queries, however, clearly is intended to discriminate + actual DNS data rather than to facilitate transport-layer handling. + Finally, [RFC6891] also specifies that "OPT RRs MUST NOT be cached, + forwarded, or stored" (see the next paragraph). For these reasons, + this memo recommends against crafting compound DNS queries by using + EDNS(0). + + The implications of these sorts of compound queries for recursion and + caching are potentially serious. The logic used by the authoritative + server to respond to a compound query may not be understood by any + recursive servers or caches; intermediaries that naively assume that + the response was selected based on the domain name, type, and class + alone might serve responses to queries in a different way than the + authoritative server intends. Therefore, were EDNS(0) to be employed + this way, its attributes would not be transitive, and if this were + not considered where intermediaries are employed, as is normally the + case in the global DNS, brokenness might occur. + +3.1.1. Responses Tailored to the Originator + + DNS responses tailored to the identity of their originator, where + some sort of administrative identity of the originator must be + conveyed to the DNS, constitute the most important subcase of these + compound queries. We must first distinguish this from cases where + the originating IP address or a similar indication is used to serve a + location-specific name. For those sorts of applications, which + generally lack security implications, relying on factors like the + source IP address introduces little harm; for example, when providing + a web portal customized to the region of the client, it would not be + a security breach if the client saw the localized portal of the wrong + country. Because recursive resolvers may obscure the origination + network of the DNS client, a recent proposal suggested introducing a + new DNS query parameter to be populated by DNS recursive resolvers in + order to preserve the originating IP address (see [EDNS-CLIENT-IP]). + However, aside from purely cosmetic uses, these approaches have known + limitations due to the prevalence of private IP addresses, VPNs, and + so on, which obscure the source IP address and instead supply the IP + address of an intermediary that may be very distant from the + originating endpoint. Implementing technology such as the one + described by [EDNS-CLIENT-IP] would require significant changes in + the operation of recursive resolvers and the authoritative servers + that would rely on the original source IP address to select resource + records, and moreover a fundamental change to caching behavior as + well. As a result, such technology cannot be rolled out in an + incremental, unilateral fashion but could only be successful when + implemented bilaterally (by authoritative server and recursive + resolver); this is a significant bar to deployment. + + + +Peterson, et al. Informational [Page 12] + +RFC 6950 Application Features in DNS October 2013 + + + In other deployments in use today, including those based on the BIND + "views" feature, the source IP address is used to grant access to a + selected, and potentially sensitive, set of resource records. The + security implications of trusting the source IP address of a DNS + query have prevented most solutions along these lines from being + standardized (see [RFC6269]), though the practice remains widespread + in "split horizon" private DNS deployments (see Section 4), which + typically rely on an underlying security layer, such as a physical + network, a clear perimeter demarcation at a network perimeter point + (with network-layer anti-spoofing countermeasures), or an IPsec VPN, + to prevent spoofing of the source IP address. These deployments do + have a confidentiality requirement to prevent information intended + for a constrained audience (internal to an enterprise, for example) + from leaking to the public Internet -- while these internal network + resources may use private IP addresses that should not be useful on + the public Internet anyway, in some cases this leakage would reveal + topology or other information that the name server administrator + hopes to keep private. More recently, TSIG [RFC2845] has been + employed as a way of selecting among "views" in BIND; this provides a + stronger level of security than merely relying on the source IP + address, but typically many users share the same secret to access a + given view, and moreover TSIG does not provide confidentiality + properties to DNS messages -- without network-layer separation + between users of different views, eavesdroppers might capture the DNS + queries and responses. + + The use of source IP addresses as a discriminator to select DNS + resource records, regardless of its lack of acceptance by the + standards community, has widespread acceptance in the field. Some + applications, however, go even further and propose extending the DNS + to add an application-layer identifier of the originator; for + example, [EDNS-OPT-CODE] provides a SIP URI in an EDNS(0) parameter. + Effectively, this conveyance of application-layer information about + the administrative identity of the originator through the DNS is a + weak authentication mechanism, on the basis of which the DNS server + makes an authorization decision before sharing resource records. + This can approximate a confidentiality mechanism per resource record, + where only a specific set of originators is permitted to see resource + records, or a case where a query for the same name by different + entities results in completely different resource record sets. + However, without any underlying cryptographic security, this + mechanism must rely on external layers for security (such as VPNs) + rather than any direct assurance. Again, caching, forwarding, and + recursion introduce significant challenges for applications that + attempt to offload this responsibility to the DNS. Achieving feature + parity with even the simplest authentication mechanisms available at + the application layer would likely require significant rearchitecture + of the DNS. + + + +Peterson, et al. Informational [Page 13] + +RFC 6950 Application Features in DNS October 2013 + + +3.2. Using DNS as a Generic Database + + As previously noted, applications can use a method like the "First + Well Known Rule" of DDDS to transform an arbitrary string into a + domain name and then receive from the DNS arbitrary data stored in + TXT RRs, in the "regexp" of NAPTRs, or even in custom records. Some + query-response applications, however, require queries and responses + that simply fall outside the syntactic capabilities of the DNS. For + example, domain names themselves must consist of labels that do not + exceed 63 octets, while the total length of the encoded name may not + exceed 255 octets, and applications that use label characters outside + the traditional ASCII set may run into problems (however, see the + discussion in [RFC6055], Section 3 for definitive guidance on the use + of non-ASCII in the DNS). The DNS therefore cannot be a completely + generic database. Similar concerns apply to the size of DNS + responses. + +3.2.1. Large Data in the DNS + + While the "data" URL specification [RFC2397] notes that it is "only + useful for short values", unfortunately it gives no particular + guidance about what "short" might mean. Some applications today use + quite large data URLs (containing a megabyte or more of data) as + workarounds in environments where only URIs can syntactically appear + (for example, in Apple iOS, to pass objects between applications). + The meaning of "short" in an application context is probably very + different from how we should understand it in a DNS message. + Referring to a typical public DNS deployment, [RFC5507] observes that + "there's a strong incentive to keep DNS messages short enough to fit + in a UDP datagram, preferably a UDP datagram short enough not to + require IP fragmentation". And while EDNS(0) allows for mechanisms + to negotiate DNS message sizes larger than the traditional 512 + octets, there is a high risk that a long payload will cause UDP + fragmentation, in particular when the DNS message already carries + DNSSEC information. If EDNS(0) is not available, or the negotiated + EDNS(0) packet size is too small to fit the data, or UDP fragments + are dropped, the DNS may (eventually) resort to using TCP. While TCP + allows DNS responses to be quite long, this requires stateful + operation of servers, which can be costly in deployments where + servers have only fleeting connections to many clients. Ultimately, + there are forms of data that an application might store in the DNS + that exceed reasonable limits: in the ENUM context, for example, + something like storing base-64-encoded mp3 files of custom ringtones. + + Designs relying on storage of large amounts of data within DNS RRs + furthermore need to minimize the potential damage achievable in a + reflection attack (see [RFC4732], Section 3), in which the attacker + sends UDP-only DNS queries with a forged source address, and the + + + +Peterson, et al. Informational [Page 14] + +RFC 6950 Application Features in DNS October 2013 + + + victim receives the response. The attacker relies on amplification, + where a small query generates a large response directed at the + victim. Where the responder supports EDNS(0), an attacker may set + the requester maximum payload size to a larger value while querying + for a large resource record, such as a certificate [RFC4398]. Thus, + the combination of large data stored in DNS RRs and responders + supporting large payload sizes has the potential to increase the + potential damage achievable in a reflection attack. + + Since a reflection attack can be launched from any network that does + not implement source address validation, these attacks are difficult + to eliminate absent the ubiquitous deployment of source address + validation or "heavier" transport protocols such as TCP. The + bandwidth that can be mustered in a reflective amplification attack + directed by a botnet reflecting off a recursive name server on a + high-bandwidth network is sobering. For example, if the responding + resolver could be directed to generate a 10KB response in reply to a + 50-octet query, then magnification of 200:1 would be attainable. + This would enable a botnet controlling 10000 hosts with 1 Mbps of + bandwidth to focus 200 Gbps of traffic on the victim, more than + sufficient to congest any site on today's Internet. + + DNS reflection attacks typically utilize UDP queries; it is + prohibitively difficult to complete a TCP three-way handshake begun + from a forged source address for DNS reflection attacks. Unless the + attacker uses EDNS(0) [RFC6891] to enlarge the requester's maximum + payload size, a response can only reach 576 octets before the + truncate bit is set in the response. This limits the maximum + magnification achievable from a DNS query that does not utilize + EDNS(0). As the large disparity between the size of a query and size + of the response creates this amplification, techniques for mitigating + this disparity should be further studied, though this is beyond the + scope of this memo (for an analysis of the effects of limiting + EDNS(0) responses while still accommodating DNSSEC, see [Lindsay]). + For example, some implementations could limit EDNS(0) responses to a + specific ratio compared to the request size, where the precise ratio + can be configured on a per-deployment basis (taking into account + DNSSEC response sizes). Without some means of mitigating the + potential for amplification, EDNS(0) could cause significant harm. + + In summary, there are two operational forces that tend to drive the + practically available EDNS(0) sizes down: possible UDP fragmentation + and minimizing amplification in case of reflection attacks. DNSSEC + data will use a significant fraction of the available space in a DNS + packet. Therefore -- appreciating that given the current DNSSEC and + + + + + + +Peterson, et al. Informational [Page 15] + +RFC 6950 Application Features in DNS October 2013 + + + EDNS(0) deployment experience, precise numbers are impossible to give + -- the generic payload available to other DNS data, given the premise + that TCP fallback is to be minimized, is likely to be closer to + several hundred octets than a few thousand octets. + +3.3. Administrative Structures Misaligned with the DNS + + While the DDDS framework enables any sort of alphanumeric data to + serve as a domain name through the application of the "First Well + Known Rule", the delegative structure of the resulting domain name + may not reflect any administrative division of responsibilities + inherent in the original data. While [RFC3402] requires only that + the "Application Unique String has some kind of regular, lexical + structure that the rules can be applied to", DDDS is first and + foremost a delegation system: its abstract stipulates that + "Well-formed transformation rules will reflect the delegation of + management of information associated with the string". Telephone + numbers in the United States, for example, are assigned and delegated + in a relatively complex manner. Historically, the first six digits + of a nationally specific number (called the "NPA/NXX") reflected a + point of administrative delegation from the number assignment agency + to a carrier; from these blocks of ten thousand numbers, the carrier + would in turn delegate individual assignments of the last four digits + (the "XXXX" portion) to particular customers. However, after the + rise of North American telephone number portability in the 1990s, the + first point of delegation went away: the delegation is effectively + from the number authority to the carrier for each complete ten-digit + number (NPA/NXX-XXXX). While technical implementation details differ + from nation to nation, number portability systems with similar + administrative delegations now exist worldwide. + + To render these identifiers as domain names in accordance with the + DDDS Rule for ENUM yields a large flat administrative domain with no + points of administrative delegation from the country-code + administrator, e.g., 1.e164.arpa, down to the ultimate assignee of a + number. Under the assumption that one administrative domain is + maintained within one DNS zone containing potentially over five + billion names, scalability difficulties manifest in a number of + areas: the scalability that results from caching depends on these + points of delegation, so that cached results for intermediate servers + take the load off higher-tier servers. If there are no such + delegations, then as in the telephone number example the zone apex + server must bear the entire load for queries. Worse still, number + portability also introduces far more dynamism in number assignment, + where in some regions updated assignees for ported numbers must + propagate within fifteen minutes of a change in administration. + Jointly, these two problems make caching the zone extremely + problematic. Moreover, traditional tools for DNS replication, such + + + +Peterson, et al. Informational [Page 16] + +RFC 6950 Application Features in DNS October 2013 + + + as the zone transfer protocols AXFR [RFC1034] and IXFR [RFC1995], + might not scale to accommodate zones with these dimensions and + properties. + + In practice, the maximum sizes of telephone number administrative + domains are closer to 300M (the current amount of allocated telephone + numbers in the United States today -- still more than three times the + number of .com domain names), and one can alleviate some of the + scalability issues mentioned above by artificially dividing the + administrative domain into a hierarchy of DNS zones. Still, the fact + that traditional DNS management tools no longer apply to the + structures that an application tries to provision in the DNS is a + clue that the DNS might not be the right place for an application to + store its data. + + While DDDS is the most obvious example of these concerns, the point + is more generic: for example, were address portability to be + implemented for IP addresses and their administration thus to become + non-hierarchical, the same concerns would apply to in-addr.arpa + names. The difficulty of mapping the DNS to administrative + structures can even occur with traditional domain names, where + applications expect clients to infer or locate zone cuts. In the web + context, for example, it can be difficult for applications to + determine whether two domains represent the same "site" when + comparing security credentials with URLs (see Section 3.4 below for + more on this). This has also caused known problems in determining + the scope of web cookies, in contexts where applications must infer + where administrative domains end in order to grant cookies that are + as narrowly scoped as possible. + + In summary, the "First Well Known Rule" of DDDS provides a capability + that transforms arbitrary strings into domain names, but those names + play well with the DNS only when the input strings have an + administrative structure that maps to DNS delegations. In the first + place, delegation implies some sort of hierarchical structure. Any + mechanism to map a hierarchical identifier into a domain name should + be constructed such that the resulting domain name does match the + natural hierarchy of the original identifier. Although telephone + numbers, even in North America, have some hierarchical qualities + (like the geographical areas corresponding to their first three + digits), after the implementation of number portability these points + no longer mapped onto an administrative delegation. If the input + string to the DDDS does not have a hierarchical structure + representing administrative delegations that can map onto the DNS + distribution system, then that string probably is not a good + candidate for translating into a domain name. + + + + + +Peterson, et al. Informational [Page 17] + +RFC 6950 Application Features in DNS October 2013 + + +3.3.1. Metadata about Tree Structure + + There are also other ways in which the delegative structure of an + identifier may not map well onto the DNS. Traditionally, DNS + resolvers assume that when they receive a domain name from an + application the name is complete -- that it is not a fragment of a + domain name that a user is still in the middle of typing. For some + communications systems, however, this assumption does not apply. + ENUM use cases have surfaced a couple of optimization requirements to + reduce unnecessary calls and queries; proposed solutions include + metadata in the DNS that describes the contents and structure of ENUM + DNS trees to help applications handle incomplete queries or queries + for domains not in use. + + In particular, the "send-n" proposal [ENUM-Send-N] hoped to reduce + the number of DNS queries sent in regions with variable-length + numbering plans. When a dialed number potentially has a variable + length, a telephone switch ordinarily cannot anticipate when a dialed + number is complete, as only the numbering plan administrator (who may + be a national regulator, or even in open number plans a private + branch exchange) knows how long a telephone number needs to be. + Consequently, a switch trying to resolve such a number through a + system like ENUM might send a query for a telephone number that has + only partially been dialed in order to test its completeness. The + send-n proposal installs in the DNS a hint informing the telephone + switch of the minimum number of digits that must be collected by + placing in zones corresponding to incomplete telephone numbers some + resource records that state how many more digits are required -- + effectively how many steps down the DNS tree one must take before + querying the DNS again. Unsurprisingly, those boundaries reflect + points of administrative delegation, where the parent in a number + plan yields authority to a child. With this information, the + application is not required to query the DNS every time a new digit + is dialed but can wait to collect sufficient digits to receive a + response. As an optimization, this practice thus saves the resources + of the DNS server, though the call cannot complete until all digits + are collected, so this mechanism simply reduces the time the system + will wait before sending an ENUM query after collecting the final + dialed digit. A tangentially related proposal, [ENUM-UNUSED], + similarly places resource records in the DNS that tell the + application that it need not attempt to reach a number on the + telephone network, as the number is unassigned -- a comparable + general DNS mechanism would identify, for a domain name with no + records available in the DNS, whether or not the domain had been + allocated by a registry to a registrant (which is a different + condition than a name merely being unresolvable, per the semantics of + NXDOMAIN). + + + + +Peterson, et al. Informational [Page 18] + +RFC 6950 Application Features in DNS October 2013 + + + Both proposals optimize application behavior by placing metadata in + the DNS that predicts the success of future queries or application + invocation by identifying points of administrative delegation or + assignment in the tree. In some respects, marking a point in the + tree where a zone begins or ends has some features in common with the + traditional parent zone use of the NS record type, except that + instead of pointing to a child zone these metadata proposals point to + distant grandchildren. While this does not change resolver behavior + as such (instead, it changes the way that applications invoke the + resolver), it does have implications for the practices for zone + administrators. Metadata in one administrative domain would need to + remain synchronized with the state of the resources it predicts in + another administrative domain in the DNS namespace, in a case like + overlap dialing where the carrier delegates to a zone controlled by + an enterprise. When dealing with external resources associated with + other namespaces, like number assignments in the PSTN or the + databases of a registry operator, other synchronization requirements + arise; maintaining that synchronization requires that the DNS have + "semi-real time" updates that may conflict with scale and caching + mechanisms of the DNS. + + Placing metadata in the DNS may also raise questions about the + authority and delegation model. Who gets to supply records for + unassigned names? While in the original but little-used e164.arpa + root of ENUM this would almost certainly be a numbering plan + administrator, it is far less clear who that would be in the more + common and successful "infrastructure" ENUM models (see Section 4). + Ultimately, these metadata proposals share some qualities with DNS + redirection services offered by ISPs (for example, [DNS-REDIRECT]) + that "help" web users who try to browse to sites that do not exist. + Similarly, metadata proposals like [ENUM-UNUSED] create DNS records + for unallocated zones that redirect to a service provider's web page. + However, in the [DNS-REDIRECT] cases, at least the existence or + non-existence of a domain name is a fact about the Internet + namespace, rather than about an external namespace like the telephony + E.164 namespace (which must be synchronized with the DNS tree in the + metadata proposals). In send-n, different leaf zones that administer + telephone numbers of different lengths can only provision their hints + at their own apex, which provides an imperfect optimization: they + cannot install it themselves in a parent, both because they lack the + authority and because different zones would want to provision + contradictory data. The later the hint appears in the tree, however, + the less optimization will result. An application protocol designer + managing identifiers whose administrative model does not map well + onto the DNS namespace and delegations structure would be better + served to implement such features outside the DNS. + + + + + +Peterson, et al. Informational [Page 19] + +RFC 6950 Application Features in DNS October 2013 + + +3.4. Domain Redirection + + Most Internet application services provide a redirection feature -- + when one attempts to contact a service, the service may refer the + person to a different service instance, potentially in another + domain, that is for whatever reason better suited to service a + request. In HTTP and SIP, for example, this feature is implemented + by the 300 class responses containing one or more URIs, which may + indicate that a resource has moved temporarily or permanently to + another service. Several tools in the DNS, including the SRV record, + can provide a similar feature at a DNS level, and consequently some + applications as an optimization offload the responsibility for + redirection to the DNS; NAPTR can also provide this capability on a + per-application basis, and numerous DNS resource records can provide + redirection on a per-domain basis. This can prevent the unnecessary + expenditure of application resources on a function that could be + performed as a component of a DNS lookup that is already a + prerequisite for contacting the service. Consequently, in some + deployment architectures this DNS-layer redirection is used for + virtual hosting services. + + Implementing domain redirection in the DNS, however, has important + consequences for application security. In the absence of universal + DNSSEC, applications must blindly trust that their request has not + been hijacked at the DNS layer and redirected to a potentially + malicious domain, unless some subsequent application mechanism can + provide the necessary assurance. By way of contrast, application- + layer protocols supporting redirection, such as HTTP and SIP, have + available security mechanisms, including TLS, that can use + certificates to attest that a 300 response came from the domain that + the originator initially hoped to contact. + + A number of applications have attempted to provide an after-the-fact + security mechanism that verifies the authority of a DNS delegation in + the absence of DNSSEC. The specification for dereferencing SIP URIs + ([RFC3263], reaffirmed in [RFC5922]), requires that during TLS + establishment the site eventually reached by a SIP request present a + certificate corresponding to the original URI expected by the user; + this requires a virtual hosting service to possess a certificate + corresponding to the hosted domain. (In other words, if example.com + redirects to example.net in the DNS, this mechanism expects that + example.net will supply a certificate for example.com in TLS, per the + HTTP precedent in [RFC2818]). This restriction rules out many styles + of hosting deployments common in the web world today, however. + [HARD-PROBLEM] explores this problem space. [RFC6125] proposes a + solution for all applications that use TLS, which relies on new + application-specific identifiers in certificates, as does [RFC4985]); + note, however, that support for such certificates would require + + + +Peterson, et al. Informational [Page 20] + +RFC 6950 Application Features in DNS October 2013 + + + changes to existing certificate authority practices as well as + application behavior. With DNSSEC in place, DNS-based Authentication + of Named Entities (DANE) [RFC6394] offers another way to bind + certificates to particular applications and services. + + All of these application-layer measures attempt to mirror the + delegation of administrative authority in the DNS, when the DNS + itself serves as the ultimate authority on how domains are delegated. + (Note: changing the technical delegation structure by changing NS + records in the DNS is not the same as administrative delegation, + e.g., when a domain changes ownership.) Synchronizing a static + instrument like a certificate with a delegation in the DNS, however, + is problematic because delegations are not static: revoking and + reissuing a certificate every time an administrative delegation + changes is cumbersome operationally. In environments where DNSSEC is + not available, the problems with securing DNS-layer redirections + would be avoided by performing redirections in the application layer. + This inevitably gives rise to various design trade-offs involving + performance, load, and related factors, but in these application + environments, the security properties typically take priority. + +4. Private DNS and Split Horizon + + The classic view of the uniqueness of domain names in the DNS is + given in [RFC2826]: + + DNS names are designed to be globally unique, that is, for any one + DNS name at any one time there must be a single set of DNS records + uniquely describing protocol addresses, network resources and + services associated with that DNS name. All of the applications + deployed on the Internet which use the DNS assume this, and + Internet users expect such behavior from DNS names. + + [RFC2826] "does not preclude private networks from operating their + own private name spaces" but notes that if private networks "wish to + make use of names uniquely defined for the global Internet, they have + to fetch that information from the global DNS naming hierarchy". + There are various DNS deployments outside of the global public DNS, + including "split horizon" deployments and DNS usages on private (or + virtual private) networks. In a split horizon, an authoritative + server gives different responses to queries from the public Internet + than they do to internal resolvers; while some deployments + differentiate internal queries from public queries by the source IP + address, the concerns in Section 3.1.1 relating to trusting source IP + addresses apply to such deployments. When the internal address space + range is private [RFC1918], this makes it both easier for the server + to discriminate public from private and harder for public entities to + impersonate nodes in the private network. Networks that are made + + + +Peterson, et al. Informational [Page 21] + +RFC 6950 Application Features in DNS October 2013 + + + private physically, or logically by cryptographic tunnels, make these + private deployments more secure. The most complex deployments along + these lines use multiple virtual private networks to serve different + answers for the same name to many distinct networks. + + The use cases that motivate split-horizon DNS typically involve + restricting access to some network services -- intranet resources + such as internal web sites, development servers, or directories, for + example -- while preserving the ease of use offered by domain names + for internal users. While for many of these resources the split + horizon would not return answers to public resolvers for those + internal resources (those records are kept confidential from the + public), in some cases the same name (e.g., "mail.example.com") might + resolve to one host internally but another externally. The + requirements for multiple-VPN private deployments, however, are + different: in this case the authoritative server gives different, and + confidential, answers to a set of resolvers querying for the same + name. While these sorts of use cases rarely arise for traditional + domain names, where, as [RFC2826] says, users and applications expect + a unique resolution for a name, they can easily arise when other + sorts of identifiers have been translated by a mechanism such as the + "First Well Known Rule" of DDDS into "domain name syntax". Telephone + calls, for example, are traditionally routed through highly mediated + networks, in which an attempt to find a route for a call often + requires finding an appropriate intermediary based on the source + network and location rather than finding an endpoint (see the + distinction between the Look-Up Function and Location Routing + Function in [RFC5486]). Moreover, the need for responses tailored to + the originator, and for confidentiality, is easily motivated when the + data returned by the DNS is no longer "describing protocol addresses, + network resources and services" [RFC2826] but instead is arbitrary + data. Although, for example, ENUM was originally intended for + deployment in the global public root of the DNS (under e164.arpa), + the requirements of maintaining telephone identifiers in the DNS + quickly steered operators into private deployments. + + In private environments, it is also easier to deploy any necessary + extensions than it is in the public DNS: in the first place, + proprietary non-standard extensions and parameters can more easily be + integrated into DNS queries or responses, as the implementations of + resolvers and servers can likely be controlled; secondly, + confidentiality and custom responses can be provided by deploying, + respectively, underlying physical or virtual private networks to + shield the private tree from public queries, and effectively + different virtual DNS trees for each administrative entity that might + launch a query; thirdly, in these constrained environments, caching + and recursive resolvers can be managed or eliminated in order to + prevent any unexpected intermediary behavior. While these private + + + +Peterson, et al. Informational [Page 22] + +RFC 6950 Application Features in DNS October 2013 + + + deployments serve an important role in the marketplace, there are + risks in using techniques intended only for deployment in private and + constrained environments as the basis of a standard solution. When + proprietary parameters or extensions are deployed in private + environments, experience teaches us that these implementations will + begin to interact with the public DNS and that the private practices + will leak. + + While such leakage is not a problem when using the mechanisms + described in Sections 3.1, 3.2, and 3.5 (with private RR types) of + [RFC5507], other extension mechanisms might cause confusion or harm + if leaked. The use of a dedicated suffix (Section 3.3 of [RFC5507]) + in a private environment might cause confusion if leaked to the + public Internet, for example. + + That this kind of leakage of protocol elements from private + deployments to public deployments does happen has been demonstrated, + for example, with SIP: SIP implemented a category of supposedly + private extensions ( the "P-" headers) that saw widespread success + and use outside of the constrained environments for which they were + specifically designed. There is no reason to think that + implementations with similar "private" extensions to the DNS + protocols would not similarly end up in use in public environments. + +5. Principles and Guidance + + The success of the global public DNS relies on the fact that it is a + distributed database, one that has the property that it is loosely + coherent and offers lookup instead of search functionality. Loose + coherency means that answers to queries are coherent within the + bounds of data replication between authoritative servers (as + controlled by the administrator of the zone) and caching behavior by + recursive name servers. Today, this term increasingly must also + include load-balancing or related features that rely on the source IP + address of the resolver. It is critical that application designers + who intend to use the DNS to support their applications consider the + implications that their uses have for the behavior of resolvers; + intermediaries, including caches and recursive resolvers; and + authoritative servers. + + + + + + + + + + + + +Peterson, et al. Informational [Page 23] + +RFC 6950 Application Features in DNS October 2013 + + + It is likely that the DNS provides a good match whenever the needs of + applications are aligned with the following properties: + + o Data stored in the DNS can be propagated and cached using + conventional DNS mechanisms, without intermediaries needing to + understand exceptional logic (considerations beyond the name, + type, and class of the query) used by the authoritative server to + formulate responses + + o Data stored in the DNS is indexed by keys that do not violate the + syntax or semantics of domain names + + o Applications invoke the DNS to resolve complete names, not + fragments + + o Answers do not depend on an application-layer identity of the + entity doing the query + + o Ultimately, applications invoke the DNS to assist in communicating + with a service whose name is resolved through the DNS + + Whenever one of the five properties above does not apply to one's + data, one should seriously consider whether the DNS is the best place + to store actual data. On the other hand, if one has to worry about + the following items, then these items are good indicators that the + DNS is not the appropriate tool for solving problems: + + o Populating metadata about domain boundaries within the tree -- the + points of administrative delegation in the DNS are something that + applications are not in general aware of + + o Domain names derived from identifiers that do not share a semantic + or administrative model compatible with the DNS + + o Selective disclosure of data stored in and provided by the DNS + + o DNS responses not fitting into UDP packets, unless EDNS(0) is + available, and only then with the caveats discussed in + Section 3.2.1 + + In cases where applications require these sorts of features, they are + likely better instantiated by independent application-layer protocols + than the DNS. For example, the objects that HTTP can carry in both + queries and responses can easily contain the necessary structure to + manage compound queries. Many applications already use HTTP because + of widespread support for it in middleboxes. Similarly, HTTP has + numerous ways to provide the necessary authentication, authorization, + and confidentiality properties that some features require, as well as + + + +Peterson, et al. Informational [Page 24] + +RFC 6950 Application Features in DNS October 2013 + + + the redirection properties discussed in Section 3.4. These + differences highlight the fact that the DNS and HTTP offer very + different services and have different applicabilities; while both are + query-response protocols, HTTP should not be doing the job of DNS, + and DNS should not be doing the job of HTTP. Similarly, DNS should + not be doing the job of Diameter, LDAP, or other application-layer + protocols. The overhead of using any application-layer protocol may + not be appropriate for all environments, of course, but even in + environments where a more lightweight protocol is appropriate, DNS is + usually not the only alternative. + + Where the administrative delegations of the DNS form a necessary + component in the instantiation of an application feature, there are + various ways that the DNS can bootstrap access to an independent + application-layer protocol better suited to field the queries in + question. For example, since NAPTR or URI [URI-RR] Resource Records + can contain URIs, those URIs can in turn point to an external query- + response service such as an HTTP service where more syntactically and + semantically rich queries and answers might be exchanged. Any + protocol designer considering where to implement features must + perform their own gap analysis and determine whether or not + implementing some features is worth the potential cost in increased + network state, latency, and so on, but implementing some features + simply requires heavier structures than others. + +6. Security Considerations + + Many of the concerns about how applications use the DNS discussed in + this document involve security. The perceived need to authenticate + the source of DNS queries (see Section 3.1.1) and authorize access to + particular resource records also illustrates the fundamental security + principles that arise from offloading certain application features to + the DNS. As Section 3.2.1 observes, large data in the DNS can + provide a means of generating reflection attacks, and without the + remedies discussed in that section (regarding the use of EDNS(0) and + TCP) the presence of large sets of records (e.g., ANY queries) is not + recommended. Section 3.4 discusses a security problem concerning + redirection that has surfaced in a number of protocols (see + [HARD-PROBLEM]). + + While DNSSEC, were it deployed universally, can play an important + part in securing application redirection in the DNS, DNSSEC does not + provide a means for a resolver to authenticate itself to a server, + nor a framework for servers to return selective answers based on the + authenticated identity of resolvers, nor a confidential mechanism. + Some implementations may support authenticating users through TSIG, + provided that the security association with a compliant server has + been pre-established, though authentication is typically not needed + + + +Peterson, et al. Informational [Page 25] + +RFC 6950 Application Features in DNS October 2013 + + + for queries in the global public DNS. The existing feature set of + DNSSEC is, however, sufficient for providing security for most of the + ways that applications traditionally have used the DNS. The + deployment of DNSSEC ([RFC4033] and related specifications) is + heartily encouraged. Nothing in this document is intended to + discourage the implementation, deployment, or use of Secure DNS + Dynamic Updates [RFC3007], though this document does recommend that + large data in the DNS be treated in accordance with the guidance in + Section 3.2.1. + +7. IAB Members at the Time of Approval + + Internet Architecture Board Members at the time this document was + approved were: + + Bernard Aboba + Jari Arkko + Marc Blanchet + Ross Callon + Alissa Cooper + Spencer Dawkins + Joel Halpern + Russ Housley + David Kessens + Danny McPherson + Jon Peterson + Dave Thaler + Hannes Tschofenig + +8. Acknowledgements + + The IAB appreciates the comments and often spirited disagreements of + Eric Osterweil, John Levine, Stephane Bortzmeyer, Ed Lewis, Dave + Crocker, Ray Bellis, Lawrence Conroy, Ran Atkinson, Patrik Faltstrom, + and Eliot Lear. + + + + + + + + + + + + + + + + +Peterson, et al. Informational [Page 26] + +RFC 6950 Application Features in DNS October 2013 + + +9. Informative References + + [DNS-REDIRECT] + Creighton, T., Griffiths, C., Livingood, J., and R. Weber, + "DNS Redirect Use by Service Providers", Work in Progress, + October 2010. + + [EDNS-CLIENT-IP] + Contavalli, C., van der Gaast, W., Leach, S., and D. + Rodden, "Client IP information in DNS requests", Work in + Progress, May 2010. + + [EDNS-OPT-CODE] + Kaplan, H., Walter, R., Gorman, P., and M. Maharishi, + "EDNS Option Code for SIP and PSTN Source Reference Info", + Work in Progress, October 2011. + + [ENUM-Send-N] + Bellis, R., "IANA Registrations for the 'Send-N' + Enumservice", Work in Progress, June 2008. + + [ENUM-UNUSED] + Stastny, R., Conroy, L., and J. Reid, "IANA Registration + for Enumservice UNUSED", Work in Progress, March 2008. + + [HARD-PROBLEM] + Barnes, R. and P. Saint-Andre, "High Assurance + Re-Direction (HARD) Problem Statement", Work in Progress, + July 2010. + + [Lindsay] Lindsay, G., "DNSSEC and DNS Amplification Attacks", + April 2012. + + [RFC0882] Mockapetris, P., "Domain names: Concepts and facilities", + RFC 882, November 1983. + + [RFC0883] Mockapetris, P., "Domain names: Implementation + specification", RFC 883, November 1983. + + [RFC0974] Partridge, C., "Mail routing and the domain system", + STD 10, RFC 974, January 1986. + + [RFC1034] Mockapetris, P., "Domain names - concepts and facilities", + STD 13, RFC 1034, November 1987. + + [RFC1035] Mockapetris, P., "Domain names - implementation and + specification", STD 13, RFC 1035, November 1987. + + + + +Peterson, et al. Informational [Page 27] + +RFC 6950 Application Features in DNS October 2013 + + + [RFC1464] Rosenbaum, R., "Using the Domain Name System To Store + Arbitrary String Attributes", RFC 1464, May 1993. + + [RFC1530] Malamud, C. and M. Rose, "Principles of Operation for the + TPC.INT Subdomain: General Principles and Policy", + RFC 1530, October 1993. + + [RFC1794] Brisco, T., "DNS Support for Load Balancing", RFC 1794, + April 1995. + + [RFC1918] Rekhter, Y., Moskowitz, B., Karrenberg, D., de Groot, G., + and E. Lear, "Address Allocation for Private Internets", + BCP 5, RFC 1918, February 1996. + + [RFC1995] Ohta, M., "Incremental Zone Transfer in DNS", RFC 1995, + August 1996. + + [RFC2052] Gulbrandsen, A. and P. Vixie, "A DNS RR for specifying the + location of services (DNS SRV)", RFC 2052, October 1996. + + [RFC2168] Daniel, R. and M. Mealling, "Resolution of Uniform + Resource Identifiers using the Domain Name System", + RFC 2168, June 1997. + + [RFC2181] Elz, R. and R. Bush, "Clarifications to the DNS + Specification", RFC 2181, July 1997. + + [RFC2397] Masinter, L., "The "data" URL scheme", RFC 2397, + August 1998. + + [RFC2671] Vixie, P., "Extension Mechanisms for DNS (EDNS0)", + RFC 2671, August 1999. + + [RFC2818] Rescorla, E., "HTTP Over TLS", RFC 2818, May 2000. + + [RFC2826] Internet Architecture Board, "IAB Technical Comment on the + Unique DNS Root", RFC 2826, May 2000. + + [RFC2845] Vixie, P., Gudmundsson, O., Eastlake 3rd, D., and B. + Wellington, "Secret Key Transaction Authentication for DNS + (TSIG)", RFC 2845, May 2000. + + [RFC2915] Mealling, M. and R. Daniel, "The Naming Authority Pointer + (NAPTR) DNS Resource Record", RFC 2915, September 2000. + + [RFC2916] Faltstrom, P., "E.164 number and DNS", RFC 2916, + September 2000. + + + + +Peterson, et al. Informational [Page 28] + +RFC 6950 Application Features in DNS October 2013 + + + [RFC3007] Wellington, B., "Secure Domain Name System (DNS) Dynamic + Update", RFC 3007, November 2000. + + [RFC3261] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, + A., Peterson, J., Sparks, R., Handley, M., and E. + Schooler, "SIP: Session Initiation Protocol", RFC 3261, + June 2002. + + [RFC3263] Rosenberg, J. and H. Schulzrinne, "Session Initiation + Protocol (SIP): Locating SIP Servers", RFC 3263, + June 2002. + + [RFC3401] Mealling, M., "Dynamic Delegation Discovery System (DDDS) + Part One: The Comprehensive DDDS", RFC 3401, October 2002. + + [RFC3402] Mealling, M., "Dynamic Delegation Discovery System (DDDS) + Part Two: The Algorithm", RFC 3402, October 2002. + + [RFC3403] Mealling, M., "Dynamic Delegation Discovery System (DDDS) + Part Three: The Domain Name System (DNS) Database", + RFC 3403, October 2002. + + [RFC3596] Thomson, S., Huitema, C., Ksinant, V., and M. Souissi, + "DNS Extensions to Support IP Version 6", RFC 3596, + October 2003. + + [RFC3986] Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform + Resource Identifier (URI): Generic Syntax", STD 66, + RFC 3986, January 2005. + + [RFC4033] Arends, R., Austein, R., Larson, M., Massey, D., and S. + Rose, "DNS Security Introduction and Requirements", + RFC 4033, March 2005. + + [RFC4367] Rosenberg, J., Ed., and IAB, "What's in a Name: False + Assumptions about DNS Names", RFC 4367, February 2006. + + [RFC4398] Josefsson, S., "Storing Certificates in the Domain Name + System (DNS)", RFC 4398, March 2006. + + [RFC4732] Handley, M., Ed., Rescorla, E., Ed., and IAB, "Internet + Denial-of-Service Considerations", RFC 4732, + December 2006. + + [RFC4985] Santesson, S., "Internet X.509 Public Key Infrastructure + Subject Alternative Name for Expression of Service Name", + RFC 4985, August 2007. + + + + +Peterson, et al. Informational [Page 29] + +RFC 6950 Application Features in DNS October 2013 + + + [RFC5486] Malas, D., Ed., and D. Meyer, Ed., "Session Peering for + Multimedia Interconnect (SPEERMINT) Terminology", + RFC 5486, March 2009. + + [RFC5507] IAB, Faltstrom, P., Ed., Austein, R., Ed., and P. Koch, + Ed., "Design Choices When Expanding the DNS", RFC 5507, + April 2009. + + [RFC5922] Gurbani, V., Lawrence, S., and A. Jeffrey, "Domain + Certificates in the Session Initiation Protocol (SIP)", + RFC 5922, June 2010. + + [RFC6055] Thaler, D., Klensin, J., and S. Cheshire, "IAB Thoughts on + Encodings for Internationalized Domain Names", RFC 6055, + February 2011. + + [RFC6125] Saint-Andre, P. and J. Hodges, "Representation and + Verification of Domain-Based Application Service Identity + within Internet Public Key Infrastructure Using X.509 + (PKIX) Certificates in the Context of Transport Layer + Security (TLS)", RFC 6125, March 2011. + + [RFC6269] Ford, M., Ed., Boucadair, M., Durand, A., Levis, P., and + P. Roberts, "Issues with IP Address Sharing", RFC 6269, + June 2011. + + [RFC6376] Crocker, D., Ed., Hansen, T., Ed., and M. Kucherawy, Ed., + "DomainKeys Identified Mail (DKIM) Signatures", RFC 6376, + September 2011. + + [RFC6394] Barnes, R., "Use Cases and Requirements for DNS-Based + Authentication of Named Entities (DANE)", RFC 6394, + October 2011. + + [RFC6763] Cheshire, S. and M. Krochmal, "DNS-Based Service + Discovery", RFC 6763, February 2013. + + [RFC6891] Damas, J., Graff, M., and P. Vixie, "Extension Mechanisms + for DNS (EDNS(0))", STD 75, RFC 6891, April 2013. + + [URI-RR] Faltstrom, P. and O. Kolkman, "The Uniform Resource + Identifier (URI) DNS Resource Record", Work in Progress, + July 2013. + + + + + + + + +Peterson, et al. Informational [Page 30] + +RFC 6950 Application Features in DNS October 2013 + + +Authors' Addresses + + Jon Peterson + NeuStar, Inc. + + EMail: jon.peterson@neustar.biz + + + Olaf Kolkman + NLnet Labs + + EMail: olaf@nlnetlabs.nl + + + Hannes Tschofenig + Nokia Siemens Networks + + EMail: Hannes.Tschofenig@gmx.net + + + Bernard Aboba + Skype + + EMail: Bernard_aboba@hotmail.com + + + + + + + + + + + + + + + + + + + + + + + + + + + +Peterson, et al. Informational [Page 31] + |