add D. Migault
Internet-Draft Ericsson
Intended status: Informational May 29, 2020
Expires: November 30, 2020

DNS Resolver Discovery Protocol (DRDP)


This document describes the DNS Resolver Discovery Protocol (DRDP) that enables a DNS client to discover various available local and global resolving service. The discovery is primarily initiated by a DNS client, but a resolving service may also inform the DNS client other resolving services are available and eventually preferred.

Status of This Memo

This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.

Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet-Drafts is at

Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress."

This Internet-Draft will expire on November 30, 2020.

Copyright Notice

Copyright (c) 2020 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 ( 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. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License.

Table of Contents

1. Requirements Notation

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.

2. Introduction

A DNS client can proceed to DNS resolution using various resolving services. These services can be local or global and can use a wide range of DNS transport protocols such as, for example, standard DNS [RFC1035], DNS over TLS [RFC7858] or DNS over HTTPS [RFC8484]. The local scope of these services may take various forms. For example, it could be associated to a network perspective ( restricted to the network the DNS client is connected to ) or to an application perspective ( restricted to some domain names ).

The purpose of the DNS Resolving service Protocol (DRDP) is to discover resolving services available to the DNS client. These available resolving services to a given DNS client may highly depend on its location or browsing activity. The number of resolving services available to the DNS client is expected to remain quite consequent and evolve over time. Similarly, characteristics associated to these resolving services may also evolve over time. As a result, the DNS client is unlikely willing to synchronize such a huge data base of resolving services. DRDP proposes an alternative that consists in adaptively discovering the available resolving services based on the DNS client context.

DRDP adopts a hierarchical approach where the DNS client gets resolving domains from the context. These resolving domains are entry points for resolving services ( associated to each of these resolving domains ).

The DNS client may obtain the contextual resolving domains via various way, including a configuration or via DHCP Options [I-D.btw-add-home].

This document describes two mechanisms for a DNS client to retrieve resolving domains. Firstly, it is envisioned that these resolving domains will be provided by multiple third party providers which could designate a set of resolving domains. This set is designated by a pointer used by the DNS client to retrieve the resolving domains.

Secondly, resolving domain may be derived from the IP address of the legacy resolving service provided via the Recursive Name Server option [RFC3646]. Such a resolving domain can be seen as a network local scope resolving domain. This resolving domain may then be used by the DNS client to discover he various flavors of resolving services provided by the ISP (DoH, DoT for example), while the legacy IP address provided is reserved to the legacy resolving service.

The discovery process is expected to be followed by a selection process by which the DNS client selects the resolving service it is willing to use for the DNS resolution of the end user or application.
How the selection is performed is out of scope of this document.

3. Terminology

DNS client
the client that sends DNS queries fro resolution. In this document the DNS client designates also the end entity that is collecting information about the available Resolving Services and then proceed to the selection of a subset them. The selection is processed according to the DNS client’s policy.
Resolving Service
designates a service that receives DNS queries from a DNS client and resolves them. A Resolving Service is implemented by one or multiple resolvers.

Resolver: A resolver designates the software or hardware handling the DNS exchange. See [RFC7719] for more details.

DNS transport
designates the necessary parameters a DNS client needs to establish a session with a Resolving Service.
Resolving Domain
a DNS domain that hosts one or multiple resolving services.

4. DRDP Requirements

This section lists the DRDP requirements.

REQ 1: DRDP MUST enable a DNS client to discover the available resolving services with their associated characteristics in order to proceeds to a selection process. The selection process takes resolving services identities and associated parameters and proceed to the selection.
Any sort of resolving service selection is outside the scope of DRDP.

REQ 2: While the discovery process is triggered by the DNS client, a third party MUST be able to provide necessary input information so a resolving service discovery process can be triggered within a specific context.
Provisioning protocols to provide this information is not as per say in scope of DRDP. DRDP defines the format of the format for such input as well as a set of such inputs.

REQ 3: Any information used in DRDP MUST be authenticated by its owner. In particular, the characteristics associated to the resolving service MUST be certified by the resolving service operator / owner and MUST be associated a validity period. In addition, a third party providing a set of inputs MUST authenticate that set.

REQ 4: Information associated to the resolving services is intended to enable the selection process that is assumed to match the end user or application policy. The selection process is out of scope of DRDP. Information may carry some characteristics of a resolving service or hints that will help the selection. In particular an operator of multiple resolving service MUST be able to associate a preference to the proposed resolving services. To ease automation of the selection as well as to make multiple applications benefit from DRDP the information MUST be carried over a standardized format.

REQ 5: DRDP MUST be designed to be used indifferently by a DNS client using any DNS transport protocol (Do53, DoT, DoH, …). However, DRDP SHOULD be able to restrict the information retrieved to a certain type of resolving service, i.e. Do53, DoT, DoH.

REQ 6: DRDP deployment MUST NOT be disruptive for the legacy DNS client or infrastructure and legacy client SHOULD be able to incrementally include DRDP.

5. Resolving Domains

The resolving domain is the input of a discovery process. Section Section 5.1 defines the format resolving domain and exposes why resolving domains seem convenient pointers to resolving service as well as how the relates to resolving service identities. Section Section 5.2 defines the format of a pointer to a set of resolving domains as well as how to retrieve how to handle such set. Such pointer are expected to be used by third party providers to indicate a subset of resolving domains that match a certain context. The use of a pointer is expected to ease the management of the set as opposed to a explicit list. The definition of such a format is expected to favor interoperability with third party providers.

Finally, section Section 5.3 defines a procedure to derive a resolving domain from the IP address provided by Recursive Name Server option [RFC3646]. Such procedure is expected to leverage from the existing and legacy infrastructure.

5.1. Resolving Domain and Resolving Service Identity

A resolving service is identified by a FQDN - such as - and the domain part ( ) is designated as the resolving domain. Note that the hostname (resolver) is only considered as a way to distinguish different resolving services but it is not expected to carry any specific information that will be useful for the selection process.

The resolving domain is expected to be representative to the end user of the brand or legal entity of the institution the end user sends its data to. The end user is likely to select a given resolving domain based on the trust he puts into the associated legal entity. The resolving domain follows some DNS encoding rules and as such may not be believed to be so user friendly. On the other hand, the end user may also be familiar with that format and the use or a standardize format helps automation in the selection. Typically, it might be or ericsson which is different from Ericsson (with appropriated police character and color) which would be more meaningful for the end user. Note that a user interface may also use the resolving domain to derive more user friendly and additional specific information that will be presented to the user. This could include for example additional RDAP queries, favicons of web sites that are shown to the end users. What is presented to the end user is out of scope of this document, but the resolving domain can be used as the key.

The hostname part is only meaningful within the resolving domain. While, it may carry some information that may be interpreted to the end user, the constraint provided by the DNS format may be too restricting. As a result, it is expected that a more user friendly string might be associated with the hostname and that the hostname remain reserved for networking administrators.

5.2. List of Resolving Domains

A resolving domain list is designated by a FQDN and the resolving domains contained in that list are retrieved by sending a query of type PTR for

The zone file below is inspired from DNS-SD where b indicates a browsing domain, _dns indicates the DNS resolving service, designates the list of the resolving domains.
resolving domain_0, resolving_domain_n indicates the various resolving domains. The order of the resolving domains is irrelevant, and the zone administrator SHOULD regularly reorder them. The RRsets MUST be signed with DNSSEC.  PTR <resolving_domain_0>
[...]  PTR <resolving_domain_n>

Using the DNS provides the advantage to retrieve the resolving domain without requiring other libraries than DNS as well as benefit from the DNS caching infrastructure including the use of the TTL.

An EDNS buffer size of 1232 bytes will avoid fragmentation on nearly all current networks. This is based on an MTU of 1280, which is required by the IPv6 specification, minus 48 bytes for the IPv6 and UDP headers. Such size makes lists of a 100 names viable over UDP without fragmentation. Larger lists will require the DNS exchange to be performed over TCP. While there is no hard limits, downloading the full list every TTL may not be appropriated for very large lists where the synchronization mechanisms may be needed.

The current size of such lists [curl][] have less than 50 resolving domains. Other lists such as [] have as much as 11.000 entries, but such lists seems to contain open resolvers which is out side of the scope of a selection process.
Web browser (Google Chrome) also have lists over 10.000 entries, but in case a significant number of entries seems to be IP addresses that have a very limited network scope ( e.g. limited to the ISP ). The length of the list in scope to the DNS client is in fact significant smaller in term of IP addresses and even smaller if resolving domain are able to represent multiple IP addresses. Overall, the size of such lists are currently due to the absence of discovery protocols.

5.3. Local Network Resolving Domain

Resolving service are currently configured or advertised via IP addresses rather than a FQDN as a DNS resolution would be needed to resolve the IP address. More specifically, networks usually advertise the resolving service via a Recursive Name Server option [RFC3646] that contains an IP address. Similarly application usually configures their resolving services with IP addresses (,,,…). As a result, this section indicates a mechanism that would enable a DNS client to derive a resolving domain of a resolver from an IP address of an advertised resolver. The mechanism described here is expected to be used as an hint.

The resolving domain will be derived from the IP address by:

  1. performing a reverse resolution
  2. assume the resulting FQDN is composed of a hostname appended to the resolving domain. For example, if is the resulting FQDN from the reverse resolution, then the rdns domain will be

In most cases local resolving services uses global IP address which does not limit the reverse resolution to an associated local resolver. However the zone associated to the resolving domain might not be available globally and instead be restricted to the local network. As a result, DNS client SHOULD perform DNS resolution associated to the local resolving domain using the local resolver, and resolving service operator SHOULD publish the resolving domain zone to the global Internet.

Legacy DNS client will not be impacted. Upon receiving the IP address they will send their DNS queries to that IP address. DRDP aware DNS client will derive the resolving domain and attempt to perform a discovery within the resolving domain.

If other mechanisms as used to advertise the resolving domains such as those described in [I-D.btw-add-home], and the resolving domain are different, the DNS client should perform DRDP with both resolving domains.

6. Resolving Service Discovery

6.1. Discovery of all service instances

Given a resolving domain, a DNS client MAY request all possible resolving service instances with a query of type SVCB with the service _dns.

The example below presents the use of an AliasForm followed by a ServiceForm which allows an indirection. The Alias form is not madatory and instead only ServiceForm associated to could have been used instead.

The SvcFieldPriority indicates the preference of the resolving service instance.

The SvcParamKey alpn MUST be present when TLS is used as its presence and value indicates the DNS transport. The absence of the alpn SvcParamKey indicates Do53, alpn set to dot indicates DoT is served while h* indicates DoH is served. Note that the port value (53, 853, 443) is not used to determine the DNS transport as non standard port MAY be used. The example below uses an non standard port 5353 for illustrative purpose.

Other SvcParam are detailed in Section 6.4 and are optional. A SvcParam not understood by the DNS client MUST be ignored.

The RRsets MUST be protected with DNSSEC and when alpn is provided a TLSA RRset SHOULD be present. These RRsets have been omitted for clarity.

## Discovery of all service instances 7200 IN SVCB 0    7200 IN SVCB 12 (
                                      port="5353" user-display="Legacy Resolver" )    7200 IN SVCB 1 (  alpn="dot" 
                                      port="5353" esniconfig="..." 
                                      user-display="Preferred Example's Choice" )    7200 IN SVCB 3 ( alpn="h2"
                                       port="5353" esniconfig="..." user-display= )    7200 IN SVCB 2 ( alpn="h3"
                                       port="5353" esniconfig="..." user-display= )

6.2. Discovery of specific service instances

To reduce the size of the messages, the DNS client MAY also prefer to query information of resolving services using a specific transport (DNS, DoT, DoH) that are designated as sub sets. A DNS client MAY list the different subsets of that resolving domain with a PTR query. This document defines the following subsets _53._dns for DNS, _853._dns for DoT and _443.__dns for DoH. Other subsets MAY be defined in the future. A DNS client that does not understand a subset SHOULD ignore it and maybe proceed to the discovery as defined in Section 6.1.

All subsets MUST share the same resolving domain and be listed with a PTR RRsets. The DNS client MAY NOT performed a DNS query of type PTR, for example, if it has a previous knowledge of the existence of the subset or if indicated by its policy. In this it MAY directly proceed to the SRVCB resolution.

The same restrictions as defined in section Section 6.1 apply.

Note that while the SvcFieldPriority indicates the priority within a subservice, this field MUST have a coherence across subservices. The priority provided SHOULD be coherent with the case of a _dns SRVCB query of section Section 6.1.

The figure below illustrates an example of zone file. RRSIG and TLSA have been omitted for the purpose of clarity.

### Definition of the resolving service subsets PTR PTR PTR

### services instances per service subset 7200 IN SVCB 0    7200 IN SVCB 12 (
                                       port="5353" user-display="Legacy Resolver" )    7200 IN SVCB 0    7200 IN SVCB 1 (  alpn="dot" 
                                      port="5353" esniconfig="..." 
                                      user-display="Preferred Example's Choice" )
               7200 IN SVCB 0    7200 IN SVCB 3 ( alpn="h2"
                                       port="5353" esniconfig="..." user-display= )    7200 IN SVCB 2 ( alpn="h3"
                                      port="5353" esniconfig="..."  
                                      user-display="Testing QUIC")

Some notes:

  1. _domain uses SVCB but does not have TLS. While SVCB has been created essentially for TLS based service, this does not appear to be mandatory.
  2. Should we have some constraints regarding the SvcDomainName and QNAME ?
  3. do we need the service subsets

6.3. TTL

The DNS client SHOULD perform DRDP at regular intervals as indicated by its policy.

The selection process MAY remove resolving services with short TTL lower than a day as it indicates some source of instalbility. Given a subset of selected resolving services, the DNS client may perform DRDP 1 hour before an SVB RRset expires.

6.4. SvcParamKey

This section defines a set of SvcParamKey that MAY be use to carry the necessary informations for the selection process.

alpn :

esniconfig :

port :

indicates a strings in UTF-8 that is expected to be representative to a potential end user. Though there is no restriction in the scope of that string. The string is likely to represent the service within the resolving domain.
designates the URI template for DoH. This key MUST NOT be present on non DoH services and MUST be ignored by the DNS client on non DoH resolving Services.
indicates the list of authoritative domain name the resolving service has strong relation with. It is expected that a resolving service may prefer to perform DNS resolution over these domains to that specific resolving service as to preserve its privacy. This information MUST be verified and validated.
indicates the presence of a filtering service
indicates a subnetwork restriction. This is mostly useful for resolving services that are not globally.
indicates whether dnssec is enabled or not.

7. Resolver advertising other service sub type

A resolving service receiving a DNS request over a service sub type MAY be willing to advertise the DNS client that other sub service type are available. This is especially useful, when, for example, a resolver wants that the DNS resolver switches to other service sub types that are more secure.

In order to do so the resolver MAY provide in the additional data field the _dns SRVCB of ServiceForm.

8. Migration to service sub types

The principle of the discovery mechanism is that the resolver indicates the available service sub types and let the DNS client chose which sub type it prefers. On the other hand, the resolver MAY also indicate a preference using the priority and weight fields. However, there is no mechanisms that could permit an indirection from one service sub type to another service sub type. This document specifies that weight needs to be considered across sub types. Redirection MAY especially be needed when a DNS client is using the Do53 and the resolver would like to upgrade the DNS client session to a more secure session. This MAY require a specific ERROR code that will request the DNS client to perform service discovery.

It is expected that DRDP MUST always be available via Do53. However, this does not mean that a resolver is expected to implement the Do53 sub type service for a resolving service. If a resolving service provider chooses not to provide a resolving service using Do53, that service MUST NOT be pointed by the search and MUST NOT provide SRVCB RRsets with no SvcParamKey alpn.

9. Security Considerations

9.1. Use of protected channel is RECOMMENDED

When available, it is recommended to chose a protected version of the rdns service. More specifically, the use of end-to-end protection ensures that the DNS client is connected to the expected platform and that its traffic cannot be intercepted on path. Typically, the selection of resolver on the Internet (and not on your ISP network) and the use of a non protected channel enables an attacker to monitor your DNS traffic. The similar observation remains true if you are connected to the resolver of your ISP. It is commonly believed that trusting your ISP (that is your first hop) makes encryption unecessary. Trusting your ISP is mandatory in any case, but the associated level of trust with an protected channel is restricted to the operation of the DNS platform. With non protected channel the trust is extended to any segment between the DNS client and the resolver, which is consequently larger. The use of a protected channel is recommended as it will prevent anyone on path to monitor your traffic.


The exchanges SHOULD be protected with DNSSEC to ensure integrity of the information between the authoritative servers and the DNS client. Without DNSSEC protection, DNS messages may be tampered typically when they are transmitted over an unprotected channel either between the DNS client and the resolver or between the resolver and the authoritative servers. The messages may be tampered by an online attacker intercepting the messages or by the intermediary devices. It is important to realize that protection provided by TLS is limited to the channel between the DNS client and the resolver. There are a number of cases were the trust in the resolver is not sufficient which justify the generalization of the use of DNSSEC. The following examples are illustrative and are intended to be exhaustive.

First, the discovery exchanges may happen over an unprotected channel, in which case, the messages exchanged may be tampered by anyone on-path between the DNS client and the resolver as well as between the resolver and the authoritative servers - including the resolver. When TLS is used between the DNS client and the resolver, this does not necessarily mean the DNS client trusts the resolver. Typically, the TLS session may be established with a self-signed certificate in which case the session is basically protected by a proof-of-ownership. In other cases, the session may be established based on Certificate Authorities (CA) that have been configured into the TLS client, but that are not necessarily trusted by the DNS client. In such cases, the connected resolver may be used to discover resolvers from another domain. In this case, the resolver is probably interacting with authoritative servers using untrusted and unprotected channels. Integrity protection relies on DNSSEC.


When TLS is used to protect the DNS exchanges, certificates or fingerprint SHOULD be provided to implement trust into the communication between the DNS client and the resolver. The TLS session and the association of the private key to a specific identity can be based on two different trust model. The Web PKI that will rely on CA provisioned in the TLS library or the TA provided to the DNS client. A DNS client SHOULD be able to validate the trust of a TLS session based on the DNSSEC trust model using DANE.

When the DNS client is protecting its session to the resolver via TLS, the DNS client may initiate an TLS session that is not validated by a CA or a TLSA RRsets. The DNS client MUST proceed to the discovery process and validate the certificate match the TLSA RRset. In case of mismatch the DNS client MUST abort the session.

10. Privacy Considerations

When the discovery protocol is performed using a resolver that belongs to one domain for another domain, or over an unprotected channel, the DNS client must be conscious that its is revealing to the resolver its intention to use another resolver. More specifically, suppose an resolver is complying some legal requirements that DNS traffic must be unencrypted. Using this resolver to perform a resolver discovery reveals the intention of potentially using alternative resolvers. Alternatively, narrowing down the discovery over a specific sub type of resolver (DoT, or DoH) may reveal to that resolver the type of communication. As result, when performing a discovery over a domain that differs to the domain the resolver belongs to, it is RECOMMENDED to request the SRV RRsets associated to all different sub type of proposed services.

The absence of traffic that results from switching completely to a newly discovered resolver right after the discovery process provides an indication to the resolver the DNS client is switching to. It is hard to make that switch unnoticed to the initial resolver and the DNS resolver MUST assume this will be noticed. The information of switching may be limited by sharing the traffic between different resolvers, however, the traffic pattern associated to each resolver may also reveal the switch. In addition, when the initial resolver is provided by the ISP, the ISP is also able to monitor the IP traffic and infer the switch. As a result, the DNS client SHOULD assume the switch will be detected.

With DoT or DoH, the selection of port 443 will make the traffic indistinguishable from HTTPS traffic. This means that an observer will not be able to tell whether the traffic carries web traffic or DNS traffic. Note that it presents an interest if the server offers both a web service as well as a resolution service. Note that many resolvers have a dedicated IP address for the resolution service, in which case, the information will be inferred from the IP address. Note also that traffic analysis may infer this as well. Typically suppose an IP address hosts one or multiple web sites that are not popular as well as a resolving service. If this IP address is associated frequent short size exchanges, it is likely that these exchanges will be DNS exchanges rather than Web traffic. The size of the packet may also be used as well as many other patterns. As a result, the use port 443 to hide the DNS traffic over web traffic should be considered as providing limited privacy.

11. IANA Considerations

This document requests the IANA the creation of the following underscored node names in the Underscored and Globally Scoped DNS Node Names registry

RR Type | _NODE NAME | Reference 
SRVCB   | _dns       | RFC-TBD
SvcParamKey | NAME         | Meaning                     | Reference 
7           | user-display | User friendly string (UTF8) | RFC-TBD
            |              | to represent the resolver   | 
            | uri_template | URI template                |  
            | auth_domain  | Domains the resolving       |
            |              | service is authoritative    |
            | filetring    | Filetring services provided |
            | ip_subnet    | ip ranges accepted.         |
            | dnssec       | DNSSEC validation enabled   | 

12. Acknowledgments

We would like thank Mirja Kühlewind as well as the GSMA IG for their comments. We also thank Ted Hardie and Paul Hoffman for their feed backs regarding the dns schemes for DoT and DoH.
We thank Ben Schwartz for the comments on the list size. We thank Harald Alvestrand for its recommendation on having a model that enable multiple third party providers to provide their own list of resolving domains.

13. References

13.1. Normative References

[RFC1035] Mockapetris, P., "Domain names - implementation and specification", STD 13, RFC 1035, DOI 10.17487/RFC1035, November 1987.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, March 1997.
[RFC3646] Droms, R., "DNS Configuration options for Dynamic Host Configuration Protocol for IPv6 (DHCPv6)", RFC 3646, DOI 10.17487/RFC3646, December 2003.
[RFC7858] Hu, Z., Zhu, L., Heidemann, J., Mankin, A., Wessels, D. and P. Hoffman, "Specification for DNS over Transport Layer Security (TLS)", RFC 7858, DOI 10.17487/RFC7858, May 2016.
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, May 2017.
[RFC8484] Hoffman, P. and P. McManus, "DNS Queries over HTTPS (DoH)", RFC 8484, DOI 10.17487/RFC8484, October 2018.

13.2. Informative References

[curl] "Publicly available servers", n.d..
[] "DNS Privacy Test Servers", n.d..
[I-D.btw-add-home] Boucadair, M., Reddy.K, T., Wing, D. and N. Cook, "Encrypted DNS Discovery and Deployment Considerations for Home Networks", Internet-Draft draft-btw-add-home-06, May 2020.
[] "Public DNS Server List", n.d..
[RFC7719] Hoffman, P., Sullivan, A. and K. Fujiwara, "DNS Terminology", RFC 7719, DOI 10.17487/RFC7719, December 2015.

Author's Address

Daniel Migault Ericsson 8275 Trans Canada Route Saint Laurent, QC, 4S 0B6 Canada EMail: