]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
new draft
authorMark Andrews <marka@isc.org>
Wed, 7 Oct 2009 04:55:15 +0000 (04:55 +0000)
committerMark Andrews <marka@isc.org>
Wed, 7 Oct 2009 04:55:15 +0000 (04:55 +0000)
doc/draft/draft-ietf-dnsext-dns-tcp-requirements-00.txt [new file with mode: 0644]

diff --git a/doc/draft/draft-ietf-dnsext-dns-tcp-requirements-00.txt b/doc/draft/draft-ietf-dnsext-dns-tcp-requirements-00.txt
new file mode 100644 (file)
index 0000000..c1dc5fb
--- /dev/null
@@ -0,0 +1,448 @@
+
+
+
+DNSEXT                                                         R. Bellis
+Internet-Draft                                                Nominet UK
+Updates: 1123, 1035                                      October 6, 2009
+(if approved)
+Intended status: Standards Track
+Expires: April 9, 2010
+
+
+                         DNS Transport over TCP
+               draft-ietf-dnsext-dns-tcp-requirements-00
+
+Status of this Memo
+
+   This Internet-Draft is submitted to IETF in full conformance with the
+   provisions of BCP 78 and BCP 79.
+
+   Internet-Drafts are working documents of the Internet Engineering
+   Task Force (IETF), its areas, and its working groups.  Note that
+   other groups may also distribute working documents as Internet-
+   Drafts.
+
+   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."
+
+   The list of current Internet-Drafts can be accessed at
+   http://www.ietf.org/ietf/1id-abstracts.txt.
+
+   The list of Internet-Draft Shadow Directories can be accessed at
+   http://www.ietf.org/shadow.html.
+
+   This Internet-Draft will expire on April 9, 2010.
+
+Copyright Notice
+
+   Copyright (c) 2009 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 (http://trustee.ietf.org/license-info).
+   Please review these documents carefully, as they describe your rights
+   and restrictions with respect to this document.
+
+Abstract
+
+   This document updates the requirements for the support of the TCP
+
+
+
+Bellis                    Expires April 9, 2010                 [Page 1]
+\f
+Internet-Draft           DNS Transport over TCP             October 2009
+
+
+   protocol for the transport of DNS traffic.
+
+
+Table of Contents
+
+   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . . . 3
+
+   2.  Terminology used in this document . . . . . . . . . . . . . . . 3
+
+   3.  Discussion  . . . . . . . . . . . . . . . . . . . . . . . . . . 3
+
+   4.  Transport Protocol Selection  . . . . . . . . . . . . . . . . . 4
+
+   5.  Dormant Connection Handling . . . . . . . . . . . . . . . . . . 5
+
+   6.  Response re-ordering  . . . . . . . . . . . . . . . . . . . . . 6
+
+   7.  Security Considerations . . . . . . . . . . . . . . . . . . . . 6
+
+   8.  IANA Considerations . . . . . . . . . . . . . . . . . . . . . . 6
+
+   9.  References  . . . . . . . . . . . . . . . . . . . . . . . . . . 6
+     9.1.  Normative References  . . . . . . . . . . . . . . . . . . . 6
+     9.2.  Informative References  . . . . . . . . . . . . . . . . . . 7
+
+   Appendix A.  Change Log . . . . . . . . . . . . . . . . . . . . . . 7
+
+   Author's Address  . . . . . . . . . . . . . . . . . . . . . . . . . 7
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Bellis                    Expires April 9, 2010                 [Page 2]
+\f
+Internet-Draft           DNS Transport over TCP             October 2009
+
+
+1.  Introduction
+
+   Most DNS [RFC1035] transactions take place over the UDP [RFC0792]
+   protocol.  The TCP [RFC0793] protocol is used for zone transfers and
+   is supported by some implementations for the transfer of other
+   packets which exceed the protocol's original 512 byte packet-size
+   limit.
+
+   Section 6.1.3.2 of [RFC1123] states:
+
+      DNS resolvers and recursive servers MUST support UDP, and SHOULD
+      support TCP, for sending (non-zone-transfer) queries.
+
+   This document normatively updates the core DNS protocol
+   specifications such that (except in very limited circumstances)
+   support for the TCP protocol is henceforth REQUIRED.
+
+
+2.  Terminology used in this document
+
+   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
+   "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
+   document are to be interpreted as described in [RFC2119].
+
+
+3.  Discussion
+
+   Some implementors have taken the [RFC1123] text quoted above to mean
+   that TCP support is truly optional for typical DNS operation.
+
+   However, whilst RFC 1123 predates the current RFC 2119 terminology
+   document it uses exactly the same text:
+
+      SHOULD - This word, or the adjective "RECOMMENDED", mean that
+      there may exist valid reasons in particular circumstances to
+      ignore a particular item, but the full implications must be
+      understood and carefully weighed before choosing a different
+      course.
+
+   In the absence of EDNS0 (see below) the normal behaviour of any DNS
+   server needing to send a UDP response that exceeds that 512 limit is
+   for the server to truncate the response at the 512 byte limit and set
+   the TC flag in the response header.  When the client receives such a
+   response it takes the TC flag as notice that it should retry over TCP
+   instead.
+
+   RFC 1123 also says:
+
+
+
+
+Bellis                    Expires April 9, 2010                 [Page 3]
+\f
+Internet-Draft           DNS Transport over TCP             October 2009
+
+
+
+      ... it is also clear that some new DNS record types defined in the
+      future will contain information exceeding the 512 byte limit that
+      applies to UDP, and hence will require TCP.  Thus, resolvers and
+      name servers should implement TCP services as a backup to UDP
+      today, with the knowledge that they will require the TCP service
+      in the future.
+
+   Existing deployments of DNSSEC [RFC4033] have shown that truncation
+   at the 512 byte boundary is now commonplace.  For example an NXDOMAIN
+   (RCODE == 3) response from a DNSSEC signed zone using NSEC3 [RFC5155]
+   is almost invariably longer than 512 bytes.
+
+   Since the original core specifications for DNS were written the
+   Extension Mechanisms for DNS EDNS0 [RFC2671] have been introduced.
+   These extensions can be used to indicate that the client is prepared
+   to receive UDP responses longer than 512 bytes.  An EDNS0 compatible
+   server receiving a request from an EDNS0 compatible client may send
+   UDP packets up to that client's announced buffer size without
+   truncation.
+
+   However, transport of UDP packets which exceed the size of the path
+   MTU has been found to be unreliable in some circumstances because of
+   IP packet fragmentation.  Many firewalls routinely block fragmented
+   IP packets, and some implementations lack the software logic
+   necessary to reassemble a fragmented datagram.  Worse still, some
+   devices deliberately refuse to handle DNS packets containing EDNS0
+   options.  Other issues relating to UDP transport and packet size are
+   discussed in [RFC5625].
+
+   The MTU most commonly found in the core of the Internet is around
+   1500 bytes, and even that limit is routinely exceeded by DNSSEC
+   signed responses.
+
+   The future that was anticipated in RFC 1123 is now here, and the only
+   standardised mechanism which may have resolved the packet size issue
+   has been found inadequate.
+
+
+4.  Transport Protocol Selection
+
+   On a case by case basis, authoritative DNS server operators MAY elect
+   to disable DNS transport over TCP if all of the conditions below are
+   satisfied:
+
+   o  the server is authoritative
+
+
+
+
+
+Bellis                    Expires April 9, 2010                 [Page 4]
+\f
+Internet-Draft           DNS Transport over TCP             October 2009
+
+
+   o  the server does not support AXFR
+   o  the server does not support DNSSEC
+   o  all requests and responses are guaranteed to be <= 512 bytes
+
+   A general purpose stub resolver implementation (e.g. an operating
+   system's DNS resolution library) MUST support TCP since to do
+   otherwise would limit its interoperability with its own clients and
+   with upstream servers.
+
+   A proprietary stub resolver implementation MAY omit support for TCP
+   if it is operating in an environment where truncation will not occur,
+   or if it is prepared to accept a DNS lookup failure should truncation
+   occur.
+
+   A recursive resolver or forwarder MUST support TCP so that it does
+   not prevent long responses from a TCP-capable server from reaching
+   its TCP-capable clients.
+
+   Otherwise, all DNS implementations MUST support TCP transport.
+
+   Regarding the choice of when to use UDP or TCP, RFC 1123 says:
+
+      ... a DNS resolver or server that is sending a non-zone-transfer
+      query MUST send a UDP query first.
+
+   This requirement is no longer mandatory.  A resolver SHOULD send a
+   UDP query first, but MAY elect to send a TCP query instead if it has
+   good reason to expect the response would be truncated if it were sent
+   over UDP, or other operational considerations suggest otherwise.
+
+
+5.  Dormant Connection Handling
+
+   Section 4.2.2 of [RFC1035] says:
+
+      If the server needs to close a dormant connection to reclaim
+      resources, it should wait until the connection has been idle for a
+      period on the order of two minutes.
+
+   Other more modern protocols (e.g.  HTTP [RFC2616]) have support for
+   persistent TCP connections and operational experience has shown that
+   long timeouts can easily cause resource exhaustion and poor response
+   under heavy load.  Intentionally opening many connections and leaving
+   them dormant can trivially create a "denial of service" attack.
+
+   This document therefore RECOMMENDS that the idle period should be of
+   the order of TBD seconds.  With modern high performance networks 2 to
+   4 seconds should be sufficient to allow significant numbers (i.e.
+
+
+
+Bellis                    Expires April 9, 2010                 [Page 5]
+\f
+Internet-Draft           DNS Transport over TCP             October 2009
+
+
+   thousands) of concurrent dormant connections without impacting
+   service performance.
+
+   Servers MAY allow idle connections to remain open for longer periods,
+   but for the avoidance of doubt persistent DNS connections should
+   generally be considered to be as much for the server's benefit as for
+   the client's.  Therefore if the server needs to unilaterally close a
+   dormant TCP connection it MUST be free to do so whenever required.
+
+
+6.  Response re-ordering
+
+   [Potential text to be added regarding whether TCP responses can come
+   back in a different order to requests.  I'm not aware whether this is
+   specified anywhere]
+
+
+7.  Security Considerations
+
+   Some DNS server operators have expressed concern that wider use of
+   DNS over TCP will expose them to a higher risk of "denial of service"
+   attacks.
+
+   Many large authoritative DNS operators including all but one of the
+   root servers and the vast majority of TLDs already support TCP and
+   attacks against them are infrequent and very rarely successful.
+
+   Operators of recursive servers should ensure that they only accept
+   connections from expected clients, and do not accept them from
+   unknown sources.  In the case of UDP traffic this will protect
+   against reflector attacks [RFC5358] and in the case of TCP traffic it
+   will prevent an unknown client from exhausting the server's limits on
+   the number of concurrent connections.
+
+
+8.  IANA Considerations
+
+   This document requests no IANA actions.
+
+
+9.  References
+
+9.1.  Normative References
+
+   [RFC0792]  Postel, J., "Internet Control Message Protocol", STD 5,
+              RFC 792, September 1981.
+
+   [RFC0793]  Postel, J., "Transmission Control Protocol", STD 7,
+
+
+
+Bellis                    Expires April 9, 2010                 [Page 6]
+\f
+Internet-Draft           DNS Transport over TCP             October 2009
+
+
+              RFC 793, September 1981.
+
+   [RFC1035]  Mockapetris, P., "Domain names - implementation and
+              specification", STD 13, RFC 1035, November 1987.
+
+   [RFC1123]  Braden, R., "Requirements for Internet Hosts - Application
+              and Support", STD 3, RFC 1123, October 1989.
+
+   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
+              Requirement Levels", BCP 14, RFC 2119, March 1997.
+
+   [RFC2671]  Vixie, P., "Extension Mechanisms for DNS (EDNS0)",
+              RFC 2671, August 1999.
+
+9.2.  Informative References
+
+   [RFC2616]  Fielding, R., Gettys, J., Mogul, J., Frystyk, H.,
+              Masinter, L., Leach, P., and T. Berners-Lee, "Hypertext
+              Transfer Protocol -- HTTP/1.1", RFC 2616, June 1999.
+
+   [RFC4033]  Arends, R., Austein, R., Larson, M., Massey, D., and S.
+              Rose, "DNS Security Introduction and Requirements",
+              RFC 4033, March 2005.
+
+   [RFC5155]  Laurie, B., Sisson, G., Arends, R., and D. Blacka, "DNS
+              Security (DNSSEC) Hashed Authenticated Denial of
+              Existence", RFC 5155, March 2008.
+
+   [RFC5358]  Damas, J. and F. Neves, "Preventing Use of Recursive
+              Nameservers in Reflector Attacks", BCP 140, RFC 5358,
+              October 2008.
+
+   [RFC5625]  Bellis, R., "DNS Proxy Implementation Guidelines",
+              BCP 152, RFC 5625, August 2009.
+
+
+Appendix A.  Change Log
+
+   NB: to be removed by the RFC Editor before publication.
+
+   draft-ietf-dnsext-dns-tcp-requirements-00
+      Initial draft
+
+
+
+
+
+
+
+
+
+Bellis                    Expires April 9, 2010                 [Page 7]
+\f
+Internet-Draft           DNS Transport over TCP             October 2009
+
+
+Author's Address
+
+   Ray Bellis
+   Nominet UK
+   Edmund Halley Road
+   Oxford  OX4 4DQ
+   United Kingdom
+
+   Phone: +44 1865 332211
+   Email: ray.bellis@nominet.org.uk
+   URI:   http://www.nominet.org.uk/
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Bellis                    Expires April 9, 2010                 [Page 8]
+\f