All about DHCP vendor classes and user classes.

Fundamentally vendor classes were introduced to re-use the option id’s in a vendor specific way. Since these are options specific to a given vendor and their scope is very limited to that vendor, it cannot afford to have a option in the list 1-255 as defined in the RFC 2132. This is because if each vendor publishes his option within the range 1-255 as defined in the RFC 2132, then the option id’s will soon run out. The way this problem was solved was bringing in a new field in the DHCP packet called the vendor-specific options. This field can contain those options which are specific to the vendor. The option id’s for the vendor specific options need to be unique only for that vendor class. Other vendor classes can re-define these option-ids. An Example: Option id 1 in the “Microsoft Windows 2000” vendor class corresponds to the “Disable NetBios” option. The same option id 1 can correspond to say “XYZ” on the vendor class “ABC”. What basically happens is we define a new namespace. Thus a vendor class is represented by the vendor class name and the list of options defined for those clients who belong to that vendor class. In Windows DHCP server, those options which are defined in the RFC 2132 are put into a vendor class named “DHCP Standard options”. This is a vendor class only in the sense that it defines a list of options. These options are not sent in the vendor-specific options field in the DHCP packet. These are sent in the normal options field in the DHCP packet.

User classes are fundamentally different. User class enables partitioning the client machines into distinct classes that can receive different options values based on their user class.

A list of options is defined for a given vendor class. Definition of a option means we define the data type of the option and its name etc.

This list of vendor-options maybe configured for a given user class. Configuration of an option means assigning it a value. This configuration of a given vendor class option can be done for each user class. Thus, the value of a given option is determined by the user class while the list of options that are sent is chosen by the vendor class. That is, the vendor class determines the fact that the DHCP server will send the router option whereas the user class determines whether the value of the router option is x or it is

Note carefully: The server comes along with a default user class. This user class is used when the client does not have any membership to any user class. So when the server wants to find the option value for a given option for a given client, it first checks out if the option is configured for the client’s user class. If not or if the client has not sent any user class, then it picks up the options corresponding to the default user class. If even this is not configured, the server does not send this option. L

The Microsoft DHCP server also comes with a special vendor class also called as “DHCP Standard options” as mentioned above. The options corresponding to this vendor class has all standard option definitions (ones defined in RFC2132). This set of options will be sent no matter what the vendor class the client belongs to. As with all vendor class options, You can configure the options belonging to this vendor class for specific user classes.

Now a client when it sends its request will get two sets of options:

1)       Options defined in the default vendor class: “DHCP standard options” These options are added to the options field in the DHCP packet.

2)       Options defined in the vendor class to which it belongs to say “DHCP standard options”  These options are encapsulated inside the vendor specific options option field in the DHCP packet.

In each case,

If the options are configured for the user class to which the client belongs to, then those options are returned.

If not, and if the options are configured only at default user class, then option values at the default user class is returned.

If the options are not configured neither at the user class nor at the default user class, then that option is not sent. The following links offers some more information about vendor classes and user classes:

1)       Difference between user class and vendor class.

2)      Some more stuff regarding this.(Non-Microsoft site)



Comments (8)
  1. How can I modify the option 60 in Windows XP client. It is currently at "MSFT 5.0" value.

    thank you

  2. A.J.Anto says:

    I am afraid that you cannot change the vendor class identfier of your DHCP client. The vendor class identifier is usually hard coded in the DHCP client implementation. Btw, i am not sure why you want to change it………..

    You can change the user class id of dhcp client through ipconfig. but i am sure if thats what u want………

  3. Ramprasad V says:

    Is it the IP-address can be issued to client based on user class?. If yes,Which one will be given preference wither Vendor class or user class.(Assume both vendor class and user class are configured on both DHCP server and client.

  4. The following is a question i received from one of the internal groups and my answer to the same. I hope…

  5. David M says:

    I recently found an issuue where I set up a Vendor class for a scope and set the vendor options (181 and 188) to set a tfpt server address and file name for a configuration file.  The server is windows 2003, sp2 and is "vanilla" in many respects.  

    When I hook up my device, sometimes it receives the cfg file and sometimes it does not.  Using ethereal, I can see that the times it succeeds, it does receive info from the server validating it’s vendor class id…

    when the process fails, there is no sign of any vendor class info coming from the server.  It appears as though there is a bug with dhcp, intermittently failing to send the vendor class information…

    Anyone seen anything like this before?  

    In looking around, I have found no other posts reporting this error.  I can reproduce the problem in my lab.  

    FYI Maybe you’ll see this again.

    David M

  6. Pankaj says:


    Could you please provide us your email contact info?



Comments are closed.

Skip to main content