RFC 3397 PROPOSED STANDARD DHCP · DNS · CONFIGURATION

Dynamic Host Configuration Protocol (DHCP) Domain Search Option

How a DHCP server hands a client the list of domains to try when it looks up a short hostname.

On rfc-editor.org ↗
PUBLISHED
November 2002
AUTHORS
B. Aboba, S. Cheshire
STREAM
IETF
DHCP OPTION CODE
119
MAX DATA PER OPTION
255 octets
NAME ENCODING
RFC 1035 section 4.1.4 compression
APPLIES TO
DNS only
DOI
10.17487/RFC3397

RFC text

Contents
Original text · RFC Editor View on rfc-editor.org ↗
Network Working Group                                           B. Aboba
Request for Comments: 3397                                     Microsoft
Category: Standards Track                                    S. Cheshire
                                                    Apple Computer, Inc.
                                                           November 2002


    Dynamic Host Configuration Protocol (DHCP) Domain Search Option

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 (2002).  All Rights Reserved.

Abstract

   This document defines a new Dynamic Host Configuration Protocol
   (DHCP) option which is passed from the DHCP Server to the DHCP Client
   to specify the domain search list used when resolving hostnames using
   DNS.

Table of Contents

   1.  Introduction ................................................  2
        1.1 Terminology ............................................  2
        1.2 Requirements Language ..................................  2
   2.  Domain Search Option Format .................................  2
   3.  Example .....................................................  3
   4.  Security Considerations .....................................  4
   5.  Normative References ........................................  5
   6.  Informative References ......................................  5
   7.  IANA Considerations .........................................  6
   8.  Acknowledgments .............................................  6
   9.  Intellectual Property Statement .............................  6
   10. Authors' Addresses ..........................................  7
   11. Full Copyright Statement ....................................  8

1.  Introduction

   The Dynamic Host Configuration Protocol (DHCP) [RFC2131] provides a
   mechanism for host configuration.  [RFC2132] and [RFC2937] allow DHCP
   servers to pass name service configuration information to DHCP
   clients.  In some circumstances, it is useful for the DHCP client to
   be configured with the domain search list.  This document defines a
   new DHCP option which is passed from the DHCP Server to the DHCP
   Client to specify the domain search list used when resolving
   hostnames with DNS.  This option applies only to DNS and does not
   apply to other name resolution mechanisms.

1.1.  Terminology

   This document uses the following terms:

   DHCP client
         A DHCP client or "client" is an Internet host using DHCP to
         obtain configuration parameters such as a network address.

   DHCP server
         A DHCP server or "server" is an Internet host that returns
         configuration parameters to DHCP clients.

1.2.  Requirements Language

   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 "Key words for use in
   RFCs to Indicate Requirement Levels" [RFC2119].

2.  Domain Search Option Format

   The code for this option is 119.

    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |     119       |     Len       |         Searchstring...
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                     Searchstring...
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   In the above diagram, Searchstring is a string specifying the
   searchlist.  If the length of the searchlist exceeds the maximum
   permissible within a single option (255 octets), then multiple
   options MAY be used, as described in "Encoding Long Options in the
   Dynamic Host Configuration Protocol (DHCPv4)" [RFC3396].

   To enable the searchlist to be encoded compactly, searchstrings in
   the searchlist MUST be concatenated and encoded using the technique
   described in section 4.1.4 of "Domain Names - Implementation And
   Specification" [RFC1035].  In this scheme, an entire domain name or a
   list of labels at the end of a domain name is replaced with a pointer
   to a prior occurrence of the same name.  Despite its complexity, this
   technique is valuable since the space available for encoding DHCP
   options is limited, and it is likely that a domain searchstring will
   contain repeated instances of the same domain name.  Thus the DNS
   name compression is both useful and likely to be effective.

   For use in this specification, the pointer refers to the offset
   within the data portion of the DHCP option (not including the
   preceding DHCP option code byte or DHCP option length byte).

   If multiple Domain Search Options are present, then the data portions
   of all the Domain Search Options are concatenated together as
   specified in "Encoding Long DHCP Options in the Dynamic Host
   Configuration Protocol (DHCPv4)" [RFC3396] and the pointer indicates
   an offset within the complete aggregate block of data.

3.  Example

   Below is an example encoding of a search list consisting of
   "eng.apple.com." and "marketing.apple.com.":

   +---+---+---+---+---+---+---+---+---+---+---+
   |119| 9 | 3 |'e'|'n'|'g'| 5 |'a'|'p'|'p'|'l'|
   +---+---+---+---+---+---+---+---+---+---+---+

   +---+---+---+---+---+---+---+---+---+---+---+
   |119| 9 |'e'| 3 |'c'|'o'|'m'| 0 | 9 |'m'|'a'|
   +---+---+---+---+---+---+---+---+---+---+---+

   +---+---+---+---+---+---+---+---+---+---+---+
   |119| 9 |'r'|'k'|'e'|'t'|'i'|'n'|'g'|xC0|x04|
   +---+---+---+---+---+---+---+---+---+---+---+

   Note:

   i.    The encoding has been split (for this example) into three
         Domain Search Options.  All Domain Search Options are logically
         concatenated into one block of data before being interpreted by
         the client.

   ii.   The encoding of "eng.apple.com." ends with a zero, the null
         root label, to mark the end of the name, as required by RFC
         1035.

   iii.  The encoding of "marketing" (for "marketing.apple.com.") ends
         with the two-octet compression pointer C004 (hex), which points
         to offset 4 in the complete aggregated block of Domain Search
         Option data, where another validly encoded domain name can be
         found to complete the name ("apple.com.").

   Every search domain name must end either with a zero or with a two-
   octet compression pointer.  If the receiver is part-way through
   decoding a search domain name when it reaches the end of the complete
   aggregated block of the searchlist option data, without finding a
   zero or a valid two-octet compression pointer, then the partially
   read name MUST be discarded as invalid.

4.  Security Considerations

   Potential attacks on DHCP are discussed in section 7 of the DHCP
   protocol specification [RFC2131], as well as in the DHCP
   authentication specification [RFC3118].  In particular, using the
   domain search option, a rogue DHCP server might be able to redirect
   traffic to another site.

   For example, a user requesting a connection to "myhost", expecting to
   reach "myhost.bigco.com" might instead be directed to
   "myhost.roguedomain.com".  Note that support for DNSSEC [RFC2535]
   will not avert this attack, since the resource records for
   "myhost.roguedomain.com" might be legitimately signed.  This makes
   the domain search option a more fruitful avenue of attack for a rogue
   DHCP server than providing an illegitimate DNS server option
   (described in [RFC2132]).

   The degree to which a host is vulnerable to attack via an invalid
   domain search option is determined in part by DNS resolver behavior.
   [RFC1535] discusses security weaknesses related to implicit as well
   as explicit domain searchlists, and provides recommendations relating
   to resolver searchlist processing.  [RFC1536] section 6 also
   addresses this vulnerability, and recommends that resolvers:

   [1]   Use searchlists only when explicitly specified; no implicit
         searchlists should be used.

   [2]   Resolve a name that contains any dots by first trying it as an
         FQDN and if that fails, with the local domain name (or
         searchlist if specified) appended.

   [3]   Resolve a name containing no dots by appending with the
         searchlist right away, but once again, no implicit searchlists
         should be used.

   In order to minimize potential vulnerabilities it is recommended
   that:

   [a]   Hosts implementing the domain search option SHOULD also
         implement the searchlist recommendations of [RFC1536], section
         6.

   [b]   Where DNS parameters such as the domain searchlist or DNS
         servers have been manually configured, these parameters SHOULD
         NOT be overridden by DHCP.

   [c]   Domain search option implementations MAY require DHCP
         authentication [RFC3118] prior to accepting a domain search
         option.

5.  Normative References

   [RFC1035]   Mockapetris, P., "Domain Names - Implementation and
               Specification", STD 13, RFC 1035, November 1987.

   [RFC1536]   Kumar, A., Postel, J., Neuman, C., Danzig, P. and S.
               Miller, "Common DNS Implementation Errors and Suggested
               Fixes", RFC 1536, October 1993.

   [RFC2119]   Bradner, S., "Key words for use in RFCs to Indicate
               Requirement Levels", BCP 14, RFC 2119, March 1997.

   [RFC2131]   Droms, R., "Dynamic Host Configuration Protocol", RFC
               2131, March 1997.

   [RFC3118]   Droms, R. and W. Arbaugh, "Authentication for DHCP
               Messages", RFC 3118, June 2001.

   [RFC3396]   Lemon, T. and S. Cheshire, "Encoding Long Options in the
               Dynamic Host Configuration Protocol (DHCPv4)", RFC 3396,
               November 2002.

6.  Informative References

   [RFC1535]   Gavron, E., "A Security Problem and Proposed Correction
               With Widely Deployed DNS Software", RFC 1535, October
               1993.

   [RFC2132]   Alexander, S. and R. Droms, "DHCP Options and BOOTP
               Vendor Extensions", RFC 2132, March 1997.

   [RFC2535]   Eastlake, D., "Domain Name System Security Extensions",
               RFC 2535, March 1999.

   [RFC2937]   Smith, C., "The Name Service Search Option for DHCP", RFC
               2937, September 2000.

7.  IANA Considerations

   The IANA has assigned DHCP option code 119 to the Domain Search
   Option.

8. Acknowledgments

   The authors would like to thank Michael Patton, Erik Guttman, Olafur
   Gudmundsson, Thomas Narten, Mark Andrews, Erik Nordmark, Myron
   Hattig, Keith Moore, and Bill Manning for comments on this memo.

9. Intellectual Property Statement

   The IETF takes no position regarding the validity or scope of any
   intellectual property or other rights that might be claimed to
   pertain to the implementation or use of the technology described in
   this document or the extent to which any license under such rights
   might or might not be available; neither does it represent that it
   has made any effort to identify any such rights.  Information on the
   IETF's procedures with respect to rights in standards-track and
   standards-related documentation can be found in BCP-11.  Copies of
   claims of rights made available for publication and any assurances of
   licenses to be made available, or the result of an attempt made to
   obtain a general license or permission for the use of such
   proprietary rights by implementors or users of this specification can
   be obtained from the IETF Secretariat.

   The IETF invites any interested party to bring to its attention any
   copyrights, patents or patent applications, or other proprietary
   rights which may cover technology that may be required to practice
   this standard.  Please address the information to the IETF Executive
   Director.

10. Authors' Addresses

   Bernard Aboba
   Microsoft Corporation
   One Microsoft Way
   Redmond, WA 98052

   Phone: +1 425 706 6605
   EMail: bernarda@microsoft.com


   Stuart Cheshire
   Apple Computer, Inc.
   1 Infinite Loop
   Cupertino
   California 95014
   USA

   Phone: +1 408 974 3207
   EMail: rfc@stuartcheshire.org

11. Full Copyright Statement

   Copyright (C) The Internet Society (2002).  All Rights Reserved.

   This document and translations of it may be copied and furnished to
   others, and derivative works that comment on or otherwise explain it
   or assist in its implementation may be prepared, copied, published
   and distributed, in whole or in part, without restriction of any
   kind, provided that the above copyright notice and this paragraph are
   included on all such copies and derivative works.  However, this
   document itself may not be modified in any way, such as by removing
   the copyright notice or references to the Internet Society or other
   Internet organizations, except as needed for the purpose of
   developing Internet standards in which case the procedures for
   copyrights defined in the Internet Standards process must be
   followed, or as required to translate it into languages other than
   English.

   The limited permissions granted above are perpetual and will not be
   revoked by the Internet Society or its successors or assigns.

   This document and the information contained herein is provided on an
   "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
   TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
   BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
   HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
   MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.

Acknowledgement

   Funding for the RFC Editor function is currently provided by the
   Internet Society.

AI ELI5

On this page
PROBLEMA DHCP client can be told its DNS servers, but not which domains to append when a user types a short name like myhost.
MECHANISMA new DHCP option, code 119, carries a search list of domain names from the server to the client, packed with DNS name compression to save space.
THE CATCHClients can be configured with a domain search list for DNS lookups. The RFC warns that a rogue DHCP server could abuse the option to redirect traffic.

§1Why a Search List Option

DHCP (RFC 2131) lets a server give a client its configuration. RFC 2132 and RFC 2937 already let servers pass name service settings to clients. This RFC adds one more: the domain search list used when resolving hostnames with DNS.

The option applies only to DNS. It does not apply to other name resolution mechanisms.

Your computer can already be told who to ask for addresses. This adds a list of places to look when you only give half a name.

§2The Domain Search Option

The option code is 119. After the code comes a length byte and then the Searchstring data, which holds the search list.

One option can carry at most 255 octets. If the list is longer, multiple options MAY be used, as described in RFC 3396. In that case the data parts of all the Domain Search Options are concatenated into one block before the client interprets them.

The option is a labeled envelope with a number on it, a size, and the list inside. A long list can be split across several envelopes.

§2.1Compact Encoding of Names

The search strings MUST be concatenated and encoded with the technique in section 4.1.4 of RFC 1035. In this scheme a whole domain name, or the labels at the end of one, is replaced by a pointer to an earlier occurrence of the same name.

The RFC admits this is complex, but DHCP option space is limited and search strings tend to repeat the same domain, so the compression is useful and likely to be effective.

For this option, a pointer refers to an offset within the data portion of the option, not counting the option code byte or the length byte. When several options are present, the offset is within the complete combined block of data.

Instead of writing the same long address twice, you write it once and later just say see the earlier one.

§3A Worked Example

The RFC encodes the list eng.apple.com. and marketing.apple.com.. The encoding is split across three Domain Search Options, but they are logically one block of data.

The name eng.apple.com. ends with a zero byte, the null root label, as RFC 1035 requires. The name marketing ends with the two-octet pointer C004 (hex), which points to offset 4 in the combined data, where apple.com. already appears.

Every search domain name must end either with a zero or with a two-octet compression pointer. If a receiver reaches the end of the combined data while part-way through a name, without finding either, it MUST discard the partial name as invalid.

The second name borrows the end of the first name by pointing back to it, like writing see page 4 instead of repeating a paragraph.

THE THREE OPTIONS OF THE EXAMPLE, ILLUSTRATIVE LAYOUT OF RFC DATA
Search list: eng.apple.com. and marketing.apple.com.
119, 9, 3 'e' 'n' 'g' 5 'a' 'p' 'p' 'l'
119, 9, 'e' 3 'c' 'o' 'm' 0 9 'm' 'a'
119, 9, 'r' 'k' 'e' 't' 'i' 'n' 'g' xC0 x04

§4Security Considerations

Attacks on DHCP are covered in RFC 2131 and RFC 3118. With this option, a rogue DHCP server might redirect traffic. A user who types myhost expecting myhost.bigco.com could be sent to myhost.roguedomain.com.

DNSSEC does not stop this, because the records for the rogue name might be legitimately signed. This makes the option a more fruitful target than a fake DNS server option.

To reduce the risk, the RFC recommends that hosts implementing the option SHOULD also follow the search list recommendations in section 6 of RFC 1536. Manually configured DNS parameters SHOULD NOT be overridden by DHCP. Implementations MAY require DHCP authentication before accepting the option.

A sneaky helper could hand your computer a list of wrong neighborhoods, so you end up at the wrong house. Being careful about whose list you trust helps.

§5IANA Considerations

IANA assigned DHCP option code 119 to the Domain Search Option. The RFC makes no other IANA requests.

The official list of option numbers now has number 119 reserved for this one.

§7References