The User Class Option for DHCP
Extracted elements (15)
Each User Class value (User_Class_Data_i) is treated as an opaque field, meaning the protocol defines no structure or semantics for the content, leaving interpretation entirely to the server implementation.
The use of multiple User Classes by a DHCP client should be based on the specific server implementation and configuration, because server interpretation of multiple class specifications is implementation- or configuration-dependent rather than standardized.
The User Class option is intended to be user-configurable so that administrators can use it to distinguish client populations — for example, routing accounting department clients to different printers than marketing department clients.
The use of multiple User Class values in a single option requires knowledge of the target server's implementation and configuration, as there is no standardized behavior for how servers must handle multiple simultaneous class specifications.
A server that is not equipped to interpret any given user class specified by a client MUST ignore it (although it may be reported).
DHCP clients implementing this option SHOULD allow users to enter one or more user class values.
If a server recognizes one or more user classes specified by the client but does not recognize one or more other user classes, the server MAY use the user classes it recognizes.
The value in UC_Len_i does not include the length field itself and MUST be non-zero. The minimum value of Len when any User Class Data instances are present is two (Len = UC_Len_1 + 1 = 1 + 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.
The User Class option (code 77) allows a DHCP client to optionally identify the type or category of user or applications it represents. A DHCP server uses this option to select the address pool and/or configuration parameters to assign to the client.
Option code 77, already assigned by IANA, is designated as the User Class Option for DHCP. This document formally specifies its use.
Because there is no way to authenticate a client, it is impossible to verify that a client is authorized to claim membership in a particular User Class. Operators should not rely on User Class for access control to sensitive resources.
DHCP currently provides no authentication or security mechanisms. As a result, a DHCP server cannot check if a client or user is authorized to use a given User Class, introducing a vulnerability when User Class is used to gate access to special parameters such as a particular database server.
Each User Class Data instance is encoded as UC_Len_i (1 octet length) followed by UC_Len_i octets of opaque User_Class_Data_i. The total option Len equals the sum of all UC_Len_i values plus m (the number of User Classes): Len = UC_Len_1 + UC_Len_2 + ... + UC_Len_m + m.
The User Class option is encoded as: Code=77 (1 octet), Len=N (1 octet), followed by N octets of User Class Data. The Value field consists of one or more User Class Data instances.