WDS 2012 R2 Server

hyper-v-server-2012-r2pxe-boottftpwdswindows-server-2012-r2

Background: WDS Server 2012 R2 (runs on a 2012 R2 Hyper-v server), DHCP server runs on a different server in a different physical LAN. Both Lans go into the same Layer3 switch. Currently all my clients that are using PXE boot are on the same LAN as the WDS server. I have set up both install and boot images on the WDS server as well, played with the server settings and the TFTP block size as well. Tried setting udp port range and allowing WINsock to provide them. I have also uninitialized and then initialized the WDS server as well. Further, I Tried adding DHCP option 66,67 and 60 as well, however Adding DCHP options on my DCHP server seems to make matters worse and i get different errors.

Problem: Out of every 10 attempts 3-4 times the network boot is successful and I can install an image from the WDS server. However, many times the client finds the WDS server but fails during the TFTP transfer to get the boot image. I get the following error:

TFTP failed to restart
TFTP download failed

I have found plenty of folks on the web with this error but for them it either always fails or it simply works fine. For me its more of a she loves me she loves me not relationship.

Any ideas as to why this works sometimes and many times it does not? My settings are detailed below.

====WDS Server Properties====
PXE Response Tab
-PXE Response Policy Respond to all clients (known and unkown)
-PXE Response Delay 5 second

AD DS Tab
left default settings

Boot Tab
PXE Boot Policy
-Known Clients: Continue the PXE boot unless user presses the ESC key
-Unkown Clients: Continue PXE boot unless user presses ESC Key

Client Tab
-Joining a domain: do not join the client to a domain after install
-Client Logging: enabled client log error,warning & infromational

DHCP Tab
-Nothing checked

TFTP Tab
-Max Block Size: 512
-Variable Windows Extension (left unchecked)

Network Tab
-UDP Port Policy: set UDP port range 64001 to 65000

Advanced Tab
-Domain Controller: WDS should use the following servers dcnameentered & gcnameentered
-DHCP Authorization: Do not authorize this WDS server in DHCP

MultiCast Tab
-Multicast IP Address: Obtain IP Address from dhcp
-Transfer Settings: keep all multicast clients in a session at the same speed

Best Answer

In networking when things sometimes work and sometimes do not there's surely a timing issue involved...

I would alternative try

  1. Eliminate the PXE Response Delay 5 second

  2. Set the TFTP Max Block size to 1456

  3. If possible disable Multicast capabilities.

Edit 1:

Also if the failing TFTP transfers immediately abort after the TFTP request it might be a port issue. TFTP transfers require a random UDP port selected in a per-transfer basis (in your case from 64001 to 65000). If the randomly selected port is either blocked by a firewall or used by some other application you transfer will abort.