RFC 2563
DHCP Option to Disable Stateless Auto-Configuration in IPv4 Clients
RFC 2563: DHCP Option to Disable Stateless Auto-Configuration in IPv4 Clients π
Group: Network Working Group Author: R. Troll, @Home Network Category: Standards Track Date: May 1999 Obsoletes / Updates: The title block doesn't list anything this RFC obsoletes or updates.
This is part 1 of 2 π¦
Status of this Memo β¨
okay so this document is an Internet standards track protocol for the Internet community, and it's literally asking for discussion and suggestions for improvements π«Ά for the standardization state and status of this protocol, check the current edition of the "Internet Official Protocol Standards" (STD 1). distribution of this memo is unlimited, so share it with everyone bestie π
Copyright Notice π
Copyright (C) The Internet Society (1999). All Rights Reserved.
Abstract πΈ
okay this one's giving "the OS needs to just work" energy π operating systems are now trying to support ad-hoc networks of two or more systems while keeping user configuration to a minimum π so when there's no central configuration mechanism (DHCP), some OSes automatically pick a link-local IP address. that address only lets them talk to other hosts on the same link. it can't reach anything past a router π§
BUT some sites are counting on the fact that a host with no DHCP response ends up with no IP address at all π so this document describes a way for DHCP servers to tell clients "hey, we don't have an IP address to offer you, and you should not make one up yourself" π
1. Introduction β¨
with computers becoming a bigger part of everyday life, operating systems have to support a bigger range of environments π one piece of that is picking an IP address. the Dynamic Host Configuration Protocol [DHCP] is a superb way for site administrators to hand out IP addresses (and other network parameters) to network devices π but some environments aren't centrally maintained, and operating systems now need to handle those quickly and easily π§
IPv6 covers this, and lets an IPv6 stack give itself a global address when there's no other configuration mechanism [IPv6SAC] π but OS designers can't just wait around for IPv6 to be everywhere π€ they need to be able to count on having IPv4 addresses, so devices can talk to each other even on the tiniest networks β¨
this document looks at three types of network nodes, and how IPv4 address auto-configuration can be turned off on a per-subnet (or even per-node) basis. the three types 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 client's behavior π
in the second case, the node may give itself an IP address and have full connectivity with other nodes on the local wire π₯ in the third case, nobody told the node what to do. it could still assign itself a network address the same way as in case #2, but that might not be what the central administrator wants π
the first scenario is handled by the current DHCP standard. BUT the current DHCP specification [DHCP] says servers must silently ignore requests from hosts they don't know π which means DHCP clients can't tell whether they're on a subnet with no administration, or on one where the admin is choosing not to hand out addresses π
this document describes a method that lets DHCP clients figure out whether the network is being centrally administrated, so they can intelligently decide whether to give themselves 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 π
quick vocab check so we're on the same page π
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 auto-configuration should be disabled on the local subnet, and to be notified if it should be. 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, together with the IP address assignment, lets a DHCP client work out whether or not it should generate a link-local IP address π§
2.1. Auto-Configure Values β¨
the auto-configure option uses these values:
DoNotAutoConfigure 0
AutoConfigure 1
when a server responds with the value "AutoConfigure", the client MAY generate a link-local IP address if appropriate. BUT if the server responds with "DoNotAutoConfigure", the client MUST NOT generate a link-local IP address, and it might end up with no IP address at all ππ
2.2. DHCP Client Behavior π
okay this is the main client rule and it's SO important π₯
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's 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. BUT 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 gets any DHCPOFFER with a 'yiaddr' of 0x00000000, and the Auto-Configure flag says "DoNotAutoConfigure", then in the absence of a DHCPOFFER with a valid 'yiaddr', the DHCP client MUST NOT generate a link-local IP address. how long a DHCP client waits to collect any other DHCPOFFERs is implementation dependant β³
DHCPOFFERs with a 'yiaddr' of 0x00000000 are only sent by DHCP servers that support the Auto-Configure option, and only when the DHCPDISCOVER contained the Auto-Configure option. since the DHCPDISCOVER only contains the Auto-Configure option when a DHCP client knows how to handle it, there won't be any inter-operability problems π€
if the DHCP server does have an address to offer, the message states are the same as the ones described in [DHCP], section 3 π«
here's how the responses differ for non-registered DHCP clients that support the "Auto-Configure" option, on networks with DHCP servers that support auto-configuration and networks with DHCP servers that don't π¦
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
βοΈ part 2 is next, so stay tuned bestie ππ«Ά
2.5.1. DHCPRELEASE Messages
Okay so DHCPRELEASEs happen exactly the way they're described in [DHCP], section 4.4.6 π When a DHCP client is done with a lease, it MAY tell the server it's finished. For this to happen, the client has already received a DHCP lease, and whether Auto-Configuration is on or off on the local wire doesn't matter π
2.5.2. DHCPDECLINE Messages
A DHCPDECLINE gets sent by the DHCP client when it figures out that the network address it's trying to use is already taken π Since the address has been tested, it must have been offered by the DHCP Server, and again, the state of Auto-Configuration on the local wire does not matter π¦
2.5.3. DHCPINFORM Messages
DHCPINFORMs should be handled the way [DHCP], section 4.4.3 describes β¨ No changes are necessary, so this one's a freebie π§
2.6. Message Option
If the DHCP server wants to tell a client why it isn't 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 gets a response with the Message option set, it MUST pass that information along to the administrator of the DHCP client π₯ How that info gets shown is implementation dependant, so it's up to each build to decide πΈ
3. Security Considerations π
Real talk, DHCP per se doesn't come with any authentication or security mechanisms π The potential attack surfaces are covered in section 7 of the DHCP protocol specification [DHCP], so go read that if you're nosy like me π
This mechanism does add one more potential attack, and it's a serious one. Malicious users on a subnet might respond to every DHCP request with replies telling DHCP clients that they should NOT auto-configure on the local wire. On a network where Auto-Configuration is required, this would stop every DHCP client from choosing an address. Not me being dramatic, this is a big deal π€π¨
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 give themselves an IP address (in a specific subnet) when no DHCP server answers, and this was causing headaches for lots of sites that actually rely on machines NOT getting IP addresses when the DHCP servers don't know them π©
Walter Wong proposed a solution that would let DHCP servers tell clients not to do this π His first idea wouldn't work without slight changes to DHCP itself, so this document describes those changes π
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 π
π¦ where this page comes from
- ietf: rfc2563 1999-05
- π girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms