Date: Sat, 16 Oct 1999 12:12:06 -0400 (EDT) From: Andrew Gallatin <gallatin@cs.duke.edu> To: freebsd-alpha@freebsd.org Cc: freebsd-net@freebsd.org Subject: diskless booting: netboot loader problem Message-ID: <14344.39286.675388.510743@grasshopper.cs.duke.edu>
next in thread | raw e-mail | index | archive | help
I've been converting my net over from using bootp on a Digital UNIX server to using isc-dhcpd2. I'm having some trouble booting FreeBSD/alpha boxes because of what might be a bug in the netboot loader. (or it might just be my lack of experience w/dhcp, maybe somebody can tell me..). The problem seems to be that a DHCP server will reply to the netboot loader's DHCPDISCOVER by sending the reply to its fixed address, not broadcasting the reply. So the client never sees the reply. More details: My dhcpd.conf looks like this: deny unknown-clients ; allow bootp; subnet 152.3.XXX.0 netmask 255.255.255.0 { group { use-host-decl-names on ; # key to netbooting Digital Unix clients always-reply-rfc1048 on ; filename "/freebsd/diskless.alpha/boot/netboot"; option root-path "152.3.YYY.WWW:/freebsd/diskless.alpha/" ; host client { hardware ethernet 08:00:2b:86:6e:e0 ; fixed-address 152.3.YYY.XXX ; } } This works well for the initial load of the netboot loader from "/freebsd/diskless.alpha/boot/netboot" via the SRM console. I see a BOOTREQUEST from 08:00:2b:86:6e:e0 via fxp0 (non-rfc1048) BOOTREPLY for 152.3.YYY.XXX to client (08:00:2b:86:6e:e0) via fxp0 However, when the netboot loader is loaded, it tries to find out what its address is & where its root path, etc lies. It proceeds to send a DHPDISCOVER. The problem is that the dhcp server is sending a DHCPOFFER to 152.3.YYY.XXX, it is NOT broadcasting it. So the poor client never sees it. Eg, a tcpdump looks like this: tcpdump: listening on fxp0 11:36:19.302956 0.0.0.0.bootpc > 255.255.255.255.bootps: xid:0x37b23a44 secs:3 [|bootp] 11:36:26.303848 0.0.0.0.bootpc > 255.255.255.255.bootps: xid:0x37b23a44 secs:10 [|bootp] 11:36:26.305769 dhcpserver.cs.duke.edu.bootps > 255.255.255.255.bootpc: xid:0x37b23a44 secs:10 Y:client.cs.duke.edu S:dhcpserver.cs.duke.edu [|bootp] [tos 0x10] 11:36:26.331609 arp who-has dhcpserver.cs.duke.edu tell client.cs.duke.edu 11:36:26.331653 arp reply dhcpserver.cs.duke.edu is-at 0:a0:c9:9a:b2:f4 11:36:26.336821 client.cs.duke.edu.14079 > dhcpserver.cs.duke.edu.tftp: 45 RRQ "/freebsd/diskless.alpha/" [|tftp] 11:36:26.693814 dhcpserver.cs.duke.edu.3630 > client.cs.duke.edu.14079: udp 516 <....> 11:36:36.332410 0.0.0.0.bootpc > 255.255.255.255.bootps: secs:6 [|bootp] 11:36:36.334891 dhcpserver.cs.duke.edu.bootps > client.cs.duke.edu.bootpc: secs:6 Y:client.cs.duke.edu S:dhcpserver.cs.duke.edu [|bootp] [tos 0x10] 11:36:41.122377 0.0.0.0.bootpc > 255.255.255.255.bootps: secs:41 [|bootp] 11:36:41.124853 dhcpserver.cs.duke.edu.bootps > client.cs.duke.edu.bootpc: secs:41 Y:client.cs.duke.edu S:dhcpserver.cs.duke.edu [|bootp] [tos 0x10] 11:36:50.396375 rarp who-is 8:0:2b:86:6e:e0 tell 8:0:2b:86:6e:e0 11:36:52.216760 rarp who-is 8:0:2b:86:6e:e0 tell 8:0:2b:86:6e:e0 If I comment out #define SUPPORT_DHCP in lib/libstand/bootp.c, the netboot loader sends a bootp request (not dhcp) and all is well. Can I work around this by some clever dhcpd.conf option, or is the netboot loader broken. Thanks, Drew ------------------------------------------------------------------------------ Andrew Gallatin, Sr Systems Programmer http://www.cs.duke.edu/~gallatin Duke University Email: gallatin@cs.duke.edu Department of Computer Science Phone: (919) 660-6590 To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-alpha" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?14344.39286.675388.510743>