During a WDS client's boot process, the normal DHCP traffic occurs. The client broadcasts for an IP address to port UDP 67. Traditionally, only DHCP listened on port UDP 67, but now WDS also listens on port UDP 67 (more on this in a second). When the DHCP server hears the request, it makes an offer. The offer contains an IP address, subnet mask, and any DHCP options you might have set. The client then requests that the DHCP server assign the offerred IP address to the client’s MAC address. Lastly, an acknowledgment is broadcast by the DHCP server that for the next eight days (if you keep the defaults) the offerred IP address is assigned to the client. But wait it’s not done—and this is where it gets interesting from a WDS perspective. The client sends out that first broadcast packet again (technically it’s called a discover packet). The DHCP server responds with another offer, but this offer is used to find the WDS server. So what happens when you have WDS and DHCP running on the same server? They can’t both listen on port UDP 67 right? Let’s look at the three different scenarios for configuring DHCP to help clients find the WDS server.

Related: Using WDS with Windows Server 2008

Scenario 1: WDS and DHCP are running on different servers but on the same subnet so broadcasts are not a problem: As long as the client deploying an image from the WDS server and the WDS server are on the same subnet and different servers, everything works fine with no DHCP options configured.

Scenario 2: WDS and DHCP running on different servers that are on different subnets (broadcasting would be problematic because most enviornments don’t allow broadcast traffic to cross subnets: for the WDS client to find the WDS server you’ll need to configure two DHCP options—option 66 and option 67. Option 66 is the Boot Server Host Name. In the string value of this option type the name or IP address of the WDS server (I like IP address—no name resolution issues.) Option 67 is the Bootfile Name, and the string value should contain the name of the file you want your clients to boot. For 32-bit clients use boot\x86\pxeboot.com, and for 64-bit clients use boot\x64\pxeboot.com.

Scenario 3: WDS and DHCP are installed on the same server: You must tell WDS not to listen on port UDP 67, leaving it available for DHCP traffic only. But then how does the client find the WDS server? You set option 60 in DHCP.

If you install WDS on a server that's already running DHCP, during the configuration of WDS the DHCP Option 60 page will appear, and you can select both Do not listen on port 67 and Configure DHCP option 60 to “PXEClient”. If you install DHCP on a machine that already has WDS installed, you must manually enable option 60 in DHCP.

Related: WDS Server Modes

Configuring DHCP Options

You set DHCP options in the DHCP snap-in found in Server Manager. Expand IPV4, and then if you want to set a Server option, right-click Server Options and choose Configure Options. For a Scope option, expand your scope, right-click Scope Options and choose Configure Options. On the General tab, select the 060 PXEClient check box. For options 66 and 67, scroll down to find 066 Boot Server Host Name. When you select this check box, the String value field in the Data entry box opens. Type in either the IP address or the name of your WDS server. Option 67 is similar to option 66; if you select the 067 Bootfile Name check box, the String value field in the Data entry box opens. Type the name of the file you want your clients to boot. I found these file names in the WDS snap-in/properties of the WDS server/Boot tab. Be sure to get the entire path: boot\x86\pxeboot.com for 32-bit clients and boot\x64\pxeboot.com for 64 bit clients.

Related: How do I enable DHCP Name Protection for a scope in Windows Server 2008 R2? and Q: What is DHCP Name Protection in Windows Server 2008R2?