RFC 2563 PROPOSED STANDARD DHCP · IPV4 · CONFIGURATION

DHCP Option to Disable Stateless Auto-Configuration in IPv4 Clients

A DHCP option that lets a server tell clients not to invent their own link-local IPv4 address.

On rfc-editor.org ↗
PUBLISHED
May 1999
AUTHORS
R. Troll
STREAM
IETF
UPDATED BY
RFC 8925 — IPv6-Only Preferred
OPTION CODE
116
OPTION LENGTH
1
DONOTAUTOCONFIGURE
0
AUTOCONFIGURE
1
OFFERED ADDRESS WHEN FORBIDDING
0x00000000
DOI
10.17487/RFC2563

RFC text

Contents
Original text · RFC Editor View on rfc-editor.org ↗
Network Working Group                                           R. Troll
Request for Comments: 2563                                 @Home Network
Category: Standards Track                                       May 1999


  DHCP Option to Disable Stateless Auto-Configuration in IPv4 Clients

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

Abstract

   Operating Systems are now attempting to support ad-hoc networks of
   two or more systems, while keeping user configuration at a minimum.
   To accommodate this, in the absence of a central configuration
   mechanism (DHCP), some OS's are automatically choosing a link-local
   IP address which will allow them to communicate only with other hosts
   on the same link.  This address will not allow the OS to communicate
   with anything beyond a router.  However, some sites depend on the
   fact that a host with no DHCP response will have no IP address.  This
   document describes a mechanism by which DHCP servers are able to tell
   clients that they do not have an IP address to offer, and that the
   client should not generate an IP address it's own.

1.  Introduction

   With computers becoming a larger part of everyday life, operating
   systems must be able to support a larger range of operating
   environments.  One aspect of this support is the selection of an IP
   address.  The Dynamic Host Configuration Protocol [DHCP] provides a
   superb method by which site administrators may supply IP addresses
   (and other network parameters) to network devices.  However, some
   operating environments are not centrally maintained, and operating
   systems must now be able to handle this quickly and easily.

   IPv6 accounts for this, and allows an IPv6 stack to assign itself a
   global address in the absence of any other mechanism for
   configuration [IPv6SAC].  However, Operating System designers can't
   wait for IPv6 support everywhere.  They need to be able to assume
   they will have IPv4 addresses, so that they may communicate with one
   another even in the smallest networks.

   This document looks at three types of network nodes, and how IPv4
   address auto-configuration may be disabled on a per-subnet (or even
   per-node) basis.  The three types of network nodes are:

   * A node for which the site administrator will hand out configuration
     information,

   * A node on a network segment for which there is no site
     administrator, and

   * A node on a network segment that has a central site administrator,
     and that administrator chooses not to hand out any configuration
     information to the node.

   The difference between the second and third cases is the clients
   behavior.

   In one case, the node may assign itself an IP address, and have full
   connectivity with other nodes on the local wire.  In the last case,
   the node is not told what to do, and while it may assign itself a
   network address in the same way as case #2, this may not be what the
   central administrator wants.

   The first scenario is handled by the current DHCP standard.  However,
   the current DHCP specification [DHCP] says servers must silently
   ignore requests from hosts they do not know.  Because of this, DHCP
   clients are unable to determine whether they are on a subnet with no
   administration, or with administration that is choosing not to hand
   out addresses.

   This document describes a method by which DHCP clients will be able
   to determine whether or not the network is being centrally
   administrated, allowing it to intelligently determine whether or not
   it should assign itself a "link-local" address.

1.1.  Conventions Used in the 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 [KEYWORDS].

1.2.  Terminology

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

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

2.  The Auto-Configure Option

   This option code is used to ask whether, and be notified if, auto-
   configuration should be disabled on the local subnet.  The auto-
   configure option is an 8-bit number.

        Code   Len   Value
       +-----+-----+-----+
       | 116 |  1  |  a  |
       +-----+-----+-----+

   The code for this option is 116, and its length is 1.

   This code, along with the IP address assignment, will allow a DHCP
   client to determine whether or not it should generate a link-local IP
   address.

2.1.  Auto-Configure Values

   The auto-configure option uses the following values:

            DoNotAutoConfigure     0
            AutoConfigure          1

   When a server responds with the value "AutoConfigure", the client MAY
   generate a link-local IP address if appropriate.  However, if the
   server responds with "DoNotAutoConfigure", the client MUST NOT
   generate a link-local IP address, possibly leaving it with no IP
   address.

2.2.  DHCP Client Behavior

   Clients that have auto-configuration capabilities MUST add the Auto-
   Configure option to the list of options included in its initial
   DHCPDISCOVER message.  ([DHCP] Section 4.4.1)  At this time, the
   option's value should be set to "AutoConfigure".

   When a DHCPOFFER is received, it is handled as described in [DHCP],
   section 4.4.1, with one exception.  If the 'yiaddr' field is
   0x00000000, the Auto-Configure option must be consulted.  If this
   option is set to "AutoConfigure", then the DHCPOFFER MUST be ignored,
   and the DHCP client MAY generate a link-local IP address.  However,
   if this option is set to "DoNotAutoConfigure", then the DHCPOFFER
   MUST be ignored, and the client MUST NOT generate a link-local IP
   address.

   If a DHCP client receives any DHCPOFFER which contains a 'yiaddr' of
   0x00000000, and the Auto-Configure flag says "DoNotAutoConfigure", in
   the absence of a DHCPOFFER with a valid 'yiaddr', the DHCP client
   MUST NOT generate a link-local IP address.  The amount of time a DHCP
   client waits to collect any other DHCPOFFERs is implementation
   dependant.

   DHCPOFFERs with a 'yiaddr' of 0x00000000 will only be sent by DHCP
   servers supporting the Auto-Configure option when the DHCPDISCOVER
   contained the Auto-Configure option.  Since the DHCPDISCOVER will
   only contain the Auto-Configure option when a DHCP client knows how
   to handle it, there will be no inter-operability problems.

   If the DHCP server does have an address to offer, the message states
   are the same as those described in [DHCP], section 3.

   The following depicts the difference in responses for non-registered
   DHCP clients that support the "Auto-Configure" option on networks
   that have DHCP servers that support auto-configuration and networks
   with DHCP servers that do not.

                        Network         Client          Network
                  (no auto-configure)               (auto-configure)

                          v               v               v
                          |               |               |
                          |     Begins initialization     |
                          |               |               |
                          | _____________/|\____________  |
                          |/DHCPDISCOVER  | DHCPDISCOVER \|
                          |               |               |
                      Determines          |          Determines
                     configuration        |         configuration
                          |               |               |
                          |               |  ____________/|
                          |               | /DHCPOFFER    |
                          |               |/              |
                          |               |               |
                          |       Collects replies        |
                          |               |               |
                          |     Selects configuration     |
                          |               |               |
                          |--AutoConfigs--|- NO IP ADDR --|
                          .               .               .
                          .               .               .
                          |               |               |
                          |      Graceful shutdown        |
                          |               |               |
                          |               |               |
                          v               v               v


2.3.  DHCP Server Behavior

   When a DHCP server receives a DHCPDISCOVER, it MUST be processed as
   described in [DHCP], section 4.3.1.  However, if no address is chosen
   for the host, a few additional steps MUST be taken.

   If the DHCPDISCOVER does not contain the Auto-Configure option, it is
   not answered.

   If the DHCPDISCOVER contains the Auto-Configure option, and the site
   administrator has specified that Auto-Configuration should be
   disabled on the subnet the DHCPDISCOVER is originating from, or for
   the client originating the request, then a DHCPOFFER MUST be sent to
   the DHCP client.  This offer MUST be for the address 0x00000000, and
   the Auto-Configure option MUST be set to "DoNotAutoConfigure".

   If the site administrator allows auto-configuration on the
   originating subnet, the DHCPDISCOVER is not answered as before.

2.4.  Mixed Environments

   Environments containing a mixture of clients and servers that do and
   do not support the Auto-Configure option will not be a problem.
   Every DHCP transaction is between a Server and a Client, and the
   possible mixed scenarios between these two are listed below.

2.4.1.  Client Supports, Server Does Not

   If a DHCP client sends a request that contains the Auto-Configure
   tag, a DHCP server that does not know what this tag is will respond
   normally.  According to [DHCP] Section 4.3.1, the server MUST NOT
   return a value for that parameter.

   In this case, the server will either respond with a valid DHCPOFFER,
   or it will not respond at all.  In both cases, a DHCP client that
   supports this option will never care what the state of the option is,
   and may auto-configure.

2.4.2.  Servers Supports, Client Does Not

   If the Auto-Configure option is not present in the DHCPDISCOVER, the
   server will do nothing about it.  The client will auto-configure if
   it doesn't receive a response and believes that's what it should do.

   This scenario SHOULD not occur, as any stacks that implement an
   auto-configuration mechanism MUST implement this option as well.

2.5.  Interaction With Other DHCP Messages

   As this option only affects the initial IP address selection, it does
   not apply to subsequent DHCP messages.  If the DHCP client received a
   lease from a DHCP server, future DHCP messages (RENEW, INFORM, ACK,
   etc.) have no need to fall over into an auto- configuration state.

   If the DHCP client's lease expires, the client falls back into the
   INIT state, and the initial DHCPDISCOVER is sent as before.

2.5.1.  DHCPRELEASE Messages

   DHCPRELEASEs occur exactly as described in [DHCP], section 4.4.6.
   When a DHCP client is done with a lease, it MAY notify the server
   that it is finished.  For this to occur, the DHCP client already
   received a DHCP lease, and the state of Auto-Configuration on the
   local wire does not matter.

2.5.2.  DHCPDECLINE Messages

   A DHCPDECLINE is sent by the DHCP client when it determines the
   network address it is attempting to use is already in use.  As a
   network address has been tested, it must have been offered by the
   DHCP Server, and the state of Auto-Configuration on the local wire
   does not matter.

2.5.3.  DHCPINFORM Messages

   DHCPINFORMs should be handled as described in [DHCP], section 4.4.3.
   No changes are necessary.

2.6.  Message Option

   If the DHCP server would like to tell a client why it is not allowed
   to auto-configure, it MAY add the Message option to the response.
   This option is defined in [DHCPOPT], Section 9.9.

   If the DHCP client receives a response with the Message option set,
   it MUST provide this information to the administrator of the DHCP
   client.  How this information is provided is implementation
   dependant.

3.  Security Considerations

   DHCP per se currently provides no authentication or security
   mechanisms.  Potential exposures to attack are discussed in section 7
   of the DHCP protocol specification [DHCP].

   This mechanism does add one other potential attack.  Malicious users
   on a subnet may respond to all DHCP requests with responses telling
   DHCP clients that they should NOT auto-configure on the local wire.
   On a network where Auto-Configuration is required, this will cause
   all DHCP clients to not choose an address.

4.  Acknowledgments

   This idea started at a joint Common Solutions Group / Microsoft
   meeting at Microsoft in May, 1998.  The IP stacks in Win98 and NT5
   assign themselves an IP address (in a specific subnet) in the absence
   of a responding DHCP server, and this is causing headaches for many
   sites that actually rely on machines not getting IP addresses when
   the DHCP servers do not know them.

   Walter Wong proposed a solution that would allow the DHCP servers to
   tell clients not to do this.  His initial solution would not work
   without slight modifications to DHCP itself.  This document describes
   those modifications.

5.  IANA Considerations

   The IANA has assigned option number 116 for this option.

6.  References

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

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

   [IPv6SAC]  Thomson, S. and T. Narten, "IPv6 Stateless Address
              Autoconfiguration", RFC 2462, December 1998.

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

7.  Author's Address

   Ryan Troll
   @Home Network
   425 Broadway
   Redwood City, CA 94063

   Phone: (650) 556-6031
   EMail: rtroll@corp.home.net

8.  Full Copyright Statement

   Copyright (C) The Internet Society (1999).  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
PROBLEMSome operating systems give themselves a link-local IPv4 address when no DHCP server answers. Sites that rely on unknown hosts getting no address do not want that, but DHCP servers were required to stay silent toward hosts they did not know.
MECHANISMA client adds option 116 (Auto-Configure) to its DHCPDISCOVER. A server that wants to forbid auto-configuration answers with a DHCPOFFER for address 0.0.0.0 and the value DoNotAutoConfigure.
WHY IT MATTERSThe client can now tell a network with no administrator from one whose administrator chose to hand out nothing, and it MUST NOT make up an address in the second case. The RFC was later updated by RFC 8925.

§1The Problem with Silent DHCP Servers

Operating systems increasingly support ad-hoc networks of two or more machines with little user configuration. When no DHCP server answers, some of them choose a link-local IP address that lets them talk only to hosts on the same link, not past a router. The RFC notes that the IPv4 stacks in Win98 and NT5 did this, and that it caused headaches for sites that rely on machines getting no address when the DHCP servers do not know them.

The difficulty is that DHCP requires servers to silently ignore requests from hosts they do not know. A client therefore cannot tell a subnet with no administrator from one whose administrator deliberately offers nothing. The RFC distinguishes three kinds of nodes: one the administrator configures, one on a segment with no administrator, and one on a managed segment where the administrator chooses to give it nothing.

If nobody answers, some computers just make up a house number for themselves. A school might not want that, but the helper who hands out numbers was told to stay quiet when it does not know you.

§2The Auto-Configure Option

The option has code 116 and length 1, with a one-byte value. Two values are defined: DoNotAutoConfigure is 0 and AutoConfigure is 1.

When a server answers AutoConfigure, the client MAY generate a link-local address if appropriate. When it answers DoNotAutoConfigure, the client MUST NOT generate one, possibly leaving it with no IP address at all.

It is a single yes-or-no switch in the message. Zero means do not make up an address, one means you may.

AUTO-CONFIGURE OPTION VALUES (OPTION CODE 116)
  • 0DoNotAutoConfigure — Client MUST NOT generate a link-local address.
  • 1AutoConfigure — Client MAY generate a link-local address if appropriate.

§2.2Client and Server Behavior

A client that can auto-configure MUST include the option, set to AutoConfigure, in its initial DHCPDISCOVER. When a DHCPOFFER arrives with a yiaddr of 0x00000000, the client consults the option. In both cases the offer MUST be ignored. If the value is AutoConfigure, the client MAY generate a link-local address. If it is DoNotAutoConfigure, and no other offer with a valid yiaddr arrives, the client MUST NOT. How long the client waits to collect other offers is implementation dependent.

On the server side, a DHCPDISCOVER is processed as in the DHCP specification. If no address is chosen, the server stays silent when the option is absent. When the option is present and the administrator has disabled auto-configuration for that subnet or client, the server MUST send a DHCPOFFER for address 0x00000000 with the option set to DoNotAutoConfigure. If auto-configuration is allowed on that subnet, the server stays silent as before.

The computer asks for an address and mentions it knows the rule. If the network answers an empty offer that says do not invent one, the computer stays without an address.

§2.4Mixed Environments and Other Messages

Old and new software can coexist. If a client sends the option to a server that does not know it, the server responds normally and does not return a value for it, so the client may auto-configure. If a server supports the option but the client does not send it, the server does nothing about it and the client auto-configures if it gets no response. The RFC says this case SHOULD not occur, because any stack that auto-configures MUST implement this option. Empty offers are only sent when the DISCOVER contained the option, so there are no interoperability problems.

The option only affects the initial address selection. Renewals, releases, declines and informs are handled as in the DHCP specification, because a lease or tested address already exists. If a lease expires, the client returns to the INIT state and sends the initial DHCPDISCOVER as before. A server MAY add the Message option to explain why the client may not auto-configure, and a client that receives it MUST pass it on to its administrator.

Old computers and new ones can share a network without trouble, because the new rule is only used when both sides know about it.

§3Security Considerations

DHCP itself has no authentication or security mechanisms, and its exposures are discussed in section 7 of the DHCP specification. This option adds one more attack: a malicious user on a subnet can answer every DHCP request with a response saying DoNotAutoConfigure. On a network where auto-configuration is required, that stops all clients from choosing an address.

A prankster could keep shouting do not make up an address, and then nobody on the network could get one.

§6References