DHCP Vendor Class Polycom Phones
February 15, 2017 Leave a comment
Bit of a change of pace for me today. No Essentials and No PowerShell.
I am setting up a new DHCP Server for a client. It is a small LAN that has no VLANs or any other advanced configuration, which leads their Polycom phones to sharing the same configuration as the client computers. This is generally OK of course however I wanted to specify specific NTP information to the phones. Of course I could do this with DHCP Reservations tied to MAC addresses, but I decided that after twelve years working in IT, I should probably try out DHCP Vendor Options.
Firstly I tried to google it, but I have to say I found a lot of the instructions confusing and not really step by step to go from no configuration, to fully configured.
So I downloaded Wireshark on my own DHCP Server and setup a filter to monitor DHCP traffic (port 67 or port 68)
I rebooted a single phone I had here in the office and watched the DHCP packets come in.
Finding a DHCP Discover Packet we can see the Vendor class identifier.
Looking at the frame information, we can see the binary data for the Vendor class. Luckily Wireshark helpfully highlights the binary data when you select the relevant piece of the frame.
Even more helpful is when you hover over a binary value it highlights the ASCII value. Here we can see that both P and 50 are highlighted in yellow.
So given this information, we know that the phone in question is a Polycom-VVX400, the Vendor Class identifier is also Polycom-VVX400 which has a binary value of: 50 6f 6c 79 63 6f 6d 2d 56 56 58 34 30 30.
We can now use this information to create our Vendor Class in DHCP.
Inside DHCP Management right click your scope type (ipv4) and click on Define Vendor Classes.
In the DHCP Vendor Classes window, click on Add.
Enter a Display Name, a Description if you want to and the Binary Value.
As you type the Binary you will see the ASCII automatically populates and allows you to see what the binary translates to. Enter the Binary data and Click on OK.
Click on Close.
Now that we have defined our Vendor Class we can define some options to go with it. Common options for this seem to be option 66 for bootfiles however the process to create an option is the same regardless of which option you are specifying. I want to define option ‘042 NTP Servers’ to make sure I set my phones to use an external NTP Server.
Right click your server name and this time go to Set Predefined Options.
Using the Option Class drop down you can see Polycom-VVX400 listed.
You can see Option Name is currently empty.
Click on Add, and fill out the information required for your option type.
In this case NTP Servers is option 042, it is an array of IP Addresses.
We can now choose to define this option as a server option or a scope option.
I’m going to set it as a scope option, so right click scope options.
Switch to advanced and then use the dropdown to select Polycom-VVX400
As we have only defined one option for our Vendor Class we only have one option listed that we can configure. put a tick in the box and then the fields become available.
For this example I am setting my phones to use an external time server 1.uk.pool.ntp.org. I can enter that and use the resolve button to grab the IP Address. Click on Add to add it to the list and then click on OK.
If you switch back to Scope Options you can now see your new option defined with the Vendor Class and value.
Now if you reboot your Phone it will pickup this information from DHCP.
In addition to this method, Server 2012 introduced a feature called Policies. Without going into too much detail as this post is already long enough, Policies allow you to set conditions based on a number of variables and supports wildcard characters.
Using a wildcard on a Vendor Class requires you to add a Vendor Class with the first portion of the ID, in this case ‘Polycom’ (50 6F 6C 79 63 6f 6D).
Here is a chart to help work out your Binary/ASCII Values.