[ipxe-devel] wdsnbp.com loop in iPXE

wd_liu at sohu.com wd_liu at sohu.com
Thu Jul 9 08:14:04 UTC 2015


Dear,
 
  I have to write a mail for help to this maillist, because i have failed to register on site http://forum.ipxe.org/.
 
 
  Firstly I copy the "Chainloading Windows Deployment Services" text on http://ipxe.org/appnote/chainload_wds to below.
 
The WDS boot process

Once wdsnbp.com starts, it initiates a session with the WDS server that was specified in the DHCP next-server parameter. The session protocol uses a combination of DHCP requests and responses and TFTP to provide the client with the appropriate boot loader (such as bootmgr.exe or bootmgfw.efi) and boot configuration data (BCD). 
The wdsnbp.com program performs client architecture detection and reports it back to the server via the WDS session. This session protocol uses DHCP as an RPC service endpoint, and the data passed back and forth (such as architecture information) is encoded in DHCP option 250. Together with option 252 (used by WDS to indicate BCD file name) and the DHCP file field (pointing the client to the next network boot program), the DHCP+TFTP negotiation completes the WDS session. 
Example boot process



Client: iPXE requests TFTP /boot/x86/wdsnbp.com from ip.of.wds.server.

Client: wdsnbp.com uses a direct DHCP request to ip.of.wds.server, with no option 250 nor 252 defined.

Server: DHCP response:


filename: boot\x86\wdsnbp.com

option 250: 0b0101100400000001ff

option 252: \Tmp\x86{<GUID>}.bcd

Client: wdsnbp.com uses a direct DHCP request to ip.of.wds.server:


option 250: 0d0208000e010001020006ff

Server: DHCP response:


filename: boot\x86\wdsnbp.com

option 250: 0b0101100400000001ff

option 252: \Tmp\x86x64{GUID}.bcd

Client: wdsnbp.com requests TFTP /boot\x86\wdsnbp.com from ip.of.wds.server. Note the use of slashes.

Client: wdsnbp.com uses a direct DHCP request to ip.of.wds.server:


option 250: 0c01010d0208000e010001020006ff

Server: DHCP response:


filename: boot\x64\pxeboot.n12.

option 250: 0b0101100400000001ff

option 252: \Tmp\x86x64{GUID}.bcd

Client: wdsnbp.com requests TFTP /boot\x64\pxeboot.n12.

Client: pxeboot requests TFTP /boot\x64\bootmgr.exe.

Client: pxeboot requests TFTP \Tmp\x86x64{GUID}.bcd.

Client: bootmgr.exe executes and reads the BCD.
 
My situation is a DHCP on a server2012 and a WDS on another server2012r2, and I'm booting a WinPE on a client computer.
 
The question is when I boot using gPXE(gpxe-1.0.1-gpxe.pxe), it works well, exactly the same boot process copied above from step 1 to 12.
 
But when I boot using iPXE(undionly.kpxe, latest version), it stucks in a loop, repeats loading wdsnbp.com again and again.
 
I had a look in wireshark and found that the problem is at the boot process step 7, copied above. 
 
When in gPXE, wdsnbp.com sends a DHCP request with option 250 0c01010d0208000e010001020006ff, and then the process goes to next process step 8. 
 
But when in iPXE, wdsnbp.com sends a DHCP request with no option 250 nor 252 defined, just the same like at process step 2, so the process goes step 2 to step 7 repeatly. 
 
What should I do with this problem?
 
Thanks for your consiseration.
Looking forward to your answer.
 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ipxe.org/pipermail/ipxe-devel/attachments/20150709/f030f63c/attachment.htm>


More information about the ipxe-devel mailing list