Discussion:
[gPXE git/1.0.1/1.0.0] Two DHCP, with and without boot options, wrong one is used
nicopsycho
2011-01-14 16:31:00 UTC
Permalink
Hi, I'm new to discuss list so, please be kind ^^


The network setup, composed of 3 distinct machines:
1/ a DHCP server with no boot option (no 66 or 67) aka the real DHCP
2/ a DHCP gateway which patches the answers of the DHCP with boot
options (option 67 boot file name and next-server) aka the gateway
3/ a target DELL GX280 aka the client


Restriction:
- I would like to make this work and most of all avoid modifying the
real DHCP config, and NOT using the native/onboard PXE rom.


What works:
- Using the PXE native boot on the client. Boots, uses the answer from
the gateway because it contains the boot informations, ignores the
answer from the real DHCP. OK.
- Using the gPXE on the client, modifying the real DHCP adding the
next-server and boot filename options. Boots, gets the info from the
real DHCP. OK.


What fails:
- Using gPXE on the client, put the real DHCP back to its original state
(no boot options). Boots, gets the info from the real DHCP (no boot
options), fails with "no root path or filename". FAIL.
Captured the frames in promiscous mode on the gateway, the real DHCP
answer has no boot info, but the gateway answer does.
gPXE versions used: from rom-o-matic, latest, 1.0.1, 1.0.0, from git
repo, compiled latest. medium used: iso for CDROM, burnt on CD-RW.


The problem/bug?
The gPXE does not seem to ignore the real DHCP answer even thought it
does not contain boot info, the very next answer on the network does
contain boot info but gPXE does not seem to go that far.
From what i understand gPXE is supposed to use a valid answer, and
valid would be with boot info.

From the website documention for etherboot/gpxe there was an option
-DREQUIRE_VCI_ETHERBOOT and -DALLOW_ONLY_ENCAPSULATED but after a while
I realised it was only for etherboot, not gPXE. This doc was from
2003... Even though I thought I should give a shot and that those
options were somehow present as a default in gPXE, at least for the
VCI_ETHERBOOT one... So I added the described options in the gateway
answer, meaning adding option 43 with as value: option 60 9 in length
and Etherboot as message... (option vendor-encapsulated-options
3c:09:45:74:68:65:72:62:6f:6f:74:ff; from the online documentation at
http://etherboot.org/wiki/usermanual?s[]=compilation&s[]=options#require_vci_etherboot)
The option I added is present in my WireShark capture but made no
difference...

Is there a way to ensure gPXE uses the answer with the boot info and
skip the (first) one which does not have them? Like a real PXE rom?
I have been to the #Etherboot channel asking all this, and the feedback
was that it might be a bug... but again it was not a developer...

Any suggestion?

Loading...