Skip site navigation (1)Skip section navigation (2)
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>