In environments with managed switches and VLANs which do not support the Link Layer Discovery Protocol (LLDP) it may be necessary to pass the VLAN identifier to Lync Phone Edition devices using DHCP as briefly discussed in the Lync Server 2010 documentation. But exactly how to configure this is not actually covered in the documentation, so this article covers the process in detail.
What is confusing about the current TechNet documentation is that it states that the VLAN ID is part of Option 43, but as I discussed in a previous article Option 43 is really not a single option but instead is a categorization for customized, vendor-specific settings to be passed to DHCP clients. Furthermore the documentation does not explain how to actually configure this either.
Previously this could be setup for Communicator Phone Edition but the only directions explaining the actual process were included in the original 2007 version release notes. (They were strangely omitted in the 2007 R2 version.) What is worse is that those directions are very basic and if followed verbatim will not work due to improper use of character case in the class ID value.
The Phone Edition device boots up and sends a DHCP request out on the network. In this request the device client asks for Option 60 with a value of CPE-OCPHONE from the DHCP Server. If this value is not currently defined on the server then the default VLAN is used (or none if there is no VLAN configured or an unmanaged network is used).
If the DHCP Server is configured to pass a VLAN ID then it responds to the request for vendor-specific settings by passing Option 10 which contains the defined VLAN ID. The device client immediately gives up the initial IP address presented on the default VLAN and and then sends a new request over the now-known VLAN.
At this point the remainder of the connection process continues and the device contacts a Time Server and then the Lync registrar.
In order to provide the desired VLAN ID to Lync Phone Edition clients perform the following steps on the a Windows DHCP server to manually define a new vendor class and configure the desired DHCP option.
Define New Vendor Class
- In DHCP Manager right-click IPv4 and select Define Vendor Classes…
- Add a new class and configure the class settings with the information listed below.
Display Name MSCPEClient Description UC Vendor Class Id ACSII Data CPE-OCPHONE
The name and description can be anything unique so these are just examples. The class data is what is important and must be set exactly as shown. If the DHCPutil tool was already run on this server then there should already be an existing MSUCClient class which is for storing the Aries-specific PIN authentication settings. This same class cannot be used for the VLAN ID and a new class must be created as the data strings are unique and much match specifically to what the client is programmed to accept. This is due to the fact that both the Tanjay and Aries phones leverage the CPE-OCPHONE class ID for VLAN information, while the Aries phone also request information from the MS-UC-Client class ID.
The resulting configuration should look like the following example.
Also be aware that this data is case-sensitive. The erroneous example below (which was taken directly from the CPE 2007 release notes) shows that if the incorrect case is used the binary data will actually be different as uppercase and lowercase ACSII letters have different values. Notice that the last 4 digit groupings below are not the same as the correct setting shown above.
Once saved, the new vendor class should be listed as shown below.
Set Predefined Options
- In DHCP Manager right-click IPv4 and select Set Predefined Options…
- In the Option Class field select the newly created class (e.g. MSCPEClient).
- Click Add and enter the following information in the Option Type window.
Name VLANID Data Type Word Code 10 Description VLAN Identifier
Again, the name and description fields can be customized but the data type and code must be entered exactly as shown. Also make sure that the Array option is not enabled.
- Save the changes and leave the default value at null (0x0). Alternatively if a single VLAN will be used for all device then that value could be set here, but this is simply a default value which only pre-populates the scope/server option when later configured.
Define DHCP Option
- Configure either the Server Options or Scope Options and click on the Advanced tab. Normally the setting would be added to the server level but if different scopes will use different VLAN IDs then set this at the scope level.
- In the Vendor Class field select the newly created class (e.g. MSCPEClient).
- Enable option 010 VLANID and set the Data to the desired value in decimal (e.g. 800).
Once saved the value will automatically be converted to hexadecimal (e.g. 0x320).
A simple reboot of the phone may not trigger an immediate update so go ahead and perform a soft reset (press and hold * and # while powering on the device) in order to wipe the current configuration on the device. After the reset is completed the devices should pick up and adhere to the defined VLAN ID.