draft-ietf-dnsop-edns-client-subnet-04.txt   draft-ietf-dnsop-edns-client-subnet-05.txt 
dnsop C. Contavalli dnsop C. Contavalli
Internet-Draft W. van der Gaast Internet-Draft W. van der Gaast
Intended status: Informational Google Intended status: Informational Google
Expires: March 28, 2016 D. Lawrence Expires: June 16, 2016 D. Lawrence
Akamai Technologies Akamai Technologies
W. Kumari W. Kumari
Google Google
September 25, 2015 December 14, 2015
Client Subnet in DNS Queries Client Subnet in DNS Queries
draft-ietf-dnsop-edns-client-subnet-04 draft-ietf-dnsop-edns-client-subnet-05
Abstract Abstract
This draft defines an EDNS0 extension to carry information about the This document defines an EDNS0 extension to carry information about
network that originated a DNS query, and the network for which the the network that originated a DNS query, and the network for which
subsequent response can be cached. the subsequent response can be cached.
Status of This Memo Status of This Memo
This Internet-Draft is submitted in full conformance with the This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79. provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current/. Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on March 28, 2016. This Internet-Draft will expire on June 16, 2016.
Copyright Notice Copyright Notice
Copyright (c) 2015 IETF Trust and the persons identified as the Copyright (c) 2015 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of (http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
skipping to change at page 2, line 15 skipping to change at page 2, line 15
described in the Simplified BSD License. described in the Simplified BSD License.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3
2. Privacy Note . . . . . . . . . . . . . . . . . . . . . . . . 4 2. Privacy Note . . . . . . . . . . . . . . . . . . . . . . . . 4
3. Requirements Notation . . . . . . . . . . . . . . . . . . . . 4 3. Requirements Notation . . . . . . . . . . . . . . . . . . . . 4
4. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 4 4. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 4
5. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . 5 5. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . 5
6. Option Format . . . . . . . . . . . . . . . . . . . . . . . . 6 6. Option Format . . . . . . . . . . . . . . . . . . . . . . . . 6
7. Protocol Description . . . . . . . . . . . . . . . . . . . . 7 7. Protocol Description . . . . . . . . . . . . . . . . . . . . 8
7.1. Originating the Option . . . . . . . . . . . . . . . . . 7 7.1. Originating the Option . . . . . . . . . . . . . . . . . 8
7.1.1. Recursive Resolvers . . . . . . . . . . . . . . . . . 8 7.1.1. Recursive Resolvers . . . . . . . . . . . . . . . . . 8
7.1.2. Stub Resolvers . . . . . . . . . . . . . . . . . . . 9 7.1.2. Stub Resolvers . . . . . . . . . . . . . . . . . . . 9
7.1.3. Forwarders . . . . . . . . . . . . . . . . . . . . . 9 7.1.3. Forwarding Resolvers . . . . . . . . . . . . . . . . 9
7.2. Generating a Response . . . . . . . . . . . . . . . . . . 9 7.2. Generating a Response . . . . . . . . . . . . . . . . . . 10
7.2.1. Authoritative Nameserver . . . . . . . . . . . . . . 9 7.2.1. Authoritative Nameserver . . . . . . . . . . . . . . 10
7.2.2. Intermediate Nameserver . . . . . . . . . . . . . . . 11 7.2.2. Intermediate Nameserver . . . . . . . . . . . . . . . 12
7.3. Handling ECS Responses and Caching . . . . . . . . . . . 12 7.3. Handling ECS Responses and Caching . . . . . . . . . . . 12
7.3.1. Caching the Response . . . . . . . . . . . . . . . . 12 7.3.1. Caching the Response . . . . . . . . . . . . . . . . 13
7.3.2. Answering from Cache . . . . . . . . . . . . . . . . 13 7.3.2. Answering from Cache . . . . . . . . . . . . . . . . 13
7.4. Delegations and Negative Answers . . . . . . . . . . . . 14 7.4. Delegations and Negative Answers . . . . . . . . . . . . 14
7.5. Transitivity . . . . . . . . . . . . . . . . . . . . . . 14 7.5. Transitivity . . . . . . . . . . . . . . . . . . . . . . 15
8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 15 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 15
9. DNSSEC Considerations . . . . . . . . . . . . . . . . . . . . 15 9. DNSSEC Considerations . . . . . . . . . . . . . . . . . . . . 16
10. NAT Considerations . . . . . . . . . . . . . . . . . . . . . 16 10. NAT Considerations . . . . . . . . . . . . . . . . . . . . . 16
11. Security Considerations . . . . . . . . . . . . . . . . . . . 16 11. Security Considerations . . . . . . . . . . . . . . . . . . . 17
11.1. Privacy . . . . . . . . . . . . . . . . . . . . . . . . 16 11.1. Privacy . . . . . . . . . . . . . . . . . . . . . . . . 17
11.2. Birthday Attacks . . . . . . . . . . . . . . . . . . . . 17 11.2. Birthday Attacks . . . . . . . . . . . . . . . . . . . . 17
11.3. Cache Pollution . . . . . . . . . . . . . . . . . . . . 18 11.3. Cache Pollution . . . . . . . . . . . . . . . . . . . . 18
12. Sending the Option . . . . . . . . . . . . . . . . . . . . . 19 12. Sending the Option . . . . . . . . . . . . . . . . . . . . . 19
12.1. Probing . . . . . . . . . . . . . . . . . . . . . . . . 19 12.1. Probing . . . . . . . . . . . . . . . . . . . . . . . . 19
12.2. Whitelist . . . . . . . . . . . . . . . . . . . . . . . 20 12.2. Whitelist . . . . . . . . . . . . . . . . . . . . . . . 20
13. Example . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 13. Example . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
14. Contributing Authors . . . . . . . . . . . . . . . . . . . . 22 14. Contributing Authors . . . . . . . . . . . . . . . . . . . . 22
15. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 22 15. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 23
16. References . . . . . . . . . . . . . . . . . . . . . . . . . 23 16. References . . . . . . . . . . . . . . . . . . . . . . . . . 23
16.1. Normative References . . . . . . . . . . . . . . . . . . 23 16.1. Normative References . . . . . . . . . . . . . . . . . . 23
16.2. Informative References . . . . . . . . . . . . . . . . . 24 16.2. Informative References . . . . . . . . . . . . . . . . . 24
16.3. URIs . . . . . . . . . . . . . . . . . . . . . . . . . . 24
Appendix A. Document History . . . . . . . . . . . . . . . . . . 25 Appendix A. Document History . . . . . . . . . . . . . . . . . . 25
A.1. -00 . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 A.1. -00 . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
A.2. -01 . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 A.2. -01 . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
A.3. -02 . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 A.3. -02 . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 28 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 29
1. Introduction 1. Introduction
Many Authoritative Nameservers today return different responses based Many Authoritative Nameservers today return different responses based
on the perceived topological location of the user. These servers use on the perceived topological location of the user. These servers use
the IP address of the incoming query to identify that location. the IP address of the incoming query to identify that location.
Since most queries come from intermediate Recursive Resolvers, the Since most queries come from intermediate Recursive Resolvers, the
source address is that of the Recursive Resolver rather than of the source address is that of the Recursive Resolver rather than of the
query originator. query originator.
Traditionally, and probably still in the majority of instances, Traditionally, and probably still in the majority of instances,
Recursive Resolvers are reasonably close in the topological sense to Recursive Resolvers are reasonably close in the topological sense to
the Stub Resolvers or Forwarders that are the source of queries. For the Stub Resolvers or Forwarding Resolvers that are the source of
these resolvers, using their own IP address is sufficient for queries. For these resolvers, using their own IP address is
authority servers that tailor responses based upon location of the sufficient for authority servers that tailor responses based upon
querier. location of the querier.
Increasingly, though, a class of Recursive Resolvers has arisen that Increasingly, though, a class of Recursive Resolvers has arisen that
handle query sources that are often not topologically close. The handle query sources that are often not topologically close. The
motivation for a user to configure such a Centralized Resolver varies motivation for a user to configure such a Centralized Resolver varies
but is usually because of some enhanced experience, such as greater but is usually because of some enhanced experience, such as greater
cache security or applying policies regarding where users may cache security or applying policies regarding where users may
connect. (Although political censorship usually comes to mind here, connect. (Although political censorship usually comes to mind here,
the same actions may be used by a parent when setting controls on the same actions may be used by a parent when setting controls on
where a minor may connect.) Similarly, many ISPs and other where a minor may connect.) Similarly, many ISPs and other
organizations use a Centralized Resolver infrastructure that can be organizations use a Centralized Resolver infrastructure that can be
distant from the clients the resolvers serve. These cases all lead distant from the clients the resolvers serve. These cases all lead
to less than desirable responses from topology-sensitive to less than desirable responses from topology-sensitive
Authoritative Nameservers. Authoritative Nameservers.
This draft defines an EDNS0 [RFC6891] option to convey network This document defines an EDNS0 [RFC6891] option to convey network
information that is relevant to the DNS message. It will carry information that is relevant to the DNS message. It will carry
sufficient network information about the originator for the sufficient network information about the originator for the
Authoritative Nameserver to tailor responses. It will also provide Authoritative Nameserver to tailor responses. It will also provide
for the Authoritative Nameserver to indicate the scope of network for the Authoritative Nameserver to indicate the scope of network
addresses for which the tailored answer is intended. This EDNS0 addresses for which the tailored answer is intended. This EDNS0
option is intended for those recursive and authority servers that option is intended for those recursive and authority servers that
would benefit from the extension and not for general purpose would benefit from the extension and not for general purpose
deployment. It is completely optional and can safely be ignored by deployment. It is completely optional and can safely be ignored by
servers that choose not to implement it or enable it. servers that choose not to implement it or enable it.
This draft also includes guidelines on how to best cache those This document also includes guidelines on how to best cache those
results and provides recommendations on when this protocol extension results and provides recommendations on when this protocol extension
should be used. should be used.
At least a dozen different client and server implementations had been At least a dozen different client and server implementations have
written based on the original specification, first known as draft- been written based on earlier versions of this specification. The
vandergaast-edns-client-subnet [1]. The protocol is in active protocol is in active production use today. While the
production use among several major Internet companies, a subset of implementations interoperate, there is varying behavior around edge
which are listed at http://www.afasterinternet.com/participants.htm . cases that were poorly specified. Known incompatibilities are
While they interoperate for the primary goal, they have varying described in this document, and the authors believe that it is better
behaviour around poorly specified edge cases. Known to describe the system as it is working today, even if not everyone
incompatibilities will be described. The authors believe that it is agrees with the details of the original specification (
better to document this system, even if not everyone agrees with the [I-D.vandergaast-edns-client-subnet]). The alternative is an
concept or the details of the original specification, rather than undocumented and proprietary system.
leave it undocumented and proprietary.
A revised proposal to improve upon the minor flaws in this protocol
will be forthcoming to the IETF.
2. Privacy Note 2. Privacy Note
If we were just beginning to design this mechanism, and not If we were just beginning to design this mechanism, and not
documenting existing protocol, it is unlikely that we would have done documenting existing protocol, it is unlikely that we would have done
things exactly this way. things exactly this way.
The IETF is actively working on enhancing DNS privacy [3], and the The IETF is actively working on enhancing DNS privacy
re-injection of metadata has been identified as a problematic design [DPRIVE_Working_Group], and the re-injection of metadata has been
pattern [4]. identified as a problematic design pattern
[I-D.hardie-privsec-metadata-insertion]
As noted above, however, this document primarily describes existing As noted above, however, this document primarily describes existing
behavior of a deployed method, to further the understanding of the behavior of a deployed method, to further the understanding of the
Internet community. Internet community.
We encourage the deployment of means to allow users to make use of We encourage the deployment of means to allow users to make use of
the opt-out provided. We also recommend that others avoid techniques the opt-out provided. We also recommend that others avoid techniques
that may introduce additional metadata in future work, as it may that may introduce additional metadata in future work, as it may
damage user trust. damage user trust.
3. Requirements Notation 3. Requirements Notation
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in [RFC2119]. document are to be interpreted as described in [RFC2119].
4. Terminology 4. Terminology
ECS EDNS Client Subnet. ECS: EDNS Client Subnet.
Client A Stub Resolver, Forwarder or Recursive Resolver. A client Client: A Stub Resolver, Forwarding Resolver, or Recursive Resolver.
to a Recursive Resolver or a Forwarder. A client to a Recursive Resolver or a Forwarding Resolver.
Server A Forwarder, Recursive Resolver or Authoritative Nameserver. Server: A Forwarding Resolver, Recursive Resolver or Authoritative
Nameserver.
Stub Resolver: A simple DNS protocol implementation on the client Stub Resolver: A simple DNS protocol implementation on the client
side as described in [RFC1034] section 5.3.1. A client to a side as described in [RFC1034] section 5.3.1. A client to a
Recursive Resolver or a Forwarder. Recursive Resolver or a Forwarding Resolver.
Authoritative Nameserver: A nameserver that has authority over one Authoritative Nameserver: A nameserver that has authority over one
or more DNS zones. These are normally not contacted by Stub or more DNS zones. These are normally not contacted by Stub
Resolver or end user clients directly but by Recursive Resolvers. Resolver or end user clients directly but by Recursive Resolvers.
Described in [RFC1035] Section 6. Described in [RFC1035] Section 6.
Recursive Resolver: A nameserver that is responsible for resolving Recursive Resolver: A nameserver that is responsible for resolving
domain names for clients by following the domain's delegation domain names for clients by following the domain's delegation
chain. Recursive Resolvers frequently use caches to be able to chain. Recursive Resolvers frequently use caches to be able to
respond to client queries quickly. Described in [RFC1035] respond to client queries quickly. Described in [RFC1035]
Section 7. Section 7.
Intermediate Nameserver: Any nameserver (possibly a Recursive Forwarding Resolver: A nameserver that does not do iterative
Resolver) in between the Stub Resolver and the Authoritative resolution itself, but instead passes that responsibility to
Nameserver. another Recursive Resolver, called a "Forwarder" in [RFC2308]
section 1.
Centralized Resolvers: Recursive Resolvers that serve a Intermediate Nameserver: Any nameserver in between the Stub Resolver
and the Authoritative Nameserver, such as a Recursive Resolver or
a Forwarding Resolver.
Centralized Resolvers: Intermediate Nameservers that serve a
topologically diverse network address space. topologically diverse network address space.
Tailored Response: A response from a nameserver that is customized Tailored Response: A response from a nameserver that is customized
for the node that sent the query, often based on performance (i.e. for the node that sent the query, often based on performance (i.e.
lowest latency, least number of hops, topological distance, ...). lowest latency, least number of hops, topological distance, ...).
Topologically Close: Refers to two hosts being close in terms of Topologically Close: Refers to two hosts being close in terms of
number of hops or time it takes for a packet to travel from one number of hops or time it takes for a packet to travel from one
host to the other. The concept of topological distance is only host to the other. The concept of topological distance is only
loosely related to the concept of geographical distance: two loosely related to the concept of geographical distance: two
skipping to change at page 6, line 50 skipping to change at page 7, line 15
+0 (MSB) +1 (LSB) +0 (MSB) +1 (LSB)
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
0: | OPTION-CODE | 0: | OPTION-CODE |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
2: | OPTION-LENGTH | 2: | OPTION-LENGTH |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
4: | FAMILY | 4: | FAMILY |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
6: | SOURCE PREFIX-LENGTH | SCOPE PREFIX-LENGTH | 6: | SOURCE PREFIX-LENGTH | SCOPE PREFIX-LENGTH |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
7: | ADDRESS... / 8: | ADDRESS... /
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
o (Defined in [RFC6891]) OPTION-CODE, 2 octets, for ECS is 8 (0x00 o (Defined in [RFC6891]) OPTION-CODE, 2 octets, for ECS is 8 (0x00
0x08). 0x08).
o (Defined in [RFC6891]) OPTION-LENGTH, 2 octets, contains the o (Defined in [RFC6891]) OPTION-LENGTH, 2 octets, contains the
length of the payload (everything after OPTION-LENGTH) in octets. length of the payload (everything after OPTION-LENGTH) in octets.
o FAMILY, 2 octets, indicates the family of the address contained in o FAMILY, 2 octets, indicates the family of the address contained in
the option, using address family codes as assigned by IANA in the option, using address family codes as assigned by IANA in
IANA-AFI [5]. Address Family Numbers [Address_Family_Numbers].
The format of the address part depends on the value of FAMILY. This The format of the address part depends on the value of FAMILY. This
document only defines the format for FAMILY 1 (IP version 4) and 2 document only defines the format for FAMILY 1 (IP version 4) and 2
(IP version 6), which are as follows: (IP version 6), which are as follows:
o SOURCE PREFIX-LENGTH, an unsigned octet representing the leftmost o SOURCE PREFIX-LENGTH, an unsigned octet representing the leftmost
significant bits of ADDRESS to be used for the lookup. In number of significant bits of ADDRESS to be used for the lookup.
responses, it mirrors the same value as in the queries. In responses, it mirrors the same value as in the queries.
o SCOPE PREFIX-LENGTH, an unsigned octet representing the leftmost o SCOPE PREFIX-LENGTH, an unsigned octet representing the leftmost
significant bits of ADDRESS that the response covers. In queries, number of significant bits of ADDRESS that the response covers.
it MUST be set to 0. In queries, it MUST be set to 0.
o ADDRESS, variable number of octets, contains either an IPv4 or o ADDRESS, variable number of octets, contains either an IPv4 or
IPv6 address, depending on FAMILY, which MUST be truncated to the IPv6 address, depending on FAMILY, which MUST be truncated to the
number of bits indicated by the SOURCE PREFIX-LENGTH field, number of bits indicated by the SOURCE PREFIX-LENGTH field,
padding with 0 bits to pad to the end of the last octet needed. padding with 0 bits to pad to the end of the last octet needed.
o A server receiving an ECS option that uses more ADDRESS octets o A server receiving an ECS option that uses more ADDRESS octets
than are needed, or that has non-zero bits set beyond SOURCE than are needed, or that has non-zero bits set beyond SOURCE
PREFIX-LENGTH, SHOULD return REFUSED to reject the packet, as a PREFIX-LENGTH, SHOULD return REFUSED to reject the packet, as a
signal to the developer of the software making the request to fix signal to the developer of the software making the request to fix
skipping to change at page 7, line 47 skipping to change at page 8, line 11
All fields are in network byte order ("big-endian", per [RFC1700], All fields are in network byte order ("big-endian", per [RFC1700],
Data Notation). Data Notation).
7. Protocol Description 7. Protocol Description
7.1. Originating the Option 7.1. Originating the Option
The ECS option should generally be added by Recursive Resolvers when The ECS option should generally be added by Recursive Resolvers when
querying Authoritative Nameservers, as described in Section 12. The querying Authoritative Nameservers, as described in Section 12. The
option can also be initialized by a Stub Resolver or Forwarder. option can also be initialized by a Stub Resolver or Forwarding
Resolver.
7.1.1. Recursive Resolvers 7.1.1. Recursive Resolvers
The setup of the ECS option in a Recursive Resolver depends on the The setup of the ECS option in a Recursive Resolver depends on the
client query that triggered the resolution process. client query that triggered the resolution process.
In the usual case, where no ECS option was present in the client In the usual case, where no ECS option was present in the client
query, the Recursive Resolver initializes the option by setting the query, the Recursive Resolver initializes the option by setting the
FAMILY of the client's address. It then uses the value of its FAMILY of the client's address. It then uses the value of its
maximum cacheable prefix length to set SOURCE PREFIX-LENGTH. For maximum cacheable prefix length to set SOURCE PREFIX-LENGTH. For
skipping to change at page 8, line 33 skipping to change at page 8, line 42
Finally, in both cases, SCOPE PREFIX-LENGTH is set to 0 and the Finally, in both cases, SCOPE PREFIX-LENGTH is set to 0 and the
ADDRESS is then added up to the SOURCE PREFIX-LENGTH number of bits, ADDRESS is then added up to the SOURCE PREFIX-LENGTH number of bits,
with trailing 0 bits added, if needed, to fill the final octet. The with trailing 0 bits added, if needed, to fill the final octet. The
total number of octets used MUST only be enough to cover SOURCE total number of octets used MUST only be enough to cover SOURCE
PREFIX-LENGTH bits, rather than the full width that would normally be PREFIX-LENGTH bits, rather than the full width that would normally be
used by addresses in FAMILY. used by addresses in FAMILY.
FAMILY and ADDRESS information MAY be used from the ECS option in the FAMILY and ADDRESS information MAY be used from the ECS option in the
incoming query. Passing the existing address data is supportive of incoming query. Passing the existing address data is supportive of
the Recursive Resolver being used as the target of a Forwarder, but the Recursive Resolver being used as the target of a Forwarding
could possibly run into policy problems with regard to usage Resolver, but could possibly run into policy problems with regard to
agreements between the Recursive Resolver and Authoritative usage agreements between the Recursive Resolver and Authoritative
Namserver. See Section 12.2 for more discussion on this point. If Namserver. See Section 12.2 for more discussion on this point. If
the Recursive Resolver will not forward the FAMILY and ADDRESS data the Recursive Resolver will not forward the FAMILY and ADDRESS data
from the incoming ECS option, it SHOULD return a REFUSED response. from the incoming ECS option, it SHOULD return a REFUSED response.
An ECS-aware resolver MUST retry the query without ECS to distinguish
the response from a lame delegation, which is the common convention
for a REFUSED status.
Subsequent queries to refresh the data MUST, if unrestricted by an Subsequent queries to refresh the data MUST, if unrestricted by an
incoming SOURCE PREFIX-LENGTH, specify the longest SOURCE PREFIX- incoming SOURCE PREFIX-LENGTH, specify the longest SOURCE PREFIX-
LENGTH that the Recursive Resolver is willing to cache, even if a LENGTH that the Recursive Resolver is willing to cache, even if a
previous response indicated that a shorter prefix length was previous response indicated that a shorter prefix length was
sufficient. sufficient.
7.1.2. Stub Resolvers 7.1.2. Stub Resolvers
A Stub Resolver MAY generate DNS queries with an ECS option set to A Stub Resolver MAY generate DNS queries with an ECS option set to
skipping to change at page 9, line 28 skipping to change at page 9, line 30
almost certainly use to generate any Tailored Response in lieu of an almost certainly use to generate any Tailored Response in lieu of an
option. This allows the answer to be handled by the same caching option. This allows the answer to be handled by the same caching
mechanism as other queries, with an explicit indicator of the mechanism as other queries, with an explicit indicator of the
applicable scope. Subsequent Stub Resolver queries for /0 can then applicable scope. Subsequent Stub Resolver queries for /0 can then
be answered from this cached response. be answered from this cached response.
A Stub Resolver MUST set SCOPE PREFIX-LENGTH to 0. It MAY include A Stub Resolver MUST set SCOPE PREFIX-LENGTH to 0. It MAY include
FAMILY and ADDRESS data, but should be prepared to handle a REFUSED FAMILY and ADDRESS data, but should be prepared to handle a REFUSED
response if the Intermediate Nameserver that it queries has a policy response if the Intermediate Nameserver that it queries has a policy
that denies forwarding of the ADDRESS. If there is no ADDRESS set, that denies forwarding of the ADDRESS. If there is no ADDRESS set,
FAMILY MUST be set to 0. i.e. SOURCE PREFIX-LENGTH is set to 0, FAMILY MUST be set to 0.
7.1.3. Forwarders 7.1.3. Forwarding Resolvers
Forwarders essentially appear to be Stub Resolvers to whatever Forwarding Resolvers essentially appear to be Stub Resolvers to
Recursive Resolver is ultimately handling the query, but look like a whatever Recursive Resolver is ultimately handling the query, but
Recursive Resolver to their client. A Forwarder using this option look like a Recursive Resolver to their client. A Forwarding
MUST prepare it as described in the Section 7.1.1 section above. In Resolver using this option MUST prepare it as described in the
particular, a Forwarder that implements this protocol MUST honor Section 7.1.1 section above. In particular, a Forwarding Resolver
SOURCE PREFIX-LENGTH restrictions indicated in the incoming query that implements this protocol MUST honor SOURCE PREFIX-LENGTH
from its client. See also Section 7.5. restrictions indicated in the incoming query from its client. See
also Section 7.5.
Since the Recursive Resolver it contacts will essentially treat it as Since the Recursive Resolver it contacts will treat it like a Stub
a Stub Resolver, the Forwarder must be prepared for a REFUSED Resolver, the Recursive Resolver's policies regarding incoming
response if the Recursive Resolver does not permit incoming ADDRESS ADDRESS information will apply in the same way. If the Forwarding
information. The Forwarded MUST retry with FAMILY and ADDRESS set to Resover receives a REFUSED response when it sends a query which
0. includes a non-zero ADDRESS, it MUST retry with FAMILY and ADDRESS
set to 0.
7.2. Generating a Response 7.2. Generating a Response
7.2.1. Authoritative Nameserver 7.2.1. Authoritative Nameserver
When a query containing an ECS option is received, an Authoritative When a query containing an ECS option is received, an Authoritative
Nameserver supporting ECS MAY use the address information specified Nameserver supporting ECS MAY use the address information specified
in the option in order to generate a tailored response. in the option in order to generate a tailored response.
Authoritative Nameservers that have not implemented or enabled Authoritative Nameservers that have not implemented or enabled
skipping to change at page 11, line 6 skipping to change at page 11, line 15
Conversely, a shorter SCOPE PREFIX-LENGTH indicates that more bits Conversely, a shorter SCOPE PREFIX-LENGTH indicates that more bits
than necessary were provided, and the answer is suitable for a than necessary were provided, and the answer is suitable for a
broader range of addresses. This could be as short as 0, to indicate broader range of addresses. This could be as short as 0, to indicate
that the answer is suitable for all addresses in FAMILY. that the answer is suitable for all addresses in FAMILY.
As the logical topology of any part of the network with regard to the As the logical topology of any part of the network with regard to the
tailored response can vary, an Authoritative Nameserver may return tailored response can vary, an Authoritative Nameserver may return
different values of SCOPE PREFIX-LENGTH for different networks. different values of SCOPE PREFIX-LENGTH for different networks.
Since some queries can result in multiple RRsets being added to the Since some queries can result in multiple RRsets being added to the
response, there is an unfortunate ambiguity from the original draft response, there is an unfortunate ambiguity from the original
as to how SCOPE PREFIX-LENGTH would apply to each individual RRset. specification as to how SCOPE PREFIX-LENGTH would apply to each
For example, multiple types in response to an ANY metaquery could all individual RRset. For example, multiple types in response to an ANY
have different applicable SCOPE PREFIX-LENGTH values, but this metaquery could all have different applicable SCOPE PREFIX-LENGTH
protocol only has the ability to signal one. The response SHOULD values, but this protocol only has the ability to signal one. The
therefore include the longest relevant PREFIX-LENGTH of any RRset in response SHOULD therefore include the longest relevant PREFIX-LENGTH
the answer, which could have the unfortunate side-effect of of any RRset in the answer, which could have the unfortunate side-
redundantly caching some data that could be cached more broadly. For effect of redundantly caching some data that could be cached more
the specific case of a CNAME chain, the Authoritative Nameserver broadly. For the specific case of a CNAME chain, the Authoritative
SHOULD only place the CNAME to have it cached unambiguously Nameserver SHOULD only place the CNAME to have it cached
appropriately. Most modern Recursive Resolvers restart the query unambiguously appropriately. Most modern Recursive Resolvers restart
with the canonical name, so the remainder of the chain is typically the query with the canonical name, so the remainder of the chain is
ignored anyway. For message-focused resolvers, rather than RRset- typically ignored anyway. For message-focused resolvers, rather than
focused ones, this will mean caching the entire CNAME chain at the RRset-focused ones, this will mean caching the entire CNAME chain at
longest PREFIX-LENGTH of any RRset in the chain. the longest PREFIX-LENGTH of any RRset in the chain.
The specific logic that an Authoritative Nameserver uses to choose a The specific logic that an Authoritative Nameserver uses to choose a
tailored response is not in the scope of this document. Implementers tailored response is not in the scope of this document. Implementers
are encouraged, however, to consider carefully their selection of are encouraged, however, to consider carefully their selection of
SCOPE PREFIX-LENGTH for the response in the event that the best SCOPE PREFIX-LENGTH for the response in the event that the best
tailored response cannot be determined, and what the implications tailored response cannot be determined, and what the implications
would be over the life of the TTL. would be over the life of the TTL.
If the Authoritative Nameserver operator configures a more specific If the Authoritative Nameserver operator configures a more specific
(longer prefix length) Tailored Response within a configured less (longer prefix length) Tailored Response within a configured less
specific (shorter prefix length) Tailored Response, then specific (shorter prefix length) Tailored Response, then
implementations can either: implementations can either:
1. Deaggregate the shorter prefix response into multiple longer 1. Deaggregate the shorter prefix response into multiple longer
prefix responses, or, prefix responses, or,
2. Alert the operator that the order of queries will determine which 2. Alert the operator that the order of queries will determine which
answers get cached, and either warn and continue or treat this as answers get cached, and either warn and continue or treat this as
an error and refuse to load the configuration. an error and refuse to load the configuration.
Implementations SHOULD document their chosen behavior. This choice should be documented for the operator, for example in the
user manual.
7.2.2. Intermediate Nameserver 7.2.2. Intermediate Nameserver
When an Intermediate Nameserver uses ECS, whether it passes an ECS When an Intermediate Nameserver uses ECS, whether it passes an ECS
option in its own response to its client is predicated on whether the option in its own response to its client is predicated on whether the
client originally included the option. Because a client that did not client originally included the option. Because a client that did not
use an ECS option might not be able to understand it, the server MUST use an ECS option might not be able to understand it, the server MUST
NOT provide one in its response. If the client query did include the NOT provide one in its response. If the client query did include the
option, the server MUST include one in its response, especially as it option, the server MUST include one in its response, especially as it
could be talking to a Forwarder which would need the information for could be talking to a Forwaring Resolver which would need the
its own caching. information for its own caching.
If an Intermediate Nameserver receives a response which has a longer If an Intermediate Nameserver receives a response which has a longer
SCOPE PREFIX-LENGTH than the SOURCE PREFIX-LENGTH that it provided in SCOPE PREFIX-LENGTH than the SOURCE PREFIX-LENGTH that it provided in
its query, it SHOULD still provide the result as the answer to the its query, it SHOULD still provide the result as the answer to the
triggering client request even if the client is in a different triggering client request even if the client is in a different
address range. The Intermediate Nameserver MAY instead opt to retry address range. The Intermediate Nameserver MAY instead opt to retry
with a longer SOURCE PREFIX-LENGTH to get a better reply before with a longer SOURCE PREFIX-LENGTH to get a better reply before
responding to its client, as long as it does not exceed a SOURCE responding to its client, as long as it does not exceed a SOURCE
PREFIX-LENGTH specified in the query that triggered resolution, but PREFIX-LENGTH specified in the query that triggered resolution, but
this obviously has implications for the latency of the overall this obviously has implications for the latency of the overall
skipping to change at page 12, line 42 skipping to change at page 13, line 5
SOURCE PREFIX-LENGTH for privacy masking, the FAMILY and ADDRESS SOURCE PREFIX-LENGTH for privacy masking, the FAMILY and ADDRESS
fields should contain the appropriate non-zero information for fields should contain the appropriate non-zero information for
caching. caching.
If no ECS option is contained in the response, the Intermediate If no ECS option is contained in the response, the Intermediate
Nameserver SHOULD treat this as being equivalent to having received a Nameserver SHOULD treat this as being equivalent to having received a
SCOPE PREFIX-LENGTH of 0, which is an answer suitable for all client SCOPE PREFIX-LENGTH of 0, which is an answer suitable for all client
addresses. See further discussion on the security implications of addresses. See further discussion on the security implications of
this in Section 11. this in Section 11.
If a REFUSED response is received from an Authoritative Nameserver,
an ECS-aware resolver MUST retry the query without ECS to distinguish
the authoritative response from a lame delegation, which is the
common convention for a REFUSED status. Similarly, a client of a
Recursive Resolver should retry for REFUSED because it is not
sufficiently clear whether the REFUSED was because of the ECS option
or some other reason.
7.3.1. Caching the Response 7.3.1. Caching the Response
In the cache, all resource records in the answer section MUST be tied In the cache, all resource records in the answer section MUST be tied
to the network specified by the FAMILY, ADDRESS and SCOPE PREFIX- to the network specified by the FAMILY, ADDRESS and SCOPE PREFIX-
LENGTH fields, as limited by the Intermediate Nameserver's own LENGTH fields, as limited by the Intermediate Nameserver's own
configuration for maximum cacheable prefix length. Note that the configuration for maximum cacheable prefix length. Note that the
additional and authority sections from a DNS response message are additional and authority sections from a DNS response message are
specifically excluded here. Any records from these sections MUST NOT specifically excluded here. Any records from these sections MUST NOT
be tied to a network. See more at Section 7.4. be tied to a network. See more at Section 7.4.
skipping to change at page 14, line 11 skipping to change at page 14, line 24
to avoid a single query coming from a client on a different network to avoid a single query coming from a client on a different network
from polluting the cache with a Tailored Response for all the users from polluting the cache with a Tailored Response for all the users
of that resolver. of that resolver.
7.4. Delegations and Negative Answers 7.4. Delegations and Negative Answers
The prohibition against tying ECS data to records from the Authority The prohibition against tying ECS data to records from the Authority
and Additional section left an unfortunate ambiguity in the original and Additional section left an unfortunate ambiguity in the original
specification, primarily with regard to negative answers. The specification, primarily with regard to negative answers. The
expectation of the original authors was that ECS would only really be expectation of the original authors was that ECS would only really be
used for address records, the use case that was driving the used for address requests and the positive result in the response's
definition of the protocol. answer section, the use case that was driving the definition of the
protocol.
The delegations case is a bit easier to tease out. In operational The delegations case is a bit easier to tease out. In operational
practice, if an authoritative server is using address information to practice, if an authoritative server is using address information to
provide customized delegations, it is the resolver that will be using provide customized delegations, it is the resolver that will be using
the answer for its next iterative query. Addresses in the Additional the answer for its next iterative query. Addresses in the Additional
section SHOULD therefore ignore ECS data, and the authority SHOULD section SHOULD therefore ignore ECS data, and the authority SHOULD
return a zero SCOPE PREFIX-LENGTH on delegations. A recursive return a zero SCOPE PREFIX-LENGTH on delegations. A recursive
resolver SHOULD treat a non-zero SCOPE PREFIX LENGTH in a delegation resolver SHOULD treat a non-zero SCOPE PREFIX LENGTH in a delegation
as though it were zero. as though it were zero.
skipping to change at page 14, line 47 skipping to change at page 15, line 13
developers should consider when writing new ECS code. developers should consider when writing new ECS code.
7.5. Transitivity 7.5. Transitivity
Generally, ECS options will only be present in DNS messages between a Generally, ECS options will only be present in DNS messages between a
Recursive Resolver and an Authoritative Nameserver, i.e., one hop. Recursive Resolver and an Authoritative Nameserver, i.e., one hop.
In certain configurations however, for example multi-tier nameserver In certain configurations however, for example multi-tier nameserver
setups, it may be necessary to implement transitive behaviour on setups, it may be necessary to implement transitive behaviour on
Intermediate Nameservers. Intermediate Nameservers.
It is important that any Intermediate Nameserver that forwards ECS Any Intermediate Nameserver that forwards ECS options received from
options received from their clients MUST fully implement the caching their clients MUST fully implement the caching behaviour described in
behaviour described in Section 7.3. Section 7.3.
Intermediate Nameservers supporting ECS MUST forward options with Intermediate Nameservers supporting ECS MUST forward options with
SOURCE PREFIX-LENGTH set to 0 (that is, completely anonymized). Such SOURCE PREFIX-LENGTH set to 0 (that is, completely anonymized). Such
options MUST NOT be replaced with more accurate address information. options MUST NOT be replaced with more accurate address information.
An Intermediate Nameserver MAY also forward ECS options with actual An Intermediate Nameserver MAY also forward ECS options with actual
address information. This information MAY match the source IP address information. This information MAY match the source IP
address of the incoming query, and MAY have more or fewer address address of the incoming query, and MAY have more or fewer address
bits than the Nameserver would normally include in a locally bits than the Nameserver would normally include in a locally
originated ECS option. originated ECS option.
skipping to change at page 16, line 20 skipping to change at page 16, line 32
be added, and existing ECS options, if present, SHOULD NOT be be added, and existing ECS options, if present, SHOULD NOT be
modified by NAT devices. modified by NAT devices.
In large-scale global networks behind a NAT device (but for example In large-scale global networks behind a NAT device (but for example
with Centralized Resolver infrastructure), an internal Intermediate with Centralized Resolver infrastructure), an internal Intermediate
Nameserver might have detailed network layout information, and may Nameserver might have detailed network layout information, and may
know which external subnets are used for egress traffic by each know which external subnets are used for egress traffic by each
internal network. In such cases, the Intermediate Nameserver MAY use internal network. In such cases, the Intermediate Nameserver MAY use
that information when originating ECS options. that information when originating ECS options.
In other cases, Recursive Resolvers sited behind a NAT device SHOULD In other cases, if a Recursive Resolvers knows it is sited behind a
NOT originate ECS options with their external IP address, and instead NAT device, it SHOULD NOT originate ECS options with their external
rely on downstream Intermediate Nameservers to do so. They MAY, IP address, and instead rely on downstream Intermediate Nameservers
however, choose to include the option with their internal address for to do so. They MAY, however, choose to include the option with their
the purposes of signaling a shorter, more anonymous SOURCE PREFIX- internal address for the purposes of signaling a shorter, more
LENGTH. anonymous SOURCE PREFIX-LENGTH.
If an Authoritative Nameserver on the publicly routed Internet If an Authoritative Nameserver on the publicly routed Internet
receives a query that specifies an ADDRESS in [RFC1918] or [RFC4193] receives a query that specifies an ADDRESS in [RFC1918] or [RFC4193]
private address space, it SHOULD ignore ADDRESS and look up its private address space, it SHOULD ignore ADDRESS and look up its
answer based on the address of the Recursive Resolver. In the answer based on the address of the Recursive Resolver. In the
response it SHOULD set SCOPE PREFIX-LENGTH to cover all of the response it SHOULD set SCOPE PREFIX-LENGTH to cover all of the
relevant private space. For example, a query for ADDRESS 10.1.2.0 relevant private space. For example, a query for ADDRESS 10.1.2.0
with a SOURCE PREFIX-LENGTH of 24 would get a returned SCOPE PREFIX- with a SOURCE PREFIX-LENGTH of 24 would get a returned SCOPE PREFIX-
LENGTH of 8. The Intermediate Nameserver MAY elect to cache the LENGTH of 8. The Intermediate Nameserver MAY elect to cache the
answer under one entry for special-purpose addresses [RFC6890]; see answer under one entry for special-purpose addresses [RFC6890]; see
skipping to change at page 19, line 39 skipping to change at page 20, line 4
12.1. Probing 12.1. Probing
A Recursive Resolver can send the ECS option with every outgoing A Recursive Resolver can send the ECS option with every outgoing
query. However, it is RECOMMENDED that Resolvers remember which query. However, it is RECOMMENDED that Resolvers remember which
Authoritative Nameservers did not return the option with their Authoritative Nameservers did not return the option with their
response, and omit client address information from subsequent queries response, and omit client address information from subsequent queries
to those Nameservers. to those Nameservers.
Additionally, Recursive Resolvers SHOULD be configured to never send Additionally, Recursive Resolvers SHOULD be configured to never send
the option when querying root, top-level, and effective top-level the option when querying root, top-level, and effective top-level
domain servers. These domains are delegation-centric and are very (ie, ("public suffic") [Public_Suffix_List] domain servers. These
unlikely to generate different responses based on the address of the domains are delegation-centric and are very unlikely to generate
client. different responses based on the address of the client.
When probing, it is important that several things are probed: support When probing, it is important that several things are probed: support
for ECS, support for EDNS0, support for EDNS0 options, or possibly an for ECS, support for EDNS0, support for EDNS0 options, or possibly an
unreachable Nameserver. Various implementations are known to drop unreachable Nameserver. Various implementations are known to drop
DNS packets with OPT RRs (with or without options), thus several DNS packets with OPT RRs (with or without options), thus several
probes are required to discover what is supported. probes are required to discover what is supported.
Probing, if implemented, MUST be repeated periodically, e.g., daily. Probing, if implemented, MUST be repeated periodically, e.g., daily.
If an Authoritative Nameserver indicates ECS support for one zone, it If an Authoritative Nameserver indicates ECS support for one zone, it
is to be expected that the Nameserver supports ECS for all of its is to be expected that the Nameserver supports ECS for all of its
skipping to change at page 22, line 26 skipping to change at page 22, line 40
12. RNS receives another query to resolve www.example.com. This 12. RNS receives another query to resolve www.example.com. This
time, a response is cached. The response, however, is tied to a time, a response is cached. The response, however, is tied to a
particular network. If the address of the client matches any particular network. If the address of the client matches any
network in the cache, then the response is returned from the network in the cache, then the response is returned from the
cache. Otherwise, another query is performed. If multiple cache. Otherwise, another query is performed. If multiple
results match, the one with the longest SCOPE PREFIX-LENGTH is results match, the one with the longest SCOPE PREFIX-LENGTH is
chosen, as per common best-network match algorithms. chosen, as per common best-network match algorithms.
14. Contributing Authors 14. Contributing Authors
The below individuals contributed significantly to the draft. The The below individuals contributed significantly to the document. The
RFC Editor prefers a maximum of 5 names on the front page, and so we RFC Editor prefers a maximum of 5 names on the front page, and so we
have listed additional authors in this section have listed additional authors in this section
Edward Lewis Edward Lewis
ICANN ICANN
12025 Waterfront Drive, Suite 300 12025 Waterfront Drive, Suite 300
Los Angeles CA 90094-2536 Los Angeles CA 90094-2536
USA USA
Email: edward.lewis@icann.org Email: edward.lewis@icann.org
Sean Leach Sean Leach
Fastly Fastly
POBox 78266 POBox 78266
San Francisco CA 94107 San Francisco CA 94107
Jason Moreau Jason Moreau
Akamai Technologies Akamai Technologies
8 Cambridge Ctr 8 Cambridge Ctr
Cambridge MA 02142-1413 Cambridge MA 02142-1413
USA USA
skipping to change at page 23, line 4 skipping to change at page 23, line 20
Akamai Technologies Akamai Technologies
8 Cambridge Ctr 8 Cambridge Ctr
Cambridge MA 02142-1413 Cambridge MA 02142-1413
USA USA
15. Acknowledgements 15. Acknowledgements
The authors wish to thank Darryl Rodden for his work as a co-author The authors wish to thank Darryl Rodden for his work as a co-author
on previous versions, and the following people for reviewing early on previous versions, and the following people for reviewing early
drafts of this document and for providing useful feedback: Paul S. drafts of this document and for providing useful feedback: Paul S.
R. Chisholm, B. Narendran, Leonidas Kontothanassis, David Presotto, R. Chisholm, B. Narendran, Leonidas Kontothanassis, David Presotto,
Philip Rowlands, Chris Morrow, Kara Moscoe, Alex Nizhner, Warren Philip Rowlands, Chris Morrow, Kara Moscoe, Alex Nizhner, Warren
Kumari, and Richard Rabbat from Google; Terry Farmer, Mark Teodoro, Kumari, and Richard Rabbat from Google; Terry Farmer, Mark Teodoro,
Edward Lewis, and Eric Burger from Neustar; David Ulevitch and Edward Lewis, and Eric Burger from Neustar; David Ulevitch and
Matthew Dempsky from OpenDNS; Patrick W. Gilmore and Steve Hill from Matthew Dempsky from OpenDNS; Patrick W. Gilmore and Steve Hill from
Akamai; Colm MacCarthaigh and Richard Sheehan from Amazon; Tatuya Akamai; Colm MacCarthaigh and Richard Sheehan from Amazon; Tatuya
Jinmei from Internet Software Consortium; Andrew Sullivan from Dyn; Jinmei from Infoblox; Andrew Sullivan from Dyn; John Dickinson from
John Dickinson from Sinodun; Mark Delany from Apple; Yuri Schaeffer Sinodun; Mark Delany from Apple; Yuri Schaeffer from NLnet Labs;
from NLnet Labs; Duane Wessels from from Verisign; Antonio Querubin; Duane Wessels from from Verisign; Antonio Querubin; Daniel Kahn
and all of the other people that replied to our emails on various Gillmor from the ACLU, and all of the other people that replied to
mailing lists. our emails on various mailing lists.
16. References 16. References
16.1. Normative References 16.1. Normative References
[RFC1034] Mockapetris, P., "Domain names - concepts and facilities", [RFC1034] Mockapetris, P., "Domain names - concepts and facilities",
STD 13, RFC 1034, DOI 10.17487/RFC1034, November 1987, STD 13, RFC 1034, DOI 10.17487/RFC1034, November 1987,
<http://www.rfc-editor.org/info/rfc1034>. <http://www.rfc-editor.org/info/rfc1034>.
[RFC1035] Mockapetris, P., "Domain names - implementation and [RFC1035] Mockapetris, P., "Domain names - implementation and
skipping to change at page 24, line 31 skipping to change at page 24, line 46
6890, DOI 10.17487/RFC6890, April 2013, 6890, DOI 10.17487/RFC6890, April 2013,
<http://www.rfc-editor.org/info/rfc6890>. <http://www.rfc-editor.org/info/rfc6890>.
[RFC6891] Damas, J., Graff, M., and P. Vixie, "Extension Mechanisms [RFC6891] Damas, J., Graff, M., and P. Vixie, "Extension Mechanisms
for DNS (EDNS(0))", STD 75, RFC 6891, DOI 10.17487/ for DNS (EDNS(0))", STD 75, RFC 6891, DOI 10.17487/
RFC6891, April 2013, RFC6891, April 2013,
<http://www.rfc-editor.org/info/rfc6891>. <http://www.rfc-editor.org/info/rfc6891>.
16.2. Informative References 16.2. Informative References
[Address_Family_Numbers]
"Address Family Numbers",
<http://www.iana.org/assignments/address-family-numbers/
address-family-numbers.xhtml>.
[DPRIVE_Working_Group]
"DPRIVE Working Group",
<https://datatracker.ietf.org/wg/dprive/charter/>.
[I-D.hardie-privsec-metadata-insertion]
Hardie, T., "Design considerations for Metadata
Insertion", draft-hardie-privsec-metadata-insertion-00
(work in progress), October 2015.
[I-D.vandergaast-edns-client-subnet]
Contavalli, C., Gaast, W., Leach, S., and E. Lewis,
"Client Subnet in DNS Requests", draft-vandergaast-edns-
client-subnet-02 (work in progress), July 2013.
[Public_Suffix_List]
"Public Suffix List", <https://publicsuffix.org/>.
[RFC2308] Andrews, M., "Negative Caching of DNS Queries (DNS
NCACHE)", RFC 2308, DOI 10.17487/RFC2308, March 1998,
<http://www.rfc-editor.org/info/rfc2308>.
[RFC2663] Srisuresh, P. and M. Holdrege, "IP Network Address [RFC2663] Srisuresh, P. and M. Holdrege, "IP Network Address
Translator (NAT) Terminology and Considerations", RFC Translator (NAT) Terminology and Considerations", RFC
2663, DOI 10.17487/RFC2663, August 1999, 2663, DOI 10.17487/RFC2663, August 1999,
<http://www.rfc-editor.org/info/rfc2663>. <http://www.rfc-editor.org/info/rfc2663>.
16.3. URIs Appendix A. Document History
[1] https://tools.ietf.org/html/draft-vandergaast-edns-client- [RFC Editor: Please delete this section before publication.]
subnet-00
[3] https://datatracker.ietf.org/doc/charter-ietf-dprive/ -05 to -06(?):
[4] https://github.com/IAB-PrivSec-program/draft-iab-privsec- o Minor wording clarifications. (David Kahn Gillmor)
metadata-insertion/blob/master/draft-iab-privsec-metadata-
insertion.md
[5] http://www.iana.org/assignments/address-family-numbers/ -04 to -05:
Appendix A. Document History o Moved comment about retrying for REFUSED to section on "Handling
ECS Responses". (Jinmei)
[RFC Editor: Please delete this section before publication.] o Clarify that a new proposal for an improved ECS protool is
expected.
o "Forwarders" had been used as though they were the source of a
forwarded query rather than the targeted of one; clarified and
defined as "Forwarding Resolver". (Jinmei)
o "representing the leftmost significant bits" => "representing the
leftmost number of significant bits". (Jinmei)
o Minor other clarifying text. (Jinmei)
o Jinmei's affiliation.
-03 to -04: -03 to -04:
o Privacy note per Ted Hardie's suggestion. o Privacy note per Ted Hardie's suggestion.
o MUST use minimum octet length to cover PREFIX bits. o MUST use minimum octet length to cover PREFIX bits.
o Expose note about documenting deployed, if flawed, protocol. o Expose note about documenting deployed, if flawed, protocol.
-02 to -03: -02 to -03:
skipping to change at page 27, line 31 skipping to change at page 28, line 31
length, even if a prior answer indicated that a shorter prefix length, even if a prior answer indicated that a shorter prefix
length was suitable. length was suitable.
o Marked up a few more references. o Marked up a few more references.
o Added a few definitions in the Terminology section, and a few more o Added a few definitions in the Terminology section, and a few more
aesthetic changes in the rest of the document. aesthetic changes in the rest of the document.
A.2. -01 A.2. -01
o Document version number reset from -02 to -00 due to the rename to o Document version number reset from -02 to -00 due to the rename of
ECS. base document.
o Clarified example (dealing with TLDs, and various minor errors). o Clarified example (dealing with TLDs, and various minor errors).
o Referencing RFC5035 instead of RFC1918. o Referencing RFC5035 instead of RFC1918.
o Added a section on probing (and how it should be done) vs. o Added a section on probing (and how it should be done) vs.
whitelisting. whitelisting.
o Moved description on how to forward ECS option in dedicated o Moved description on how to forward ECS option in dedicated
section. section.
 End of changes. 58 change blocks. 
133 lines changed or deleted 185 lines changed or added

This html diff was produced by rfcdiff 1.42. The latest version is available from http://tools.ietf.org/tools/rfcdiff/