<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:SimSun;
        panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
        {font-family:"MS Gothic";
        panose-1:2 11 6 9 7 2 5 8 2 4;}
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:"\@SimSun";
        panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
        {font-family:"\@MS Gothic";
        panose-1:2 11 6 9 7 2 5 8 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman",serif;}
h3
        {mso-style-priority:9;
        mso-style-link:"Heading 3 Char";
        mso-margin-top-alt:auto;
        margin-right:0cm;
        mso-margin-bottom-alt:auto;
        margin-left:0cm;
        font-size:13.5pt;
        font-family:"Times New Roman",serif;
        font-weight:bold;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p
        {mso-style-priority:99;
        mso-margin-top-alt:auto;
        margin-right:0cm;
        mso-margin-bottom-alt:auto;
        margin-left:0cm;
        font-size:12.0pt;
        font-family:"Times New Roman",serif;}
code
        {mso-style-priority:99;
        font-family:"Courier New";}
span.searchhit
        {mso-style-name:search_hit;}
span.Heading3Char
        {mso-style-name:"Heading 3 Char";
        mso-style-priority:9;
        mso-style-link:"Heading 3";
        font-family:"Calibri Light",sans-serif;
        color:#1F4D78;
        mso-fareast-language:SV;}
p.li, li.li, div.li
        {mso-style-name:li;
        mso-margin-top-alt:auto;
        margin-right:0cm;
        mso-margin-bottom-alt:auto;
        margin-left:0cm;
        font-size:12.0pt;
        font-family:"Times New Roman",serif;}
span.EmailStyle24
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri",sans-serif;
        mso-fareast-language:EN-US;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:70.85pt 70.85pt 70.85pt 70.85pt;}
div.WordSection1
        {page:WordSection1;}
/* List Definitions */
@list l0
        {mso-list-id:727416695;
        mso-list-template-ids:-2048505692;}
@list l0:level2
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:72.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:"Courier New";
        mso-bidi-font-family:"Times New Roman";}
ol
        {margin-bottom:0cm;}
ul
        {margin-bottom:0cm;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="SV" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US">I think this is the fact that gPXE managed the proxy response differently. You can edit the code to work with the proxy
 (WDS) instead of the DHCP info.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US">You could do a one-line hack to pxeprefix.S to retrieve packet type 3 (instead of 2); this _may_ end up giving you the
 proxydhcp information instead.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US">It's a bit dubious since PXE conceptually has three DHCPACK-like packets: the "proper" DHCP ACK (with the IP address),
 the optional ProxyDHCPACK, and the optional boot server reply<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US">That will work for BIOS but not implemented for EFI yet.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US">//Andreas<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><b><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif">From:</span></b><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif"> ipxe-devel-bounces@lists.ipxe.org [mailto:ipxe-devel-bounces@lists.ipxe.org]
<b>On Behalf Of </b>wd_liu@sohu.com<br>
<b>Sent:</b> den 9 juli 2015 10:14<br>
<b>To:</b> ipxe-devel<br>
<b>Subject:</b> [ipxe-devel] wdsnbp.com loop in iPXE<o:p></o:p></span></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p><br>
<strong>Dear</strong><span style="font-family:"Calibri",sans-serif">,</span><o:p></o:p></p>
<p> <o:p></o:p></p>
<p>  <strong>I have</strong> to write a mail for help to this maillist, because i have failed to register on site
<a href="http://forum.ipxe.org/">http://forum.ipxe.org/</a>.<o:p></o:p></p>
<p> <o:p></o:p></p>
<p> <o:p></o:p></p>
<p>  <strong>Firstly</strong> I copy the "<a name="chainloading_windows_deployment_services" id="chainloading_windows_deployment_services">Chainloading Windows Deployment Services</a>" text on <a href="http://ipxe.org/appnote/chainload_wds">http://ipxe.org/appnote/chainload_wds</a> to
 below.<o:p></o:p></p>
<p> <o:p></o:p></p>
<p><a name="the_wds_boot_process" id="the_wds_boot_process"><strong><span style="font-size:13.5pt">The
</span></strong></a><span class="searchhit"><b><span style="font-size:13.5pt">WDS</span></b></span><strong><span style="font-size:13.5pt"> boot process</span></strong><o:p></o:p></p>
<div>
<p>Once <span class="searchhit"><span style="font-size:10.0pt;font-family:"Courier New"">wds</span></span><code><span style="font-size:10.0pt">nbp.</span></code><span class="searchhit"><span style="font-size:10.0pt;font-family:"Courier New"">com</span></span>
 starts, it initiates a session with the <span class="searchhit">WDS</span> server that was specified in the
<acronym>DHCP</acronym> <code><span style="font-size:10.0pt">next-server</span></code> parameter. The session protocol uses a
<span class="searchhit">com</span>bination of <acronym>DHCP</acronym> requests and responses and
<span class="searchhit">TFTP</span> to provide the client with the appropriate boot loader (such as
<code><span style="font-size:10.0pt">bootmgr.exe</span></code> or <code><span style="font-size:10.0pt">bootmgfw.efi</span></code>) and boot configuration data (BCD).
<o:p></o:p></p>
<p>The <span class="searchhit"><span style="font-size:10.0pt;font-family:"Courier New"">wds</span></span><code><span style="font-size:10.0pt">nbp.</span></code><span class="searchhit"><span style="font-size:10.0pt;font-family:"Courier New"">com</span></span>
 program performs client architecture detection and reports it back to the server via the
<span class="searchhit">WDS</span> session. This session protocol uses <acronym>DHCP</acronym> as an
<acronym>RPC</acronym> service endpoint, and the data passed back and forth (such as architecture information) is encoded in
<acronym>DHCP</acronym> option 250. Together with option 252 (used by <span class="searchhit">
WDS</span> to indicate BCD file name) and the <acronym>DHCP</acronym> <code><span style="font-size:10.0pt">file</span></code> field (pointing the client to the next network boot program), the
<acronym>DHCP</acronym>+<span class="searchhit">TFTP</span> negotiation <span class="searchhit">
com</span>pletes the <span class="searchhit">WDS</span> session. <o:p></o:p></p>
</div>
<h3><a name="example_boot_process" id="example_boot_process">Example boot process</a><o:p></o:p></h3>
<div>
<div>
<ol start="1" type="1">
<li class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level1 lfo1">
Client: <span class="searchhit">iPXE</span> requests <span class="searchhit">TFTP</span>
<code><span style="font-size:10.0pt">/boot/x86/</span></code><span class="searchhit"><span style="font-size:10.0pt;font-family:"Courier New"">wds</span></span><code><span style="font-size:10.0pt">nbp.</span></code><span class="searchhit"><span style="font-size:10.0pt;font-family:"Courier New"">com</span></span>
 from <code><span style="font-size:10.0pt">ip.of.</span></code><span class="searchhit"><span style="font-size:10.0pt;font-family:"Courier New"">wds</span></span><code><span style="font-size:10.0pt">.server</span></code>.<o:p></o:p></li></ol>
</div>
<div>
<ol start="2" type="1">
<li class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level1 lfo1">
Client: <span class="searchhit"><span style="font-size:10.0pt;font-family:"Courier New"">wds</span></span><code><span style="font-size:10.0pt">nbp.</span></code><span class="searchhit"><span style="font-size:10.0pt;font-family:"Courier New"">com</span></span>
 uses a direct <acronym>DHCP</acronym> request to <code><span style="font-size:10.0pt">ip.of.</span></code><span class="searchhit"><span style="font-size:10.0pt;font-family:"Courier New"">wds</span></span><code><span style="font-size:10.0pt">.server</span></code>,
 with no option 250 nor 252 defined.<o:p></o:p></li></ol>
</div>
<div>
<ol start="3" type="1">
<li class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level1 lfo1">
Server: <acronym>DHCP</acronym> response:<o:p></o:p></li></ol>
</div>
<div>
<ol start="3" type="1">
<ul type="circle">
<li class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level2 lfo1">
filename: <code><span style="font-size:10.0pt">boot\x86\</span></code><span class="searchhit"><span style="font-size:10.0pt;font-family:"Courier New"">wds</span></span><code><span style="font-size:10.0pt">nbp.</span></code><span class="searchhit"><span style="font-size:10.0pt;font-family:"Courier New"">com</span></span><o:p></o:p></li></ul>
</ol>
</div>
<div>
<ol start="3" type="1">
<ul type="circle">
<li class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level2 lfo1">
option 250: <code><span style="font-size:10.0pt">0b0101100400000001ff</span></code><o:p></o:p></li></ul>
</ol>
</div>
<div>
<ol start="3" type="1">
<ul type="circle">
<li class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level2 lfo1">
option 252: <code><span style="font-size:10.0pt">\Tmp\x86{<GUID>}.bcd</span></code><o:p></o:p></li></ul>
</ol>
</div>
<div>
<ol start="4" type="1">
<li class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level1 lfo1">
Client: <span class="searchhit"><span style="font-size:10.0pt;font-family:"Courier New"">wds</span></span><code><span style="font-size:10.0pt">nbp.</span></code><span class="searchhit"><span style="font-size:10.0pt;font-family:"Courier New"">com</span></span>
 uses a direct <acronym>DHCP</acronym> request to <code><span style="font-size:10.0pt">ip.of.</span></code><span class="searchhit"><span style="font-size:10.0pt;font-family:"Courier New"">wds</span></span><code><span style="font-size:10.0pt">.server</span></code>:<o:p></o:p></li></ol>
</div>
<div>
<ol start="4" type="1">
<ul type="circle">
<li class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level2 lfo1">
option 250: <code><span style="font-size:10.0pt">0d0208000e010001020006ff</span></code><o:p></o:p></li></ul>
</ol>
</div>
<div>
<ol start="5" type="1">
<li class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level1 lfo1">
Server: <acronym>DHCP</acronym> response:<o:p></o:p></li></ol>
</div>
<div>
<ol start="5" type="1">
<ul type="circle">
<li class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level2 lfo1">
filename: <code><span style="font-size:10.0pt">boot\x86\</span></code><span class="searchhit"><span style="font-size:10.0pt;font-family:"Courier New"">wds</span></span><code><span style="font-size:10.0pt">nbp.</span></code><span class="searchhit"><span style="font-size:10.0pt;font-family:"Courier New"">com</span></span><o:p></o:p></li></ul>
</ol>
</div>
<div>
<ol start="5" type="1">
<ul type="circle">
<li class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level2 lfo1">
option 250: <code><span style="font-size:10.0pt">0b0101100400000001ff</span></code><o:p></o:p></li></ul>
</ol>
</div>
<div>
<ol start="5" type="1">
<ul type="circle">
<li class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level2 lfo1">
option 252: <code><span style="font-size:10.0pt">\Tmp\x86x64{GUID}.bcd</span></code><o:p></o:p></li></ul>
</ol>
</div>
<div>
<ol start="6" type="1">
<li class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level1 lfo1">
Client: <span class="searchhit"><span style="font-size:10.0pt;font-family:"Courier New"">wds</span></span><code><span style="font-size:10.0pt">nbp.</span></code><span class="searchhit"><span style="font-size:10.0pt;font-family:"Courier New"">com</span></span>
 requests <span class="searchhit">TFTP</span> <code><span style="font-size:10.0pt">/boot\x86\</span></code><span class="searchhit"><span style="font-size:10.0pt;font-family:"Courier New"">wds</span></span><code><span style="font-size:10.0pt">nbp.</span></code><span class="searchhit"><span style="font-size:10.0pt;font-family:"Courier New"">com</span></span>
 from <code><span style="font-size:10.0pt">ip.of.</span></code><span class="searchhit"><span style="font-size:10.0pt;font-family:"Courier New"">wds</span></span><code><span style="font-size:10.0pt">.server</span></code>. Note the use of slashes.<o:p></o:p></li></ol>
</div>
<div>
<ol start="7" type="1">
<li class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level1 lfo1">
Client: <span class="searchhit"><span style="font-size:10.0pt;font-family:"Courier New"">wds</span></span><code><span style="font-size:10.0pt">nbp.</span></code><span class="searchhit"><span style="font-size:10.0pt;font-family:"Courier New"">com</span></span>
 uses a direct <acronym>DHCP</acronym> request to <code><span style="font-size:10.0pt">ip.of.</span></code><span class="searchhit"><span style="font-size:10.0pt;font-family:"Courier New"">wds</span></span><code><span style="font-size:10.0pt">.server</span></code>:<o:p></o:p></li></ol>
</div>
<div>
<ol start="7" type="1">
<ul type="circle">
<li class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level2 lfo1">
option 250: <code><span style="font-size:10.0pt">0c01010d0208000e010001020006ff</span></code><o:p></o:p></li></ul>
</ol>
</div>
<div>
<ol start="8" type="1">
<li class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level1 lfo1">
Server: <acronym>DHCP</acronym> response:<o:p></o:p></li></ol>
</div>
<div>
<ol start="8" type="1">
<ul type="circle">
<li class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level2 lfo1">
filename: <code><span style="font-size:10.0pt">boot\x64\pxeboot.n12</span></code>.<o:p></o:p></li></ul>
</ol>
</div>
<div>
<ol start="8" type="1">
<ul type="circle">
<li class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level2 lfo1">
option 250: <code><span style="font-size:10.0pt">0b0101100400000001ff</span></code><o:p></o:p></li></ul>
</ol>
</div>
<div>
<ol start="8" type="1">
<ul type="circle">
<li class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level2 lfo1">
option 252: <code><span style="font-size:10.0pt">\Tmp\x86x64{GUID}.bcd</span></code><o:p></o:p></li></ul>
</ol>
</div>
<div>
<ol start="9" type="1">
<li class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level1 lfo1">
Client: <span class="searchhit"><span style="font-size:10.0pt;font-family:"Courier New"">wds</span></span><code><span style="font-size:10.0pt">nbp.</span></code><span class="searchhit"><span style="font-size:10.0pt;font-family:"Courier New"">com</span></span>
 requests <span class="searchhit">TFTP</span> <code><span style="font-size:10.0pt">/boot\x64\pxeboot.n12</span></code>.<o:p></o:p></li></ol>
</div>
<div>
<ol start="10" type="1">
<li class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level1 lfo1">
Client: <code><span style="font-size:10.0pt">pxeboot</span></code> requests <span class="searchhit">
TFTP</span> <code><span style="font-size:10.0pt">/boot\x64\bootmgr.exe</span></code>.<o:p></o:p></li></ol>
</div>
<div>
<ol start="11" type="1">
<li class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level1 lfo1">
Client: <code><span style="font-size:10.0pt">pxeboot</span></code> requests <span class="searchhit">
TFTP</span> <code><span style="font-size:10.0pt">\Tmp\x86x64{GUID}.bcd</span></code>.<o:p></o:p></li></ol>
</div>
<div>
<ol start="12" type="1">
<li class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level1 lfo1">
Client: <code><span style="font-size:10.0pt">bootmgr.exe</span></code> executes and reads the BCD.<o:p></o:p></li></ol>
</div>
</div>
<p class="li"> <o:p></o:p></p>
<p class="li"><strong>My situation</strong> is a DHCP on a server2012 and a WDS on another server2012r2, and I'm booting a WinPE on a client computer.<o:p></o:p></p>
<p class="li"> <o:p></o:p></p>
<p class="li"><strong>The question</strong> 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.<o:p></o:p></p>
<p class="li"> <o:p></o:p></p>
<p class="li"><strong>But when</strong> I boot using iPXE(undionly.kpxe, latest version), it stucks in a loop, repeats loading wdsnbp.com again and again.<o:p></o:p></p>
<p class="li"> <o:p></o:p></p>
<p class="li"><strong>I had</strong> a look in wireshark and found that the problem is at the boot process<strong> step 7</strong>, copied above.
<o:p></o:p></p>
<p class="li"> <o:p></o:p></p>
<p class="li"><strong>When in gPXE</strong>, wdsnbp.com sends a DHCP request with option 250
<span style="font-family:"Courier New"">0c01010d0208000e010001020006ff, and then the process goes to next process step 8.
</span><o:p></o:p></p>
<p class="li"> <o:p></o:p></p>
<p class="li"><strong><span style="font-family:"Courier New"">But when in iPXE</span></strong><span style="font-family:"Courier New"">, wdsnbp.com sends
</span><span style="font-family:SimSun">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. </span><o:p></o:p></p>
<p class="li"> <o:p></o:p></p>
<p class="li">What should I do with this problem?<o:p></o:p></p>
<p class="li"> <o:p></o:p></p>
<p class="li">Thanks for your consiseration.<o:p></o:p></p>
<p class="li">Looking forward to your answer.<o:p></o:p></p>
<p class="li"> <o:p></o:p></p>
<p class="MsoNormal" style="margin-bottom:12.0pt"><br>
<br>
<o:p></o:p></p>
</div>
</body>
</html>