Using DHCP option 43 (Vendor Specific Information)

From CoolSolutionsWiki

Contents

What is Vendor Specific Information

In the DHCP protocol, every normal option is defined by an option code which is a number between 0 and 255. To avoid conflicts between options, new options must be registered with a standard body and be published as an RFC. RFC2132 for example contains the list of the most popular DHCP options. As the DHCP protocol has become more and more popular over the time, hard and software vendors have started using the DHCP protocol to distribute all kinds of configuration options for their network devices or for their software. Now the problem is that the number of official options is limited and the process to get a new option recognized is difficult. For this reason, a new mechanism was introduced to make it easier for vendors to distribute their own proprietary information without clashing with other vendors and without having to register new options each time they decide the need them. This is achieved through the DHCP option 43 (Vendor Specific Information). This option works the following way:

For each vendor there is a private table of DHCP options which is kept separately by the DHCP server. These options are numbered similarly to the main DHCP options but the numbers refer to the private option table for this vendor. So the same numbers that are already used for global options can be reused for private options with a completely different meaning. Each vendor is identified by a vendor string. Now when a DHCP client asks for vendor specific options it makes a request with option 43 using the vendor string and a list of requested vendor specific options. The server then replies with option 43, including once again the vendor string and the list of replies for the various options, all the data being packed into the global option 43.

To correctly support option 43, the DHCP server must have the ability to manage multiple option tables, one table for the global options and one table for each Vendor for the vendor specific options.

Vendor Specific Information on NetWare

The NetWare DHCP server does not have the required functionality to correctly support option 43. It can’t handle multiple option tables for different vendors. However a very limited support for option 43 has been added starting with NetWare 6.5 SP6.

Limitations of option 43 support on NetWare

  • There is no support for defining option 43 for multiple vendors. You can only create option 43 for one single vendor. The DHCP server does not check the vendor in the client request but simply always returns its value for option 43 when asked.
  • The administration interface is limited in that the administrator has to encode the value for option 43 by hand and enter it as a hex string.
  • Currently, only the DNS/DHCP plugin for iManager can manage option 43. Support for the standalone java tool will come later.
  • If your DNS/DHCP locator object was create during early NetWare 5.x times, it might have a wrong definition for option 43. You will need to update your global DHCP options to correct this definition (see next section in this document).

Verifying and fixing your global DHCP options

To verify whether your DHCP options are correct, you use iManager. In iManager, under the "DHCP" task, first set your DNS/DHCP scope. Then select "Global DHCP Configuration" and use the option "View/Set Global Preferences". Click OK and then click 3 times "next" till you get to the last screen called "Global DHCP Preferences". In the table you see here, check the option 43. You may see 2 possible definitions

Wrong: 43 List of (1 Byte) Unsigned Integer Vendor specific information
Correct: 43 Vendor-Specific Information format Vendor Specific Option

If you have the wrong definition, you need to correct it. For this, you start ConsoleOne and you go to your locator object. This is the object called "DNS-DHCP" and has a little cube with a question mark as icon. You select the properties of this object and go to the "other" tab. Here you lick on the "+" next to the option "DNIP:CfgPreferences". You now get a list of all global DHCP options, but in hex. Locate the line that reads 00000001000000240000002... and double click on it. You should now see a few more digits and it should show something like 00000001000000240000002B0... Make sure it's the correct entry you see. 2B which is the hex value for option 43 must be in the string. If you verified that you found the correct string, move to one of the neighbour strings and back to it again so that the delete button becomes active again. Now press "delete" to delete the erroneous definition. Then click on "OK" to validate the change you made.

Next you have to create the correct definition again. Fortunately, Novell has a tool which does this for you. You go to the server console of a fully patched server and you type the command "LOAD DNIPINST -f". You login as a user with admin rights to the container holding the locator object and you continue. It will tell you that the objects already exist, but it will nevertheless have updated your locator object to add any missing definitions including the correct version of option 43. You can now use iManager again to verify that you have the correct syntax.