Adding DHCP Option 119 (Domain Search List) to Windows Server 2008 R2

If you’ve seen my recent blog post on making Android work in Hyper-V you will have seen my problems around DNS resolution when in the office. That turned out to be down to the DHCP options being handed back by our Server 2008 R2 box. Or rather, it was what wasn’t being handed back to the client that was the problem.

Linux (and Apple OSX, as it turns out) both want a response to option 119, which defines the domain suffix search order. Windows does not request this option and the windows DHCP server does not offer the option at all.

There are a few locations on the web that talk around this but none properly document the process of adding the custom option to your DHCP server and more importantly, exactly how to encode the response (thanks go to Matt for describing that one in enough detail!).

What option 119 looks like

Option 119 hands back a byte array that encodes the domain suffix. The trouble is, it’s not a simple matter of turning text into ascii hex values. There is a structure to it.

Our domain is blackmarble.co.uk. I found a handy web site that sped up the process of getting the hex of that.

b

l

a

c

k

m

a

r

b

l

e

.

c

o

.

u

k

0x62

0x6c

0x61

0x63

0x6b

0x6d

0x61

0x72

0x62

0x6c

0x65

0x2e

0x63

0x6f

0x2e

0x75

0x6b

The client expects the full domain to be split (get rid of the separating periods), with each section prefixed by it’s length (e.g. 11 blackmarble 2 co 2 uk) and then the whole string is null terminated.

 

b

l

a

c

k

m

a

r

b

l

e

 

c

o

 

u

k

 

0x0b

0x62

0x6c

0x61

0x63

0x6b

0x6d

0x61

0x72

0x62

0x6c

0x65

0x02

0x63

0x6f

0x02

0x75

0x6b

0x00

Adding the option to Server 2008 R2

To add the DHCP option to Windows Server 2008 R2 you need to add a new option to the IPV4 section. Select ‘Set Predefined Options’ from the context menu on the IPV4 heading beneath the name of the server in the DHCP console.

dhcp option menu

In the dialog that appears, click the Add button.

dhcp options add

Enter the name for new option. It needs to be of type Byte and make sure you check the array option; the Code is 119 and you can add a description if you want to.

dhcp add new option

Once you’ve defined the option you can add it either to the main Server Options section, a scope or an individual address reservation.

119 server options

Each of the hex values you worked out (see my examples) needs to be added in turn to create the full byte array.

Hopefully this pulls all the necessary information into one handy reference and it saves somebody else the confusion I experienced.