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-net" 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>
