h***@gmail.com
2016-09-27 21:19:29 UTC
I am working on getting some diskless Sun machines running again.
At one point in booting, the host broadcasts to a server using 255.255.255.255.
Specifically, this is contacting the bootparamd server.
Compiling bootparamd on either FreeBSD or Linux, it does not
receive such requests. Compiling on OS X, it does.
I have rarp, tftp, and nfsd running on FreeBSD just fine, but
can only complete the boot with bootparamd on OS X.
In more detail, it works like this:
Client broadcasts (not using IP) to an RARP server,
to ask for its IP address.
RARP server unicasts the reply (again, not IP).
Client unicasts using UDP to a tftp server, using the
server address of the replying RARP server. Using
TFTP, it downloads the boot program.
Boot program runs, and uses RARP to again ask for
its IP address. (It isn't passed through from above.)
Client broadcasts to UDP/IP address 255.255.255.255
for a bootparamd server.
Using the callbootd test program, I can verify that the
server responds to unicast requests on both FreeBSD
and Linux.
I use the same C source, and same /etc/bootparams file
on all hosts, though with changes in #include file names
that are system specific. (Such as the directory for rpc.h.)
Are all hosts supposed to accept UDP broadcasts to 255.255.255.255?
thanks,
-- glen
At one point in booting, the host broadcasts to a server using 255.255.255.255.
Specifically, this is contacting the bootparamd server.
Compiling bootparamd on either FreeBSD or Linux, it does not
receive such requests. Compiling on OS X, it does.
I have rarp, tftp, and nfsd running on FreeBSD just fine, but
can only complete the boot with bootparamd on OS X.
In more detail, it works like this:
Client broadcasts (not using IP) to an RARP server,
to ask for its IP address.
RARP server unicasts the reply (again, not IP).
Client unicasts using UDP to a tftp server, using the
server address of the replying RARP server. Using
TFTP, it downloads the boot program.
Boot program runs, and uses RARP to again ask for
its IP address. (It isn't passed through from above.)
Client broadcasts to UDP/IP address 255.255.255.255
for a bootparamd server.
Using the callbootd test program, I can verify that the
server responds to unicast requests on both FreeBSD
and Linux.
I use the same C source, and same /etc/bootparams file
on all hosts, though with changes in #include file names
that are system specific. (Such as the directory for rpc.h.)
Are all hosts supposed to accept UDP broadcasts to 255.255.255.255?
thanks,
-- glen