Description of problem: I recently upgraded my FC4 server installation to FC5, and experienced a failure in dhcp, which prevented my diskless client to boot. The client is running the PXE protocol from a etherboot 5.3.14 based CD and a Realtek RTL-8139B network card. The client is stuck at the "Waiting for server (DHCP)" message. dhcp version used on the server was dhcp 3.0.3-26, a downgrade to FC4 dhcp (dhcp-3.0.2-12) fixed the problem (using the same config file). dhcpd.conf is like this: subnet 10.0.0.0 netmask 255.255.255.0 { range 10.0.0.100 10.0.0.200; option broadcast-address 10.0.0.255; option routers 10.0.0.1; authoritative; } host dvr { hardware ethernet 00:e0:4c:60:31:92; fixed-address 10.0.0.5; filename "linux-install/pxelinux.0"; } Version-Release number of selected component (if applicable): dhcp-3.0.3-26 How reproducible: always Steps to Reproduce: 1. upgrade to dhcp-3.0.3-26 and reboot client Actual results: Client hangs on PXE boot Expected results: Successfull boot into FC4 environment (created by system-config-netboot) Additional info: tcpdump from successfull PXE boot (server = morris, client = vdr): 18:39:44.815197 IP 0.0.0.0.bootpc > 255.255.255.255.bootps: BOOTP/DHCP, Request from 00:e0:4c:60:31:92, length: 548 18:39:44.815813 IP morris.localdomain.bootps > dvr.localdomain.bootpc: BOOTP/DHCP, Reply, length: 300 18:39:44.816004 IP dvr.localdomain.bootpc > 255.255.255.255.bootps: BOOTP/DHCP, Request from 00:e0:4c:60:31:92, length: 548 18:39:44.816349 IP morris.localdomain.bootps > dvr.localdomain.bootpc: BOOTP/DHCP, Reply, length: 300 18:39:44.822137 arp who-has morris.localdomain tell dvr.localdomain 18:39:44.822166 arp reply morris.localdomain is-at 00:02:b3:a7:25:ff 18:39:44.822221 IP dvr.localdomain.2001 > morris.localdomain.tftp: 46 RRQ "linux-install/pxelinux.0" octet blksize 1432 tcpdump from failed PXE-boot: 20:46:53.570280 IP 0.0.0.0.bootpc > 255.255.255.255.bootps: BOOTP/DHCP, Request from 00:e0:4c:60:31:92 (oui Unknown), length: 548 20:46:53.571484 IP morris.localdomain.bootps > dvr.localdomain.bootpc: BOOTP/DHCP, Reply, length: 300 20:47:04.252996 IP 0.0.0.0.bootpc > 255.255.255.255.bootps: BOOTP/DHCP, Request from 00:e0:4c:60:31:92 (oui Unknown), length: 548 20:47:04.254019 IP morris.localdomain.bootps > dvr.localdomain.bootpc: BOOTP/DHCP, Reply, length: 300 20:47:24.630326 IP 0.0.0.0.bootpc > 255.255.255.255.bootps: BOOTP/DHCP, Request from 00:e0:4c:60:31:92 (oui Unknown), length: 548 20:47:24.631487 IP morris.localdomain.bootps > dvr.localdomain.bootpc: BOOTP/DHCP, Reply, length: 300 Looks like the response packet sent by the server is not understood by the client: 20:47:24.631487 IP (tos 0x10, ttl 16, id 0, offset 0, flags [none], proto: UDP (17), length: 328) morris.localdomain.bootps > dvr.localdomain.bootpc: BOOTP/DHCP, Reply, length: 300, xid:0x4c74f9d2, secs:31, flags: [none] (0x0000) Your IP: dvr.localdomain Client Ethernet Address: 00:e0:4c:60:31:92 (oui Unknown) [|bootp] 0x0000: 00e0 4c60 3192 0002 b3a7 25b4 0800 4510 ..L`1.....%...E. 0x0010: 0148 0000 0000 1011 9590 0a00 0001 0a00 .H.............. 0x0020: 0005 0043 0044 0134 0eb2 0201 0600 4c74 ...C.D.4......Lt 0x0030: f9d2 001f 0000 0000 0000 0a00 0005 0000 ................ 0x0040: 0000 0000 0000 00e0 4c60 3192 0000 0000 ........L`1..... 0x0050: 0000 0000 0000 0000 0000 0000 0000 0000 ................
Apparently my dhcpd.conf was missing the "next-server" directive. Setting this resolved the issue. From dhcp ChangeLog: - fix default 'boot file server' value (packet->siaddr): In dhcp-3.0.2(-), this was defaulted to the server address; now it defaults to 0.0.0.0 (a rather silly default!) and must be specified with the 'next-server' option ( not the tftp-boot-server option ?!?) which causes PXE boot clients to fail to load anything after the boot file.