RFC 3004

The User Class Option for DHCP

๐Ÿ“… published November 2000, from ietf

RFC 3004: The User Class Option for DHCP โœจ

Okay bestie, this is the spec for Option 77, the User Class option. It lets a DHCP client say what kind of user or app it is, so the server can hand out the right address pool and settings ๐ŸŽ€

  • Category: Standards Track ๐ŸŒธ
  • Date: November 2000 ๐Ÿ“…
  • Working group: Network Working Group
  • Authors: Glenn Stump (IBM), Ralph Droms (Cisco Systems), Ye Gu (Microsoft), Ramesh Vyaghrapuri (Microsoft), Ann Demirtjis (Microsoft, listed as A. Demirtjis in the header), Burcak Beser (Pacific Broadband Communications), and Jerome Privat (Northstream AB) ๐Ÿ‘‘
  • Obsoletes / Updates: The title block doesn't list anything this RFC obsoletes or updates ๐Ÿฆ‹

Status of this Memo

This doc specifies an Internet standards track protocol for the Internet community, and it's requesting 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 (2000). All Rights Reserved. ๐Ÿ”’

Abstract

Okay so this option is used by a Dynamic Host Configuration Protocol (DHCP) client to optionally tell the server what type or category of user or applications it represents ๐Ÿงš The info in this option is an opaque field that stands for the user class the client belongs to. Based on that class, a DHCP server picks the right address pool to give the client an address from, plus the right configuration parameters. This option should be configurable by a user ๐Ÿ’œ

1. Introduction ๐ŸŒˆ

DHCP admins can define specific user class identifiers to convey info about a client's software configuration or about its user's preferences โœจ For example, the User Class option can be used to configure all clients of people in the accounting department with a different printer than clients of people in the marketing department ๐Ÿ–จ๏ธ

2. Requirements Terminology ๐Ÿ“–

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 RFC 2119 [3] ๐Ÿซถ

3. DHCP Terminology ๐Ÿฆ‹

  • "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 ๐ŸŒธ
  • "binding" A binding is a collection of configuration parameters, including at least an IP address, associated with or "bound to" a DHCP client. Bindings are managed by DHCP servers ๐Ÿ”ฅ

4. User Class option ๐Ÿ’…

Okay, this is the main event โœจ The User Class option is how a DHCP client optionally identifies the type or category of user or applications it represents ๐ŸŽ€ A DHCP server uses it to choose the address pool it allocates an address from, and/or to select any other configuration option ๐Ÿ‘‘

This option is a DHCP option [1, 2] ๐Ÿงš

This option MAY carry multiple User Classes. Servers may interpret the meanings of multiple class specifications in an implementation dependent or configuration dependent manner, so using multiple classes from a client should be based on the specific server implementation and configuration that will process that User class option ๐Ÿ™ˆ

The format of this option is as follows (it's giving diagram energy ๐Ÿ“):

         Code   Len   Value
        +-----+-----+---------------------  . . .  --+
        | 77  |  N  | User Class Data ('Len' octets) |
        +-----+-----+---------------------  . . .  --+

Here, Value is made of one or more instances of User Class Data. Each instance of User Class Data is formatted like this:

         UC_Len_i     User_Class_Data_i
        +--------+------------------------  . . .  --+
        |  L_i   | Opaque-Data ('UC_Len_i' octets)   |
        +--------+------------------------  . . .  --+

Each User Class value (User_Class_Data_i) is an opaque field ๐Ÿ”ฎ The value in UC_Len_i doesn't include the length field itself and MUST be non-zero. Let m be the number of User Classes carried in the option. The length of the option as specified in Len must be the sum of the lengths of each of the class names plus m: Len= UC_Len_1 + UC_Len_2 + ... + UC_Len_m + m. If any instances of User Class Data are present, the minimum value of Len is two (Len = UC_Len_1 + 1 = 1 + 1 = 2) ๐Ÿงฎ

The Code for this option is 77 ๐Ÿ’œ

A server that isn't equipped to interpret a given user class specified by a client MUST ignore it (although it may be reported). If a server recognizes one or more user classes the client specified, but doesn't recognize one or more other user classes the client specified, the server MAY use the user classes it recognizes ๐Ÿซฃ

DHCP clients implementing this option SHOULD allow users to enter one or more user class values ๐ŸŒŸ

5. IANA Considerations ๐Ÿ—‚๏ธ

Option 77, which IANA has already assigned for this purpose, should be used as the User Class Option for DHCP โœจ

6. Security Considerations ๐Ÿšจ

Heads up, this section is serious business ๐Ÿ’€

DHCP currently provides no authentication or security mechanisms. The potential exposures to attack are covered in section 7 of the protocol specification [1].

This lack of an authentication mechanism means a DHCP server cannot check whether a client or user is authorized to use a given User Class. This is an obvious vulnerability when using the User Class option ๐Ÿ˜ญ For example, if the User Class is used to hand out a special parameter (say, a particular database server), there's no way to authenticate a client, so it's impossible to check whether that client is authorized to use that parameter ๐Ÿ™…โ€โ™€๏ธ

7. References ๐Ÿ“š

  • [1] Droms, R., "Dynamic Host Configuration Protocol", RFC 2131, March 1997.
  • [2] Alexander, S. and R. Droms, "DHCP Options and BOOTP Vendor Extensions", RFC 2132, March 1997.
  • [3] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997.

8. Acknowledgments ๐Ÿซถ

This document is based on earlier drafts by Glenn Stump, Ralph Droms, Ye Gu, Ramesh Vyaghrapuri and Burcak Beser. Thanks to Ted Lemon, Steve Gonczi, Kim Kinnear, Bernie Volz, Richard Jones, Barr Hibbs and Thomas Narten for their comments and suggestions ๐Ÿ’–

9. Authors' Addresses ๐Ÿ’Œ

Glenn Stump
IBM Networking Software
P.O. Box 12195
RTP, NC 27709

Phone: 919 301 4277
EMail: stumpga@us.ibm.com


Ralph Droms
Cisco Systems
300 Apollo Drive
Chelmsford, MA 01824

Phone: 978 244 4733
EMail: rdroms@cisco.com


Ye Gu
Microsoft Corporation
One Microsoft Way
Redmond, WA 98052

Phone: 425 936 8601
EMail: yegu@microsoft.com

Ramesh Vyaghrapuri
Microsoft Corporation
One Microsoft Way
Redmond, WA 98052

Phone: 425 703 9581
EMail: rameshv@microsoft.com


Burcak Beser
Pacific Broadband Communications
3103 North 1st Street
San Jose, CA 95134

Phone: 408 468 6265
Email: Burcak@pacband.com


Ann Demirtjis
Microsoft Corporation
One Microsoft Way
Redmond WA 98052

Phone: 425 705 2254
EMail: annd@microsoft.com


Jerome Privat
Northstream AB
Espace Beethoven 1
1200 Route des Lucioles
BP 302
06906 Sophia Antipolis Cedex
France

Phone: +33 4 97 23 40 45
Fax: +33 4 97 23 24 51
Mobile: +33 6 13 81 76 71
Email: jerome.privat@northstream.se

Copyright (C) The Internet Society (2000). 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