2

I am trying to have an ubuntu box (192.168.10.9) acting as a PXE server, but i have trouble getting DHCP to work.
The PXE server is connected to a SOHO router (192.168.10.1) acting as a switch.
I have disabled the DHCP server on the router.

$ dhcpd --version
isc-dhcpd-4.2.4

The contents of /etc/dhcp/dhcpd.conf

ddns-update-style none;

option domain-name-servers 192.168.10.1;

default-lease-time 3600;
max-lease-time 7200;

authoritative;

log-facility local7;

allow booting;
allow bootp;

subnet 192.168.10.0 netmask 255.255.255.0 {
   range dynamic-bootp 192.168.10.101 192.168.10.200;
   option routers 192.168.10.1;
   option broadcast-address 192.168.10.255;
   next-server 192.168.10.9;

   filename "/tftpboot/pxelinux.0";
}

The contents of /etc/default/isc-dhcp-server

INTERFACES="eth0"

When the client boots, it tries to get an IP address from the server but fails with the following Error message:

PXE-E51: No DHCP or proxyDHCP offers were received.

On Server side, i was tailing /var/log/syslog while the client tries to boot:

Dec  4 12:57:10 athspk-Dell dhcpd: DHCPDISCOVER from 00:1f:d0:8e:6b:db via eth0
Dec  4 12:57:11 athspk-Dell dhcpd: DHCPOFFER on 192.168.10.101 to 00:1f:d0:8e:6b:db via eth0
Dec  4 12:57:12 athspk-Dell dhcpd: DHCPDISCOVER from 00:1f:d0:8e:6b:db via eth0
Dec  4 12:57:12 athspk-Dell dhcpd: DHCPOFFER on 192.168.10.101 to 00:1f:d0:8e:6b:db via eth0
Dec  4 12:57:17 athspk-Dell dhcpd: DHCPDISCOVER from 00:1f:d0:8e:6b:db via eth0
Dec  4 12:57:17 athspk-Dell dhcpd: DHCPOFFER on 192.168.10.101 to 00:1f:d0:8e:6b:db via eth0
Dec  4 12:57:25 athspk-Dell dhcpd: DHCPDISCOVER from 00:1f:d0:8e:6b:db via eth0
Dec  4 12:57:25 athspk-Dell dhcpd: DHCPOFFER on 192.168.10.101 to 00:1f:d0:8e:6b:db via eth0

1 Answer 1

1

The DHCP server is offering an address, but the firmware is going to error out (cryptically) if it isn't able to pull a boot image. Take a close look at the tftp server settings on 192.168.0.9. I'm not sure which tftp server you're using, but generally the path is relative to the directory passed to the daemon on startup, rather than an absolute path. Fire up a tftp client on another machine and try downloading a file from the same directory to confirm proper function.

Alternately, try running a packet capture to watch precisely what the DHCP server is offering to the client and what actions the client is taking as a result.

2
  • I am using tftpd-hpa. You are right about the path being relative. filename "pxelinux.0"; works now. So, if i understand correctly, TFTP server is used to transfer ONLY the pxelinux.0 and menu files... and then the NFS server takes over for the rest of the transmission?
    – athspk
    Dec 6, 2012 at 21:39
  • The kernel and initrd specified on the command line are also transferred via TFTP, unless a different transport (i.e. http) is specified. Once these have been downloaded then whatever filesystem you've specified (i.e. local disk, NFS) will take over.
    – rnxrx
    Dec 7, 2012 at 4:36

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.