PXE Boot Problems

Martyn Welch martyn.welch at ge.com
Wed Dec 8 12:31:58 UTC 2010


I have been using the ISC DHCP server to PXE boot an number of hosts for
development and testing for a number of years. I tend to use the version
of the ISC DHCP server provided as part of the Linux distribution I am
using at the time, until now that has been based on 3.0.3 (part of
Ubuntu 8.04 LTS) however we are in the process of moving towards one
based on 3.1.3 (part of Ubuntu 10.04 LTS).

This is the cut-down configuration that I have been using to try and
resolve my problem:

# DHCP Server Configuration file.
#   see /usr/share/doc/dhcp*/dhcpd.conf.sample
ddns-update-style none;

subnet netmask {
        default-lease-time 3600;
        max-lease-time 4800;
        option routers;
        option subnet-mask;
        option domain-name "test.lan";
        option time-offset -7;

host job912f9d725d218e6bb0c42e533c8b08e0-0 {
	hardware ethernet 00:80:8e:02:57:ca;
	option tftp-server-name "";
	option bootfile-name "pxefile0";
	filename "pxefile0";

This seems to work with the newer version of the ISC DHCP server for
most of our hosts, though it is failing for newer hosts using the Intel
Boot Agent.

I have studied the packets using wireshark and have found that where as
our PowerPC hosts (using U-Boot) receive the "next-server" and
"filename" entries in the dhcp offer, these entries are null for those
boards using the Intel Boot Agent. Looking at the dhcp discover packets
shows that the Intel boards are providing a Parameter Request List
(which the U-Boot based boards aren't) including options 66 and 67 (tftp
server and bootfile name), but these options don't seem to be passed to
the board.

If I add the "option bootfile-name" entry to the subnet section, this
gets sent to the boards, but I can't then specify a different boot file
for each board (which is what I need to do).

I have tried adding group sections and specifying the bootfile-name
there, I've tried to find a way to force the old (bootp?) response but
haven't found a way which works. I have tried a newer version of the
DHCP server (I found a v4.1.2 build for Ubuntu 10.04) but that didn't
seem to work either.

Am I trying to do something that fundamentally can't be done or is this
just some configuration that I have completely missed?

Thank you in advance for any help,


Martyn Welch (Principal Software Engineer)   |   Registered in England and
GE Intelligent Platforms                     |   Wales (3828642) at 100
T +44(0)127322748                            |   Barbirolli Square,
E martyn.welch at ge.com                        |   M2 3AB  VAT:GB 927559189

More information about the dhcp-users mailing list