{"id":5251,"date":"2013-07-12T16:00:25","date_gmt":"2013-07-12T14:00:25","guid":{"rendered":"https:\/\/ingmarverheij.com\/?p=5251"},"modified":"2013-11-30T12:40:22","modified_gmt":"2013-11-30T11:40:22","slug":"microsoft-vendor-specific-dhcp-options-explained-and-demystified","status":"publish","type":"post","link":"https:\/\/ingmarverheij.com\/en\/microsoft-vendor-specific-dhcp-options-explained-and-demystified\/","title":{"rendered":"(Microsoft) Vendor specific DHCP options explained and demystified"},"content":{"rendered":"<p>DHCP servers can send <strong>vendor specific <\/strong>options to clients to granularly control configuration. Microsoft clients are out-of-the-box prepared to <strong>receive <\/strong>Microsoft Windows specific options while Microsoft DHCP servers have the ability to <strong>send <\/strong>DHCP options only received by Windows clients.<\/p>\n<p>Some applications use the <strong>content <\/strong>of a DHCP option to receive <strong>configuration<\/strong> data, for example <em>Microsoft Lync <\/em>or <em>RES Workspace Manager<\/em>. Since this applications only run on Microsoft Windows its no more than logical to only send this option to Windows clients.<\/p>\n<p>In this article I\u2019ll explain how this mechanism works and how you can send Microsoft Windows specific DHCP options from a non-Microsoft DHCP server (like a Linux or Lucent-Alcatel VitalQIP appliance).<\/p>\n<p><!--more--><\/p>\n<h1>Vendor Classes<\/h1>\n<p>The <strong>vendor class <\/strong>is used by DHCP clients to optionally identify the vendor and configuration. Examples of vendor classes are:<\/p>\n<ul>\n<li><span style=\"font-family: 'Courier New';\">\u201cCisco Systems, Inc. IP Phone CP-7940\u201d<\/span> for a <a href=\"https:\/\/www.cisco.com\/en\/US\/products\/hw\/phones\/ps379\/ps1854\/index.html\" target=\"_blank\">Cisco Unified IP Phone 7940G<\/a><\/li>\n<li><span style=\"font-family: 'Courier New';\">\u201calcatel.noe.0\u201d <\/span>for an <a href=\"https:\/\/enterprise.alcatel-lucent.com\/?product=8SeriesIPTouchPhones&amp;page=overview\" target=\"_blank\">Alcatel IP touch phone<\/a><\/li>\n<li><span style=\"font-family: 'Courier New';\">\u201cMSFT 5.0\u201d <span style=\"font-family: Arial;\">for all Windows 2000 clients (and up)<\/span><\/span><\/li>\n<li><span style=\"font-family: 'Courier New';\">\u201cMSFT 98\u201d <span style=\"font-family: Arial;\">for all Windows 98 and Me clients<\/span><\/span><\/li>\n<li><span style=\"font-family: 'Courier New';\">\u201cMSFT\u201d <\/span><span style=\"font-family: Arial;\">for all Windows 98, Me and 2000 clients<\/span><\/li>\n<\/ul>\n<p>As you can see there\u2019s no naming <strong>convention <\/strong>or <strong>regulation <\/strong>around the vendor class, but the implementation seems clear. Microsoft claimed <strong>three <\/strong>vendor classes where the <span style=\"font-family: 'Courier New';\">\u201cMSFT 5.0\u201d<\/span> is the most used since it overrules <span style=\"font-family: 'Courier New';\">\u201cMSFT\u201d<span style=\"font-family: Arial;\"> (and the <\/span><a href=\"https:\/\/www.netmarketshare.com\/report.aspx?qprid=11&amp;qpaf=&amp;qpcustom=Windows+98&amp;qpcustomb=0\" target=\"_blank\"><span style=\"font-family: Arial;\">market share<\/span><\/a><span style=\"font-family: Arial;\"> of Windows 98 is around <\/span><a href=\"https:\/\/www.netmarketshare.com\/report.aspx?qprid=11&amp;qpaf=&amp;qpcustom=Windows+98&amp;qpcustomb=0\" target=\"_blank\"><span style=\"font-family: Arial;\">0.01%<\/span><\/a><\/span><span style=\"font-family: Arial;\">).<\/span><\/p>\n<p>&nbsp;<\/p>\n<h6><\/h6>\n<h6><span style=\"font-weight: bold;\">Microsoft DHCP Server<\/span><\/h6>\n<p>In a <strong>Microsoft <\/strong>DHCP server the vendor classes for Windows Windows machines are <strong>built-in<\/strong>, others can be <strong>added <\/strong>via the context menu of the protocol stack (IPv4 or IPv6) and selecting <strong>Define Vendor Classes.<\/strong><\/p>\n<p><a href=\"https:\/\/ingmarverheij.com\/wp-content\/uploads\/2013\/07\/Microsoft-DHCP-Server-Vendor-Classes-_1.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-top: 0px; padding-left: 0px; margin: 0px 5px 0px 0px; display: inline; padding-right: 0px; border-width: 0px;\" title=\"Microsoft DHCP Server - Vendor Classes #1\" alt=\"Microsoft DHCP Server - Vendor Classes #1\" src=\"https:\/\/ingmarverheij.com\/wp-content\/uploads\/2013\/07\/Microsoft-DHCP-Server-Vendor-Classes-_1_thumb.png\" width=\"136\" height=\"204\" border=\"0\" \/><\/a><a href=\"https:\/\/ingmarverheij.com\/wp-content\/uploads\/2013\/07\/Microsoft-DHCP-Server-Vendor-Classes-_2.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-top: 0px; padding-left: 0px; margin: 0px 5px 0px 0px; display: inline; padding-right: 0px; border-width: 0px;\" title=\"Microsoft DHCP Server - Vendor Classes #2\" alt=\"Microsoft DHCP Server - Vendor Classes #2\" src=\"https:\/\/ingmarverheij.com\/wp-content\/uploads\/2013\/07\/Microsoft-DHCP-Server-Vendor-Classes-_2_thumb.png\" width=\"363\" height=\"204\" border=\"0\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<h6><span style=\"font-weight: bold;\">Microsoft Windows DHCP Client<\/span><\/h6>\n<p>In the first stage of a DHCP request, the <span style=\"font-family: 'Courier New';\">DHCP Discover<\/span>, a client adds the predefined vendor class in DHCP option 60 (or<em>\u00a0<\/em>Vendor Class Identifier).<\/p>\n<p>For Windows 2000 and above (Vista \/ 7 \/ 8 \/ etc.) <span style=\"font-family: 'Courier New';\">\u201cMSFT 5.0\u201d<\/span> is send. Since this is a broadcast all DHCP servers (and other machines sniffing the package) know this is a \u201cMicrosoft Windows 2000 client\u201d and only DHCP options for this vendor should be sent.<\/p>\n<p><a href=\"https:\/\/ingmarverheij.com\/wp-content\/uploads\/2013\/07\/Wireshark-DHCP-Discover-60.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin: 0px auto; display: block; padding-right: 0px; border-width: 0px;\" title=\"Wireshark - DHCP Discover - 60\" alt=\"Wireshark - DHCP Discover - 60\" src=\"https:\/\/ingmarverheij.com\/wp-content\/uploads\/2013\/07\/Wireshark-DHCP-Discover-60_thumb.png\" width=\"354\" height=\"254\" border=\"0\" \/><\/a><\/p>\n<p align=\"left\"><em><strong>PS<\/strong>: The default vendor class in your Microsoft Windows DHCP client can be changed to obfuscate your OS, but its unsupported \u2013 see this <\/em><a href=\"https:\/\/www.irongeek.com\/security\/osfuscate-change-your-windows-os-tcp-ip-fingerprint-to-confuse-p0f-networkminer-ettercap-nmap-and-other-os-detection-tools.htm\" target=\"_blank\">link<\/a><em><\/em><em>. <\/em><\/p>\n<p>&nbsp;<\/p>\n<h1>DHCP Offer<\/h1>\n<p><a href=\"https:\/\/ingmarverheij.com\/wp-content\/uploads\/2013\/07\/DHCP-Offer-diagram1.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; float: right; padding-top: 0px; padding-left: 0px; margin: 0px 0px 0px 5px; display: inline; padding-right: 0px; border-width: 0px;\" title=\"DHCP Offer diagram\" alt=\"DHCP Offer diagram\" src=\"https:\/\/ingmarverheij.com\/wp-content\/uploads\/2013\/07\/DHCP-Offer-diagram_thumb1.png\" width=\"154\" height=\"95\" align=\"right\" border=\"0\" \/><\/a>After a DHCP server\u00a0 receives a\u00a0 <span style=\"font-family: 'Courier New';\">DHCP Discover<\/span>\u00a0 it returns a\u00a0 <span style=\"font-family: 'Courier New';\">DHCP Offer<\/span>\u00a0 to the DHCP client containing the DHCP lease. The\u00a0 lease contains IP information (the offered IP, relay agent, DHCP server), MAC addresses, options and some other stuff.<\/p>\n<p>&nbsp;<\/p>\n<p><a href=\"https:\/\/ingmarverheij.com\/wp-content\/uploads\/2013\/07\/Wireshark-DHCP-Offer.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin: 0px auto; display: block; padding-right: 0px; border-width: 0px;\" title=\"Wireshark - DHCP Offer\" alt=\"Wireshark - DHCP Offer\" src=\"https:\/\/ingmarverheij.com\/wp-content\/uploads\/2013\/07\/Wireshark-DHCP-Offer_thumb.png\" width=\"354\" height=\"254\" border=\"0\" \/><\/a><\/p>\n<p>What\u2019s interesting to know is that the DHCP server only returns the options the DHCP client requested via option 55 in its <span style=\"font-family: 'Courier New';\">DHCP Discover<\/span> packet. By default that\u2019s: 1, 3, 6, 15, 31, 33, 43, 44, 46, 47, 121 and 249 (for explanation see <a href=\"https:\/\/www.iana.org\/assignments\/bootp-dhcp-parameters\/bootp-dhcp-parameters.xhtml\" target=\"_blank\">IANA<\/a>).<\/p>\n<p><a href=\"https:\/\/ingmarverheij.com\/wp-content\/uploads\/2013\/07\/Wireshark-DHCP-Discover-55.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin: 0px auto; display: block; padding-right: 0px; border-width: 0px;\" title=\"Wireshark - DHCP Discover - 55\" alt=\"Wireshark - DHCP Discover - 55\" src=\"https:\/\/ingmarverheij.com\/wp-content\/uploads\/2013\/07\/Wireshark-DHCP-Discover-55_thumb.png\" width=\"354\" height=\"254\" border=\"0\" \/><\/a><\/p>\n<p>The DHCP option we\u2019re interested in is option 43 <strong>Vendor Specific Information<\/strong>. As described above, the value of the DHCP option is only sent to clients that have a specific vendor class (MSFT 5.0 in the example) .<\/p>\n<p>&nbsp;<\/p>\n<h1>DHCP Option 43 \u2013 Vendor Specific Information<\/h1>\n<p>DHCP option 43 is described in <a href=\"https:\/\/tools.ietf.org\/html\/rfc2132\" target=\"_blank\">RFC2132<\/a>, it explains how the packet of the option needs to be send. The structure is pretty simple: the <strong>first <\/strong>byte contains the <strong>option code <\/strong>43 [or 0x2B in hex], the <strong>second <\/strong>byte the <strong>length <\/strong>of the package followed by one or more options.<\/p>\n<p><a href=\"https:\/\/ingmarverheij.com\/wp-content\/uploads\/2013\/07\/DHCP-Option-43-diagram.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin: 0px auto; display: block; padding-right: 0px; border-width: 0px;\" title=\"DHCP Option 43 diagram\" alt=\"DHCP Option 43 diagram\" src=\"https:\/\/ingmarverheij.com\/wp-content\/uploads\/2013\/07\/DHCP-Option-43-diagram_thumb.png\" width=\"600\" height=\"37\" border=\"0\" \/><\/a><\/p>\n<p>Each option i<em>n (<\/em>i1, i2, etc) has same basic structure: the <strong>first <\/strong>byte contains the options <strong>code<\/strong>, the <strong>second<\/strong> byte the <strong>length<\/strong> of the package followed by the <strong>value<\/strong> of the option.<\/p>\n<p><a href=\"https:\/\/ingmarverheij.com\/wp-content\/uploads\/2013\/07\/DHCP-Option-43-in-diagram.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin: 0px auto; display: block; padding-right: 0px; border-width: 0px;\" title=\"DHCP Option 43 in diagram\" alt=\"DHCP Option 43 in diagram\" src=\"https:\/\/ingmarverheij.com\/wp-content\/uploads\/2013\/07\/DHCP-Option-43-in-diagram_thumb.png\" width=\"600\" height=\"37\" border=\"0\" \/><\/a><\/p>\n<h6><\/h6>\n<p>What\u2019s not documented (clearly) in the RFC is that each option ends with a byte with value 0 (0x00) \u2013 a separator. That means that each option i<em>n<\/em> (i1, i2, etc.) actually has the following structure:<\/p>\n<p><a href=\"https:\/\/ingmarverheij.com\/wp-content\/uploads\/2013\/07\/DHCP-Option-43-in-with-separator-diagram.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin: 0px auto; display: block; padding-right: 0px; border-width: 0px;\" title=\"DHCP Option 43 in - with separator - diagram\" alt=\"DHCP Option 43 in - with separator - diagram\" src=\"https:\/\/ingmarverheij.com\/wp-content\/uploads\/2013\/07\/DHCP-Option-43-in-with-separator-diagram_thumb.png\" width=\"600\" height=\"37\" border=\"0\" \/><\/a><\/p>\n<h6><\/h6>\n<h6><span style=\"font-weight: bold;\"> <br clear=\"all\" \/>Example<\/span><\/h6>\n<p>Here\u2019s an <strong>example<\/strong> of how a vendor specific DHCP option <strong>diagram<\/strong> looks like.<\/p>\n<p><a href=\"https:\/\/ingmarverheij.com\/wp-content\/uploads\/2013\/07\/DHCP-Option-43-example-with-separator.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin: 0px auto; display: block; padding-right: 0px; border-width: 0px;\" title=\"DHCP Option 43 example - with separator\" alt=\"DHCP Option 43 example - with separator\" src=\"https:\/\/ingmarverheij.com\/wp-content\/uploads\/2013\/07\/DHCP-Option-43-example-with-separator_thumb.png\" width=\"600\" height=\"386\" border=\"0\" \/><\/a><\/p>\n<p>In the example I\u2019ve set three vendor specific options (with vendor class MSFT 5.0, for Windows 2000 clients).<\/p>\n<ul>\n<li><a href=\"https:\/\/ingmarverheij.com\/wp-content\/uploads\/2013\/07\/Microsoft-DHCP-Server-Predefined-Options-and-Values.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; float: right; padding-top: 0px; padding-left: 0px; margin: 0px 0px 0px 5px; display: inline; padding-right: 0px; border-width: 0px;\" title=\"Microsoft DHCP Server - Predefined Options and Values\" alt=\"Microsoft DHCP Server - Predefined Options and Values\" src=\"https:\/\/ingmarverheij.com\/wp-content\/uploads\/2013\/07\/Microsoft-DHCP-Server-Predefined-Options-and-Values_thumb.png\" width=\"154\" height=\"152\" align=\"right\" border=\"0\" \/><\/a>Option 10 with string value <em>Ingmar<\/em><\/li>\n<li>Option 11 with string value <em>Verheij<\/em><\/li>\n<li>Option 12 with string value <em><a href=\"https:\/\/ingmarverheij.com\">www.ingmarverheij.com<\/a><\/em><\/li>\n<\/ul>\n<p>By <strong>default <\/strong>only option 001, 002 and 003 are available for <em>Microsoft Windows 2000 Options <\/em>but these can be extended via the context menu of the protocol stack (IPv4 or IPv6) and selecting <strong>Set Predefined Options.<\/strong><\/p>\n<p>&nbsp;<\/p>\n<p>The values for the vendor specific options are set via the scope or server options, in this case I\u2019ve configured them in the scope options.<\/p>\n<p><a href=\"https:\/\/ingmarverheij.com\/wp-content\/uploads\/2013\/07\/Microsoft-DHCP-Server-Scope-Options.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; margin-right: auto; border-width: 0px;\" title=\"Microsoft DHCP Server - Scope Options\" alt=\"Microsoft DHCP Server - Scope Options\" src=\"https:\/\/ingmarverheij.com\/wp-content\/uploads\/2013\/07\/Microsoft-DHCP-Server-Scope-Options_thumb.png\" width=\"354\" height=\"98\" border=\"0\" \/><\/a><\/p>\n<h5><\/h5>\n<h5><span style=\"font-weight: bold;\">DHCP Offer<\/span><\/h5>\n<p>The DHCP client receives the <span style=\"font-family: 'Courier New';\">DHCP Offer<\/span> including the <strong>specified<\/strong> vendor specific option (using <a href=\"https:\/\/blog.thecybershadow.net\/2013\/01\/10\/dhcp-test-client\/\" target=\"_blank\">DHCP Client Tool<\/a>):<\/p>\n<p>&nbsp;<\/p>\n<p><a href=\"https:\/\/ingmarverheij.com\/wp-content\/uploads\/2013\/07\/dhcptest-DHCP-Offer-43-detailed.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin: 0px auto; display: block; padding-right: 0px; border-width: 0px;\" title=\"dhcptest - DHCP Offer - 43 - detailed\" alt=\"dhcptest - DHCP Offer - 43 - detailed\" src=\"https:\/\/ingmarverheij.com\/wp-content\/uploads\/2013\/07\/dhcptest-DHCP-Offer-43-detailed_thumb.png\" width=\"600\" height=\"350\" border=\"0\" \/><\/a><\/p>\n<p>The DHCP offer received contains <strong>multiple <\/strong>options including subnetMask [1], domainName [15], domainNameServer [6] and the <strong>vendor specific option <\/strong>[43] just like in the example diagram is shown. What you can\u2019t see is the DHCP option packet containing the <strong>code<\/strong> [43] and the <strong>length<\/strong> [43 bytes]. <a href=\"https:\/\/www.wireshark.org\/\" target=\"_blank\">Wireshark<\/a> does show this information.<\/p>\n<p><a href=\"https:\/\/ingmarverheij.com\/wp-content\/uploads\/2013\/07\/Wireshark-DHCP-Offer-43.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin: 0px auto; display: block; padding-right: 0px; border-width: 0px;\" title=\"Wireshark - DHCP Offer - 43\" alt=\"Wireshark - DHCP Offer - 43\" src=\"https:\/\/ingmarverheij.com\/wp-content\/uploads\/2013\/07\/Wireshark-DHCP-Offer-43_thumb.png\" width=\"354\" height=\"254\" border=\"0\" \/><\/a><\/p>\n<p>What\u2019s clear to see in both captures is that each option (i1, i2, etc) ends with a 0 (0x00) byte. Though this is not mentioned in the RFC they are required for the DHCP client to identify the end of the option allowing the client to separate the options.<\/p>\n<p>The value is send as hexadecimal byte values. Translating the hex values to string can be done <a href=\"https:\/\/www.string-functions.com\/hex-string.aspx\" target=\"_blank\">here<\/a> and from string to hex <a href=\"https:\/\/www.string-functions.com\/string-hex.aspx\" target=\"_blank\">here<\/a>.<\/p>\n<h5><\/h5>\n<h5><\/h5>\n<h5><span style=\"font-weight: bold;\">Read DHCP options from registry<\/span><\/h5>\n<p>You can also read the vendor specific DHCP options received by the client from the registry.:<\/p>\n<p><a href=\"https:\/\/ingmarverheij.com\/wp-content\/uploads\/2013\/07\/ReadDhcpOptions-43.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin: 0px auto; display: block; padding-right: 0px; border-width: 0px;\" title=\"ReadDhcpOptions - 43\" alt=\"ReadDhcpOptions - 43\" src=\"https:\/\/ingmarverheij.com\/wp-content\/uploads\/2013\/07\/ReadDhcpOptions-43_thumb.png\" width=\"354\" height=\"126\" border=\"0\" \/><\/a><\/p>\n<p>I wrote a PowerShell script that reads the received DHCP options from the registry and can format them for you. The script can be found <a href=\"https:\/\/ingmarverheij.com\/read-dhcp-options-received-by-the-client\/\" target=\"_blank\">here<\/a>.<\/p>\n<p>&nbsp;<\/p>\n<h1>Non-Microsoft DHCP servers<\/h1>\n<p>This information is especially valuable if you have to configure a non-Microsoft DHCP server which does not provide (Microsoft) vendor specific DHCP options by default.<\/p>\n<p>&nbsp;<\/p>\n<h6><span style=\"font-weight: bold;\">Linux DHCP server<\/span><\/h6>\n<p>If you have a Linux DHCP server vendor specific options can be set in the <span style=\"font-family: 'Courier New';\">\/etc\/dhcp\/dhcpd.conf<\/span> configuration file.The options can be set in a subclass where you can filter on the vendor class identifier. Below you can find an example configuration presenting the same vendor specific options as in previous examples.<\/p>\n<p><span style=\"text-decoration: underline;\"><strong>dhcpd.conf<\/strong><\/span><\/p>\n<pre lang=\"bash\">ddns-update-style none;\r\n\r\ndefault-lease-time 600;\r\nmax-lease-time 7200;\r\n\r\noption domain-name \"domain.local\";\r\noption domain-name-servers 192.168.0.1;\r\noption routers 192.168.0.1;\r\n\r\nauthoritative;\r\nlog-facility local7;\r\n\r\nsubnet 192.168.0.0 netmask 255.255.255.0 {\r\n  range 192.168.0.100 192.168.0.200;\r\n}\r\n\r\nclass \"MSFT 5.0\" {\r\n   match if option vendor-class-identifier = \"MSFT 5.0\";\r\n   option vendor-class-identifier \"MSFT 5.0\";\r\n   option vendor-encapsulated-options 0a:07:49:6e:67:6d:61:72:00:56:65:72:68:65:69;6a:00:77:77:77:2e:69:6e:67:6d:61:72:76:75:72:68:65:69:6a:2e:63:6f:6d:00;\r\n}\r\n\r\nclass \"MSFT 98\" {\r\n   match if option vendor-class-identifier = \"MSFT 98\";\r\n   option vendor-class-identifier \"MSFT 98\";\r\n   option vendor-encapsulated-options 0a:07:49:6e:67:6d:61:72:00:56:65:72:68:65:69;6a:00:77:77:77:2e:69:6e:67:6d:61:72:76:75:72:68:65:69:6a:2e:63:6f:6d:00;\r\n}\r\n\r\nclass \"MSFT\" {\r\n   match if option vendor-class-identifier = \"MSFT\";\r\n   option vendor-class-identifier \"MSFT;\r\n   option vendor-encapsulated-options 0a:07:49:6e:67:6d:61:72:00:56:65:72:68:65:69;6a:00:77:77:77:2e:69:6e:67:6d:61:72:76:75:72:68:65:69:6a:2e:63:6f:6d:00;\r\n}<\/pre>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<h6><span style=\"font-weight: bold;\">Alcatel-Lucent VitalQIP<\/span><\/h6>\n<p>As the vendor specific information is considered an opaque data type the user must define the option data in the raw format. With a VitalQIP appliance the vendor specific information can be provided in two ways:<\/p>\n<p><a href=\"https:\/\/ingmarverheij.com\/wp-content\/uploads\/2013\/07\/VitalQIP-Vendor-Specific-option.gif\"><strong><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; float: right; padding-top: 0px; padding-left: 0px; margin: 0px 0px 0px 5px; display: inline; padding-right: 0px; border-width: 0px;\" title=\"VitalQIP - Vendor Specific option\" alt=\"VitalQIP - Vendor Specific option\" src=\"https:\/\/ingmarverheij.com\/wp-content\/uploads\/2013\/07\/VitalQIP-Vendor-Specific-option_thumb.gif\" width=\"154\" height=\"86\" align=\"right\" border=\"0\" \/><\/strong><\/a><strong>1. DHCP Option Template &#8211; <\/strong>The vendor-specific information can be provided on the DHCP Option Template- Modify page. In the Active Options area, choose Vendor Specific Information, and enter the information in the Value field.\u00a0 In order to include the controller IP addresses in the DHCP option 43 message, enter the information to the DHCP Option template in QIP as a single hex value: [ip hex]. In order to send more than one IP address with DHCP Option 43, enter the information to the DHCP Option template in QIP as a single hex value:[ip hex ip hex] and not [ip hex],[ip hex]. In this case, the comma in the middle causes problems for DHCP to parse the string passed from QIP. <strong>Source<\/strong>: <a href=\"https:\/\/www.cisco.com\/en\/US\/tech\/tk722\/tk809\/technologies_configuration_example09186a00808714fe.shtml#Lucent\">cisco.com<\/a><\/p>\n<p>&nbsp;<\/p>\n<p><strong><br \/>\n<br clear=\"all\" \/>2. User exit script<\/strong> \u2013 A place holder is set in the vendor specific DHCP option template, for instance [VENDOR-SPECIFIC-OPT1] which get replaced by a value via a user exit script (<em>qipdhcpuserexit <\/em>). The user exit script reads a managed file (accessible via <strong>DNS &gt; Managed Files<\/strong>) that contains the Hex value in [block quotes]. For example:<\/p>\n<pre>[VENDOR-SPECIFIC-OPT1]=[0a07496e676d617200566572686569;6a007777772e696e676d61727675726865696a2e636f6d00]<\/pre>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<h6><span style=\"font-weight: bold;\">Creating the string<\/span><\/h6>\n<p><a href=\"https:\/\/ingmarverheij.com\/wp-content\/uploads\/2013\/07\/CreateVendorSpecificString.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; float: right; padding-top: 0px; padding-left: 0px; margin: 0px 0px 0px 5px; display: inline; padding-right: 0px; border: 0px;\" title=\"CreateVendorSpecificString\" alt=\"CreateVendorSpecificString\" src=\"https:\/\/ingmarverheij.com\/wp-content\/uploads\/2013\/07\/CreateVendorSpecificString_thumb.png\" width=\"154\" height=\"103\" align=\"right\" border=\"0\" \/><\/a>After reading this article you now know how to vendor specific DHCP options work and how you can configure them for a non-Microsoft DHCP server. I can imagine you don\u2019t want to create the string for the options manually (neither do I) so created a small .NET application that does that for you.<\/p>\n<p>The usage is straightforward: just add the options, specify a separator (or not) and click <strong>Generate<\/strong>.<\/p>\n<h1><\/h1>\n<h1 id=\"download\">Download<\/h1>\n<p>You can download the tool here: <a  data-e-Disable-Page-Transition=\"true\" class=\"download-link\" title=\"Version 1.0\" href=\"https:\/\/ingmarverheij.com\/en\/download\/5837\/?tmstv=1776629744\" rel=\"nofollow\" id=\"download-link-5837\" data-redirect=\"false\" >\n\tCreateVendorSpecificString.exe<\/a>\n<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>DHCP servers can send vendor specific options to clients to granularly control configuration. Microsoft clients are out-of-the-box prepared to receive Microsoft Windows specific options while Microsoft DHCP servers have the ability to send DHCP options only received by Windows clients. Some applications use the content of a DHCP option to receive configuration data, for example [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"site-container-style":"default","site-container-layout":"default","site-sidebar-layout":"default","disable-article-header":"default","disable-site-header":"default","disable-site-footer":"default","disable-content-area-spacing":"default","footnotes":""},"categories":[571,288],"tags":[355,26,575,574],"class_list":["post-5251","post","type-post","status-publish","format-standard","hentry","category-demystified-other","category-other","tag-dhcp","tag-microsoft","tag-option-43","tag-vendor-specific"],"_links":{"self":[{"href":"https:\/\/ingmarverheij.com\/en\/wp-json\/wp\/v2\/posts\/5251","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ingmarverheij.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ingmarverheij.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ingmarverheij.com\/en\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/ingmarverheij.com\/en\/wp-json\/wp\/v2\/comments?post=5251"}],"version-history":[{"count":14,"href":"https:\/\/ingmarverheij.com\/en\/wp-json\/wp\/v2\/posts\/5251\/revisions"}],"predecessor-version":[{"id":5869,"href":"https:\/\/ingmarverheij.com\/en\/wp-json\/wp\/v2\/posts\/5251\/revisions\/5869"}],"wp:attachment":[{"href":"https:\/\/ingmarverheij.com\/en\/wp-json\/wp\/v2\/media?parent=5251"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ingmarverheij.com\/en\/wp-json\/wp\/v2\/categories?post=5251"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ingmarverheij.com\/en\/wp-json\/wp\/v2\/tags?post=5251"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}