RFC 3942

Reclassifying Dynamic Host Configuration Protocol version 4 (DHCPv4) Options

πŸ“… published November 2004, from ietf

RFC 3942: Reclassifying Dynamic Host Configuration Protocol version 4 (DHCPv4) Options πŸ’–

Okay bestie, this is RFC 3942 πŸŽ€ It was written by Bernard Volz at Cisco Systems, Inc. and published in November 2004 from the Network Working Group. It's a Standards Track document, so it's a real protocol standard and not just a vibe. It updates RFC 2132, and the header doesn't list any documents it obsoletes. πŸ¦‹


Table of Contents πŸ“œ

   1.  Introduction . . . . . . . . . . . . . . . . . . . . . . . . .  2
   2.  Requirements Notation  . . . . . . . . . . . . . . . . . . . .  2
   3.  Background . . . . . . . . . . . . . . . . . . . . . . . . . .  2
       3.1.  Publicly Defined Options Range . . . . . . . . . . . . .  2
       3.2.  Site-Specific Options Range  . . . . . . . . . . . . . .  3
   4.  Reclassifying Options  . . . . . . . . . . . . . . . . . . . .  3
   5.  Security Considerations  . . . . . . . . . . . . . . . . . . .  4
   6.  IANA Considerations  . . . . . . . . . . . . . . . . . . . . .  5
   7.  Acknowledgements . . . . . . . . . . . . . . . . . . . . . . .  5
   8.  References . . . . . . . . . . . . . . . . . . . . . . . . . .  5
       8.1.  Normative References . . . . . . . . . . . . . . . . . .  5
       8.2.  Informative References . . . . . . . . . . . . . . . . .  6
   Author's Address . . . . . . . . . . . . . . . . . . . . . . . . .  6
   Full Copyright Statement . . . . . . . . . . . . . . . . . . . . .  7

Status of this Memo 🌸

This document specifies an Internet standards track protocol for the Internet community, and it asks 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. πŸ’…

Copyright (C) The Internet Society (2004). 🫢

Abstract ✨

This document updates RFC 2132 to reclassify DHCPv4 option codes 128 to 223 (decimal) as publicly defined options, which IANA will manage in accordance with RFC 2939. It also directs IANA to make these option codes available for assignment as publicly defined DHCP options for future options. πŸ”₯

1. Introduction 🧚

So the DHCPv4 [RFC2131] publicly defined options range, which is options 1 - 127, is nearly used up 😭 Efforts like [RFC3679] help stretch this space out, but eventually it's going to run out anyway.

This document reclassifies a big chunk of the site-specific option range, which hasn't really been used for what it was originally meant for, so the publicly defined options space can grow. 🌈

2. Requirements Notation πŸ’œ

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]. πŸŽ€

Bestie, these are the official requirement words, so read them with their exact meaning. Don't freestyle it. πŸ‘‘

3. Background πŸ¦‹

The DHCP option space (0 - 255) is split into two ranges [RFC2132]:

  1. 1 - 127 are publicly defined options, now allocated in accordance with [RFC2939].
  2. 128 - 254 are site-specific options.

Options 0 (pad) and 255 (end) are special and defined in [RFC2131]. 🌸

3.1. Publicly Defined Options Range πŸ’…

The publicly defined options space (1 - 127) is nearly exhausted, and it's giving stressful energy πŸ’€ Recent work in [RFC3679] buys more time, since several allocated but unused option codes got reclaimed. From time to time, someone could review the space to see if there are other option codes that can be reclaimed. ✨

We really do want a longer-term fix for the eventual exhaustion of the publicly defined options space πŸ™ The DHC WG looked at several solutions:

  1. Using options 126 and 127 to carry 16-bit options, as Ralph Droms first proposed in late 1996. Honestly this one hits the first option assigned to the new space way too hard, because it means implementing the 16-bit option support. That's why options 126 and 127 got reclaimed [RFC3679]. 😭
  2. Using a new magic cookie and a 16-bit option code format. Not gonna lie, this one has problems too πŸ™ˆ It:
    • penalizes the first option assigned to this new space, since it requires significant changes to clients, servers, and relay agents,
    • could adversely impact existing clients, servers, and relay agents that fail to properly check the magic cookie value,
    • requires support of both message formats for the foreseeable future, and
    • requires clients to send multiple DHCPDISCOVER messages -- one for each magic cookie.
  3. Reclassifying a portion of the site-specific option codes as publicly defined. This one's the cleanest because the impact is minimal, since only the sites already using options in the reclassified range need to renumber their options. πŸ‘‘

3.2. Site-Specific Options Range πŸ“

The site-specific option range is pretty huge (127 options in all) and barely gets used 😳 It was meant to support local configuration options within a single site, and honestly it's hard to believe any site would need 127 of them. Plus, lots of DHCP client implementations don't clearly document how to request site-specific options from a server or how applications can pull out the returned option values. 🫠

Some vendors have used site-specific option codes in ways that go against what those options were for. They configure features of their products with them, so the options end up being specific to lots of sites. This could cause trouble if a site that's already using the same site-specific option codes for other stuff deploys one of those vendors' products, or if two vendors pick the same site-specific options. Yikes 😬

4. Reclassifying Options 🌟

The site-specific option codes 128 to 223 are officially reclassified as publicly defined options. That leaves 31 site-specific options, 224 to 254. πŸŽ‰

So vendors that already use site-specific options in the reclassified range can publish their usage and ask for an official assignment of that option number, the reclassification goes like this:

  1. The reclassified options (128 to 223) get put in the "Unavailable" state by IANA. They aren't available for publicly defined options yet. πŸ”’
  2. Vendors currently using one or more of the reclassified options have 6 months from this RFC's publication date to tell the DHC WG and IANA which option numbers they're using and agree to document that usage in an RFC. IANA then moves these options from "Unavailable" to "Tentatively Assigned". 🫢

Vendors have 18 months from this RFC's publication date to start the documentation process by submitting an Internet-Draft.

NOTE: If multiple vendors of an option number come forward and can show that their usage is in reasonably wide use, none of the vendors will be allowed to keep the current option number, and they MUST go through the normal process of getting a publicly assigned option [RFC2939]. 🚨

  1. Any options still classified as "Unavailable" 6 months after the RFC publication date get moved to the "Unassigned" state by IANA. These options can then be assigned to any new publicly defined options in accordance with [RFC2939]. πŸ¦„
  2. For options in the "Tentatively Assigned" state, vendors have 18 months following this RFC's publication date to submit an Internet-Draft documenting the option. The documented usage MUST be consistent with the existing usage. Once the option usage is published as an RFC, IANA moves the option to the "Assigned" state. πŸ’–

If no Internet-Draft gets published within the 18 months, or if one of these Internet-Drafts expires after the 18 months, IANA moves the option to the "Unassigned" state. The option can then be assigned to any new publicly defined options in accordance with [RFC2939]. πŸ’€

Sites that are currently using site-specific option codes in the reclassified range SHOULD take steps to renumber those options to values in the remaining range. If a site needs more than 31 site-specific options, the site must switch to using suboptions, the same way other options have done, like the Relay Agent Information Option [RFC3046]. 🌈

5. Security Considerations πŸ”

Okay, this section is serious business, so pay attention 🚨

This document doesn't provide any security on its own, and it doesn't change existing DCHP security as described in [RFC2131]. πŸ›‘οΈ

6. IANA Considerations πŸ“‹

IANA is requested to:

  1. expand the publicly defined DHCPv4 options space from 1 - 127 to 1 - 223. The new options (128 - 223) are to be listed as "Unavailable" and MUST NOT be assigned to any publicly defined options. πŸ”’
  2. receive notices from vendors that have been using one or more of the options in the 128-223 range, saying they're using the option and willing to document that usage. IANA will list these options as "Tentatively Assigned". 🫢
  3. change the listing of any options listed as "Unavailable" to "Available" 6 months from this RFC's publication date. These options may now be assigned in accordance with [RFC2939]. πŸŽ‰
  4. change the listing of any options listed as "Tentatively-Assigned" to "Unavailable" 18 months from this RFC's publication date, and periodically after that as long as there's an option listed as "Tentatively-Assigned", if no un-expired Internet-Draft exists documenting the usage. ⏳

Intellectual Property ✨

okay bestie, the IETF is basically saying "we are NOT picking a side" on whether any rights apply to the tech in this doc πŸ™ˆ It doesn't claim whether anyone's patents or copyrights cover it, whether licenses exist, or whether anyone looked into that. 🫣 For the IETF's rules on rights in IETF Documents, check BCP 78 and BCP 79 πŸ’…

Copies of IPR disclosures made to the IETF Secretariat live in the IETF's online IPR repository at http://www.ietf.org/ipr πŸ—‚οΈ So do any assurances of licenses that might be made available, plus the result of any attempt to get a general license or permission for implementers or users to use those proprietary rights. πŸ”

The IETF also invites anyone to tell it about any copyrights, patents, patent applications, or other proprietary rights that might cover tech needed to implement this standard. πŸ“¬ Send that info to ietf-ipr@ietf.org πŸ’Œ

Acknowledgement 🫢

Funding for the RFC Editor function is currently provided by the Internet Society. 🌸 Thank you, Internet Society, you're literally keeping the lights on! πŸ’œ

πŸ“¦ where this page comes from