Internet DRAFT - draft-bretelle-dnsop-recursive-iprange-location
draft-bretelle-dnsop-recursive-iprange-location
dnsop E. Bretelle
Internet-Draft Facebook
Intended status: Standards Track 29 October 2020
Expires: 2 May 2021
Recursive Resolvers IP Ranges location distribution and discovery
draft-bretelle-dnsop-recursive-iprange-location-01
Abstract
This document specifies a way for recursive resolvers operators to
signal the IP ranges and locations used by their server pools.
Discussion Venues
This note is to be removed before publishing as an RFC.
Source for this draft and an issue tracker can be found at
https://github.com/chantra/draft-dns-recursive-iprange-location.
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 https://datatracker.ietf.org/drafts/current/.
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 2 May 2021.
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 (https://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. Code Components
Bretelle Expires 2 May 2021 [Page 1]
Internet-Draft dns-recursive-iploc October 2020
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. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
2. Conventions and Definitions . . . . . . . . . . . . . . . . . 3
3. Publishing Resolver pool IP ranges . . . . . . . . . . . . . 3
3.1. TXT Resource Record . . . . . . . . . . . . . . . . . . . 3
3.2. HTTPS Resource Record . . . . . . . . . . . . . . . . . . 4
4. Security Considerations . . . . . . . . . . . . . . . . . . . 4
5. IANA Consideration . . . . . . . . . . . . . . . . . . . . . 4
5.1. Underscored Node Name . . . . . . . . . . . . . . . . . . 4
5.2. URI DNS Service Parameter . . . . . . . . . . . . . . . . 5
6. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 5
7. References . . . . . . . . . . . . . . . . . . . . . . . . . 5
7.1. Normative References . . . . . . . . . . . . . . . . . . 5
7.2. Informative References . . . . . . . . . . . . . . . . . 6
Appendix A. Document history . . . . . . . . . . . . . . . . . . 6
A.1. Changes between -00 and -01 . . . . . . . . . . . . . . . 6
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 6
1. Introduction
Big distributed recursive resolver pools tend to be distributed
across the world, operating under multiple countries and possibly
using IP ranges for which the country is not necessarily perfectly
matching the location of the service. This has lead to sub-optimal
answers being returned to those server pools. An solution to this
problem has been to use EDNS Client Subnet (ECS) [RFC7871], but this
require support from both the recursive resolvers and the name
servers authorities, comes with its own Security Considerations, and
increased resources usage.
DNS server operators are commonly receiving spoofed DNS traffic over
UDP, common techniques have been to reply with TC bit set to force
legitimate clients to use TCP, if the load is still too high, they
may start to drop traffic from selected subnets. While this may
protect their resources, it has the possibility of denying the
service to legitimate resolvers.
So far, operators have resorted to ad-hoc mechanism, ranging from
exchanging list by email, providing IP ranges and location via
webpages, or specific DNS queries, like Google Public DNS
(https://developers.google.com/speed/public-dns/faq#locations_of_ip_a
ddress_ranges_google_public_dns_uses_to_send_queries), or Cloudflare
(https://www.cloudflare.com/ips/), or OpenDNS
Bretelle Expires 2 May 2021 [Page 2]
Internet-Draft dns-recursive-iploc October 2020
(https://www.opendns.com/data-center-locations/). When web pages are
available, they are rarely found at consistent locations, neither are
they formatted in a uniform way, essentially making name server
operators' task rather complicated and brittle.
This document helps providing uniform solutions to let recursive
server operators distribute the list of IP ranges under which their
servers are operating as well as possibly location up to the postal
code granularity by leveraging [RFC8805] format.
2. Conventions and Definitions
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.
3. Publishing Resolver pool IP ranges
An entity willing to share the IP ranges used by their recursive
servers would publish a record under the special name
"_rdns.example.com". The IP ranges can be distributed either using a
"TXT" record or "HTTPS" resource record [I-D.ietf-dnsop-svcb-https]
An entity can share IP information in 2 ways: via an IP Geolocation
Feed, or list of IP ranges in a TXT record.
3.1. TXT Resource Record
An entity that wishes to share the IP ranges they are using with
their recursive resolvers can distribute it via a TXT record.
The record is expressed as a single line of text found in the RDATA.
Multiple TXT resource records for the same owner name may be
permitted.
The record is made of a list of space separated IP ranges with
optional comma separated Geolocation. The Geolocation field MUST be
a 2-letter ISO country code conforming to ISO 3166-1 alpha 2
[ISO.3166.1alpha2]. Parsers SHOULD treat this field case-
insensitively.
This example illustrate a record without geolocation:
_rdns.example.com. 3600 IN TXT "192.0.2.0/24 198.51.100.0/24 2001:db8::/56 "
"2001:db8:00:ab00::/56"
This example illustrate a record with geolocation information:
Bretelle Expires 2 May 2021 [Page 3]
Internet-Draft dns-recursive-iploc October 2020
_rdns.example.com. 3600 IN TXT "192.0.2.0/24,xa 198.51.100.0/24,xb "
"2001:db8::/56,xc 2001:db8:00:ab00::/56,xa"
As the number of IP ranges increases, the size of the DNS response
can become a source for amplification attacks. This is being
discussed in Section 4.
3.2. HTTPS Resource Record
Another approach is share an IP geolocation feed [RFC8805] via an
HTTPS Resource Record [I-D.ietf-dnsop-svcb-https]. This record has
the benefit of providing a format which can provide more granularity
if the entity sharing it wishes to, and can scale even when the
number of IP ranges increases.
_rdns.example.com. 3600 IN HTTPS . (
uri=https://foo.example.com/geofeed )
4. Security Considerations
Unless the record is DNSSEC-signed [RFC4033], the answers returned
cannot be trusted. In HTTPS Resource Record is requested, the client
can possibly trust the content if the URI is within the same zone
cut, and HTTPS can authenticate the domain.
When using the TXT Resource Record, the answer returned can quickly
become big and the name server operator should aggressively limit the
size of the answer it will return to the client, and Truncate it if
needed.
5. IANA Consideration
5.1. Underscored Node Name
This document updates the IANA registry "Underscored and Globally
Scoped DNS Node Names" at https://www.iana.org/assignments/dns-
parameters/dns-parameters.xhtml#underscored-globally-scoped-dns-node-
names
The following entries have been added to the registry:
Bretelle Expires 2 May 2021 [Page 4]
Internet-Draft dns-recursive-iploc October 2020
+--------------+----------------+
| RR Type | HTTPS |
| Node Name | _rdns |
| Reference | This document |
+--------------+----------------+
+--------------+----------------+
| RR Type | TXT |
| Node Name | _rdns |
| Reference | This document |
+--------------+----------------+
5.2. URI DNS Service Parameter
This document adds a parameter to the "Service Binding (SVCB)
Parameter" registry. The allocation request is TBD, taken from the
to the First Come First Served range.
If present, this parameters indicates the URI template of an IP
Geolocation feed. This is a string encoded as UTF-8 characters.
Name: uri
+--------------+-------------------------------+
| SvcParamKey | TBD |
| Meaning | URI to an IP Geolocation feed |
| Reference | This document |
+--------------+-------------------------------+
6. Acknowledgments
The authors would like to thank the following individuals for their
useful input: John Todd.
7. References
7.1. Normative References
[I-D.ietf-dnsop-svcb-https]
Schwartz, B., Bishop, M., and E. Nygren, "Service binding
and parameter specification via the DNS (DNS SVCB and
HTTPS RRs)", Work in Progress, Internet-Draft, draft-ietf-
dnsop-svcb-https-01, 13 July 2020, <http://www.ietf.org/
internet-drafts/draft-ietf-dnsop-svcb-https-01.txt>.
Bretelle Expires 2 May 2021 [Page 5]
Internet-Draft dns-recursive-iploc October 2020
[ISO.3166.1alpha2]
ISO, "ISO 3166-1 decoding table",
<http://www.iso.org/iso/home/standards/country_codes/iso-
3166-1_decoding_table.htm>.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119,
DOI 10.17487/RFC2119, March 1997,
<https://www.rfc-editor.org/info/rfc2119>.
[RFC8805] Kline, E., Duleba, K., Szamonek, Z., Moser, S., and W.
Kumari, "A Format for Self-Published IP Geolocation
Feeds", RFC 8805, DOI 10.17487/RFC8805, August 2020,
<https://www.rfc-editor.org/info/rfc8805>.
7.2. Informative References
[RFC4033] Arends, R., Austein, R., Larson, M., Massey, D., and S.
Rose, "DNS Security Introduction and Requirements",
RFC 4033, DOI 10.17487/RFC4033, March 2005,
<https://www.rfc-editor.org/info/rfc4033>.
[RFC7871] Contavalli, C., van der Gaast, W., Lawrence, D., and W.
Kumari, "Client Subnet in DNS Queries", RFC 7871,
DOI 10.17487/RFC7871, May 2016,
<https://www.rfc-editor.org/info/rfc7871>.
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
May 2017, <https://www.rfc-editor.org/info/rfc8174>.
Appendix A. Document history
A.1. Changes between -00 and -01
* Editorial change: making the title more explicit than "Recursive
Resolver"
* Editorial change: Fix examples format to use break lines and fix
ascii art table
Author's Address
Emmanuel Bretelle
Facebook
Email: chantra@fb.com
Bretelle Expires 2 May 2021 [Page 6]