[ipxe-devel] iPXE DHCP failure

Michael Cirineo jeriryan87 at gmail.com
Thu May 12 18:54:35 BST 2011

Het mailing list,

I'm having a problem getting DHCP requests to complete.  I originally posted this problem in the iPXE forum:http://forum.ipxe.org/showthread.php?tid=24
I apologize for the length of the following email, but I wanted to be thorough.
I found iPXE because I needed a PXE client that supported vlan tagging. I've been using it successfully for months, but just recently it stopped having successful DHCP exchanges. I did a Wireshark capture of the DHCP exchange between the client and the DHCP server (which also serves out the pxelinux.0 later) and there is a full DHCP exchange, but there are a ton of repeated packets on the part of the diskless client. He sends around 10 DHCP discovers before he realizes that he's been getting DHCP offers, and h e sends another 10 DHCP requests, receiving DHCP ACKs all the while. The problem is, the DHCP request in iPXE eventually times out. I guess the client is just ignoring the ACKs that I'm seeing it receive (I'm mirroring its port on its switch, which is how I'm able to monitor the exchange).
I'm not a complete expert on DHCP, is there some sort of timeout for each request, where if he doesn't receive an OFFER after his DISCOVER he sends another DISCOVER, ignoring any OFFERs that eventually come in from previous DISCOVERs?
I'm just really trying to figure out why none of the ACKs I clearly see him receive are taking, and I'm thinking maybe the ACKs are taking too long? The DHCP server works just fine for some other hardware I have (not using iPXE, just built-in Intel PXE).
Is there some way I can do a DHCP in verbose mode or something to get more information about how iPXE is processing the DHCP it gets?
I did a Wireshark capture of a different machine using the Intel PXE boot loader that supports VLAN tagging (on different hardware) and compared the packets with iPXE, and I noticed that there were different DHCP options set, such the Broadcast flag being set to Unicast on iPXE.
Now I've disabled VLAN tagging to make sure it wasn't messing anything up. I've used both chainloading and boot CD in the past, both have worked. As a test for hardware failure, I used the trusty boot CD that has always worked on another machine with identical hardware, still doesn't work now. I'm seeing tons of repeated DHCP packets from the client and he's ignoring the ACKs I'm seeing him receive. He must eventually receive a DHCP OFFER from the server he likes because he does e ventually send (10) DHCP REQUESTs. And once in a blue moon, like once every 25 reboots, he takes the IP. Once in a while, he likes the ACK he's receiving or it comes fast enough (like I said, I have no idea if DHCP requests time out and how often).
The worst part is that the Intel PXE bootloader works just fine, does a perfect DHCP request (since I disabled VLAN tagging, I was able to test using the default Intel program).
The network card in question is an Intel 8086:105e and I was using a version from a couple months ago (ipxe-HEAD-72d387e) but now I'm using the latest version of iPXE, just captured it from the source and built it yesterday.
Most recently I removed all VLANs and attempted DHCP with the Intel PXE loader that came with the hardware. It takes a while but succeeds. I then resta rted and did an identical test with iPXE from my boot CD. Nothing.  I'm starting to think it has to do with how long the iPXE waits for DHCP but I'm not sure.
It's just so frustrating when something used to work, and then just doesn't, you know?

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ipxe.org/pipermail/ipxe-devel/attachments/20110512/01288373/attachment.html>

More information about the ipxe-devel mailing list