Domain Name System (DNS) Case Insensitivity Clarification
RFC 4343

 
Document Type RFC - Proposed Standard (January 2006; Errata)
Last updated 2013-03-02
Stream IETF
Formats plain text pdf html
Stream WG state (None)
Consensus Unknown
Document shepherd No shepherd assigned
IESG IESG state RFC 4343 (Proposed Standard)
Telechat date
Responsible AD Margaret Wasserman
Send notices to ogud@ogud.com, okolkman@ripe.net,Donald.Eastlake@motorola.com
Network Working Group                                    D. Eastlake 3rd
Request for Comments: 4343                         Motorola Laboratories
Updates: 1034, 1035, 2181                                   January 2006
Category: Standards Track

       Domain Name System (DNS) Case Insensitivity Clarification

Status of This Memo

   This document specifies an Internet standards track protocol for the
   Internet community, and requests discussion and suggestions for
   improvements.  Please refer to the current edition of the "Internet
   Official Protocol Standards" (STD 1) for the standardization state
   and status of this protocol.  Distribution of this memo is unlimited.

Copyright Notice

   Copyright (C) The Internet Society (2006).

Abstract

   Domain Name System (DNS) names are "case insensitive".  This document
   explains exactly what that means and provides a clear specification
   of the rules.  This clarification updates RFCs 1034, 1035, and 2181.

Table of Contents

   1. Introduction ....................................................2
   2. Case Insensitivity of DNS Labels ................................2
      2.1. Escaping Unusual DNS Label Octets ..........................2
      2.2. Example Labels with Escapes ................................3
   3. Name Lookup, Label Types, and CLASS .............................3
      3.1. Original DNS Label Types ...................................4
      3.2. Extended Label Type Case Insensitivity Considerations ......4
      3.3. CLASS Case Insensitivity Considerations ....................4
   4. Case on Input and Output ........................................5
      4.1. DNS Output Case Preservation ...............................5
      4.2. DNS Input Case Preservation ................................5
   5. Internationalized Domain Names ..................................6
   6. Security Considerations .........................................6
   7. Acknowledgements ................................................7
   Normative References................................................7
   Informative References..............................................8

Eastlake 3rd                Standards Track                     [Page 1]
RFC 4343          DNS Case Insensitivity Clarification      January 2006

1.  Introduction

   The Domain Name System (DNS) is the global hierarchical replicated
   distributed database system for Internet addressing, mail proxy, and
   other information.  Each node in the DNS tree has a name consisting
   of zero or more labels [STD13, RFC1591, RFC2606] that are treated in
   a case insensitive fashion.  This document clarifies the meaning of
   "case insensitive" for the DNS.  This clarification updates RFCs
   1034, 1035 [STD13], and [RFC2181].

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

2.  Case Insensitivity of DNS Labels

   DNS was specified in the era of [ASCII].  DNS names were expected to
   look like most host names or Internet email address right halves (the
   part after the at-sign, "@") or to be numeric, as in the in-addr.arpa
   part of the DNS name space.  For example,

       foo.example.net.
       aol.com.
       www.gnu.ai.mit.edu.
   or  69.2.0.192.in-addr.arpa.

   Case-varied alternatives to the above [RFC3092] would be DNS names
   like

       Foo.ExamplE.net.
       AOL.COM.
       WWW.gnu.AI.mit.EDU.
   or  69.2.0.192.in-ADDR.ARPA.

   However, the individual octets of which DNS names consist are not
   limited to valid ASCII character codes.  They are 8-bit bytes, and
   all values are allowed.  Many applications, however, interpret them
   as ASCII characters.

2.1.  Escaping Unusual DNS Label Octets

   In Master Files [STD13] and other human-readable and -writable ASCII
   contexts, an escape is needed for the byte value for period (0x2E,
   ".") and all octet values outside of the inclusive range from 0x21
   ("!") to 0x7E ("~").  That is to say, 0x2E and all octet values in
   the two inclusive ranges from 0x00 to 0x20 and from 0x7F to 0xFF.

Eastlake 3rd                Standards Track                     [Page 2]
RFC 4343          DNS Case Insensitivity Clarification      January 2006

   One typographic convention for octets that do not correspond to an
   ASCII printing graphic is to use a back-slash followed by the value
   of the octet as an unsigned integer represented by exactly three
Show full document text