Skip to main content

Recursive Resolver
draft-bretelle-dnsop-recursive-iprange-location-00

The information below is for an old version of the document.
Document Type
This is an older version of an Internet-Draft whose latest revision state is "Expired".
Author Manu Bretelle
Last updated 2020-10-29
RFC stream (None)
Formats
Stream Stream state (No stream defined)
Consensus boilerplate Unknown
RFC Editor Note (None)
IESG IESG state I-D Exists
Telechat date (None)
Responsible AD (None)
Send notices to (None)
draft-bretelle-dnsop-recursive-iprange-location-00
dnsop                                                        E. Bretelle
Internet-Draft                                                  Facebook
Intended status: Standards Track                         29 October 2020
Expires: 2 May 2021

                           Recursive Resolver
           draft-bretelle-dnsop-recursive-iprange-location-00

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
   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.

Bretelle                   Expires 2 May 2021                   [Page 2]
Internet-Draft             dns-recursive-iploc              October 2020

   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
   (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.

Bretelle                   Expires 2 May 2021                   [Page 3]
Internet-Draft             dns-recursive-iploc              October 2020

   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:

_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>.

Author's Address

   Emmanuel Bretelle
   Facebook

   Email: chantra@fb.com

Bretelle                   Expires 2 May 2021                   [Page 6]