Internet DRAFT - draft-gudmundsson-dnsext-setting-ends0-do-bit

draft-gudmundsson-dnsext-setting-ends0-do-bit






Intended Status: Standard Track                           O. Gudmundsson
Network Working Group                                     Shinkuro, Inc.
Internet-Draft                                                 June 2009
Updates: 4035 (if approved)
Intended status: Standards Track
Expires: December 3, 2009


      DNSSEC OK buffer minimum size requirement and error handling
            draft-gudmundsson-dnsext-setting-ends0-do-bit-01

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 December 3, 2009.

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.







Gudmundsson             Expires December 3, 2009                [Page 1]

Internet-Draft            DNSSEC OK min bufsize                June 2009


Abstract

   RFC3226 mandated support for EDNS0 in DNS entities claiming to
   support either DNS Security Extensions or IPv6 address records.  This
   requirement was motivated because these new features increase the
   size of DNS messages.  If EDNS0 is not supported fall back to TCP
   will happen, having a detrimental impact on query latency and DNS
   server load.


Table of Contents

   1.  Introduction . . . . . . . . . . . . . . . . . . . . . . . . .  3
     1.1.  Requirements . . . . . . . . . . . . . . . . . . . . . . .  3
   2.  Motivating factors . . . . . . . . . . . . . . . . . . . . . .  4
     2.1.  DNSSEC motivations . . . . . . . . . . . . . . . . . . . .  4
     2.2.  UDP vs TCP for DNS messages  . . . . . . . . . . . . . . .  4
     2.3.  EDNS0 and large UDP messages . . . . . . . . . . . . . . .  4
   3.  Protocol changes:  . . . . . . . . . . . . . . . . . . . . . .  6
   4.  Acknowledgments  . . . . . . . . . . . . . . . . . . . . . . .  7
   5.  Security Considerations  . . . . . . . . . . . . . . . . . . .  8
   6.  IANA Considerations: . . . . . . . . . . . . . . . . . . . . .  9
   7.  References . . . . . . . . . . . . . . . . . . . . . . . . . . 10
     7.1.  Normative References . . . . . . . . . . . . . . . . . . . 10
     7.2.  Informative References . . . . . . . . . . . . . . . . . . 10
   Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 11

























Gudmundsson             Expires December 3, 2009                [Page 2]

Internet-Draft            DNSSEC OK min bufsize                June 2009


1.  Introduction

   Familiarity with the DNS[RFC1034] [RFC1035], EDNS0[RFC2671] DNS
   Security Extensions[RFC4033], [RFC4034] [RFC4035] is assumed.

   STD 13 RFC 1035[RFC1035] Section 2.3.4 requires that DNS messages
   over UDP have a data payload of 512 octets or less.  Some DNS
   software does not accept larger UDP data grams, some DNS "aware"
   middle box software is insistent on this behavior sometimes with
   strange side effects.  Any answer that requires more than 512 octets,
   results in a partial and sometimes useless reply with the Truncation
   Bit set at the Authoritative server.  If a resolver gets that reply
   in most cases the requester will then retry using TCP.  In the case
   of middle box insisting on 512 limit the middle box may simply drop
   the reply.  Because of this resolvers have implemented number of
   techniques to get around the middle boxes.

   Furthermore, server delivery of truncated responses varies widely,
   some contain as much data as will fit and others sending empty
   answers.  The resolver handling of truncated responses also varies,
   some checking if the information asked for is in the answer and using
   that.  Other resolvers will blindly retry the query over TCP.

   Compared to UDP, TCP is an expensive protocol to use for a simple
   transaction like DNS: a TCP connection requires 5 packets for setup
   and tear down, excluding data packets, thus requiring at least 3
   round trips on top of the one for the original UDP query.  The DNS
   server also needs to keep a state of the connection during this
   transaction.  Many DNS servers answer tens of thousands of queries
   per second, requiring them to use TCP will cause significant overhead
   and delays.

1.1.  Requirements

   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 RFC 2119.  [RFC2119]














Gudmundsson             Expires December 3, 2009                [Page 3]

Internet-Draft            DNSSEC OK min bufsize                June 2009


2.  Motivating factors

2.1.  DNSSEC motivations

   Adding DNSSEC [RFC4033] to a zone expands the size of regular answers
   as signatures are added to each RRset.  The size of some RRsets can
   exceed the 512 byte limit, in particular the DNSKEY RRset can exceed
   this size.  For example as of June 2009 the on-the wire size of the
   answer for qytpe=3384 with buffsize=4094, for the following TLDs .cz:
   1322..3384, .gov: 1166, .org: 1334..1723, and .se 3958..4094 The wide
   range of answer size reflects partially what is placed in the
   authority and additional sections by different implementations.

   In particular the size of negative answers size increases.  A
   negative answer requires a signed SOA, and at least 2 NSEC records or
   3 NSEC3 records.  The size of the zone signing key thus has great
   impact on the size of the negative answers.  For the TLD mentioned
   above the range for the negative answers is from 660 bytes in .se to
   about 1500 bytes for .gov.

   DNSSEC DO[RFC4035] [RFC3225] specifies how a client can, using EDNS0,
   indicate that it is interested in receiving DNSSEC records.  The DO
   bit does not eliminate the need for large answers for DNSSEC capable
   clients requiring TCP.

2.2.  UDP vs TCP for DNS messages

   TCP requires more/longer-living state on both parties of a
   transaction.  For high volume DNS servers even small states per each
   query that need to be kept for "long" time is a potential DoS vector.
   Number of DNS servers are answering 50-100 Kq/s thus any state will
   consume significant memory resources.  UDP requires no state past the
   lifetime of the query.

2.3.  EDNS0 and large UDP messages

   EDNS0[RFC2671] allows clients to declare the maximum size of UDP
   message they are willing to handle.  Thus, if the expected answer is
   between 512 octets and the maximum size that the client can accept,
   the additional overhead of a TCP connection can be avoided.

   [RFC3225] and [RFC3226] did not explicitly specify when to set the DO
   bit or how to handle when the DO bit was set in error on small
   messages.  The documents implicitly made the assumption that DO bit
   was going to be set only when an resolver relay wanted DNSSEC records
   and the advertised buffer size was large enough to handle the
   specified DNSSEC answer size.  Implementations have been seen to
   counter both of these assumptions.  These two documents where



Gudmundsson             Expires December 3, 2009                [Page 4]

Internet-Draft            DNSSEC OK min bufsize                June 2009


   obsoleted by RFC4035 where the language is stronger about support of
   DO bit and minimum advertised buffer size (see section 4.1).

   According to a study in 2008 [MATT] about 15% of EDNS queries
   reaching the .com/.net TLD servers have advertised buffer size less
   than 1220.  Many/most of these have the DO bit set.  What seems to be
   happening is that resolver implementations have discovered that ENDS0
   with buffer size of 4096 is sometimes silently dropped and fall back
   to < 1220 in an attempt to get messages through.  When the size is
   shrunk the DO bit is still set, even when the advertised size is 512
   bytes.








































Gudmundsson             Expires December 3, 2009                [Page 5]

Internet-Draft            DNSSEC OK min bufsize                June 2009


3.  Protocol changes:

   This document updates [RFC4035]

   A DNSSEC compliant resolver MUST NOT set the DO bit on queries where
   the buffer size is less than 1220.

   A DNSSEC compliant severs upon receiving a queries with DO bit set
   and the buffer size set to less 1220 MAY either:

   treat it as the DO bit is not set.  If a server ignores the DO bit it
   MUST clear the DO bit in the response.

   DNSSEC compliant servers MAY alternativly refuse to answer such query
   by sending back: FORMERR and including an OPT record in the response
   (to signal the server actually supports ENDS0).

   The hope hope is that never resolver versions will not drop from 4K
   buffer to 512 but try something between 1220 and 1500 bytes.

   DNS resolvers that keep data in the cache based on the setting of the
   DO bit MUST do so based on the presence of the DO bit in the answer
   not the query.




























Gudmundsson             Expires December 3, 2009                [Page 6]

Internet-Draft            DNSSEC OK min bufsize                June 2009


4.  Acknowledgments

   This document was motivated by behavior observed by David Conrad at
   an root server.  The need for this update was further motivated by
   the signing of ORG and the reports in sudden increase TCP connections
   right after that.  Number of people have provided usefull feeback on
   this document, Joe Abley, Mark Andrews, George Barwood, Ray Bellis,
   David Conrad, Michael Graff, Peter Koch, Ted Lemmon, Wouter
   Wjingaads, Paul Vixie, Florian Weimer and Nichola Weaver.










































Gudmundsson             Expires December 3, 2009                [Page 7]

Internet-Draft            DNSSEC OK min bufsize                June 2009


5.  Security Considerations

   Ignoring the the DO bit in certain case may cause non-compliant
   DNSSEC aware software to experience behavior that indicates that the
   zone has gone insecure.  This is not a bad thing as any testing of
   the path will reveal that the EDNS0 buffer size is the issue.













































Gudmundsson             Expires December 3, 2009                [Page 8]

Internet-Draft            DNSSEC OK min bufsize                June 2009


6.  IANA Considerations:

   This document does not have any IANA actions.
















































Gudmundsson             Expires December 3, 2009                [Page 9]

Internet-Draft            DNSSEC OK min bufsize                June 2009


7.  References

7.1.  Normative References

   [RFC1034]  Mockapetris, P., "Domain names - concepts and facilities",
              STD 13, RFC 1034, November 1987.

   [RFC1035]  Mockapetris, P., "Domain names - implementation and
              specification", STD 13, RFC 1035, November 1987.

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

   [RFC4033]  Arends, R., Austein, R., Larson, M., Massey, D., and S.
              Rose, "DNS Security Introduction and Requirements",
              RFC 4033, March 2005.

   [RFC4034]  Arends, R., Austein, R., Larson, M., Massey, D., and S.
              Rose, "Resource Records for the DNS Security Extensions",
              RFC 4034, March 2005.

   [RFC4035]  Arends, R., Austein, R., Larson, M., Massey, D., and S.
              Rose, "Protocol Modifications for the DNS Security
              Extensions", RFC 4035, March 2005.

7.2.  Informative References

   [RFC3225]  Conrad, D., "Indicating Resolver Support of DNSSEC",
              RFC 3225, December 2001.

   [RFC3226]  Gudmundsson, O., "DNSSEC and IPv6 A6 aware server/resolver
              message size requirements", RFC 3226, December 2001.

   [MATT]     Larson, M. and D. Blacka, "Port and Message ID Analysis of
              Resolvers Querying .com/.net Name Servers", Sept 2008.













Gudmundsson             Expires December 3, 2009               [Page 10]

Internet-Draft            DNSSEC OK min bufsize                June 2009


Author's Address

   Olafur Gudmundsson
   Shinkuro, Inc.
   4922 Fairmount Av. Suite 250
   Bethesda, MD  20814
   USA

   Email: ogud@ogud.com










































Gudmundsson             Expires December 3, 2009               [Page 11]