xref: /freebsd/libexec/bootpd/README (revision d0b2dbfa0ecf2bbc9709efc5e20baf8e4b44bbbf)
144099b7bSPaul Traina
244099b7bSPaul TrainaThis is an enhanced version of the CMU BOOTP server which was derived
344099b7bSPaul Trainafrom the original BOOTP server created by Bill Croft at Stanford.
444099b7bSPaul TrainaThis version merges all the enhancements and bug-fixes from the
544099b7bSPaul TrainaNetBSD, Columbia, and other versions.
644099b7bSPaul Traina
744099b7bSPaul TrainaPlease direct questions, comments, and bug reports to the list:
844099b7bSPaul Traina	<bootp@andrew.cmu.edu>
944099b7bSPaul Traina
1044099b7bSPaul TrainaYou can subscribe to this mailing list by sending mail to:
1144099b7bSPaul Traina	bootp-request@andrew.cmu.edu
1244099b7bSPaul Traina(The body of the message should contain: "Add <your-address>")
1344099b7bSPaul Traina
1444099b7bSPaul Traina[ From the NetBSD README file: ]
1544099b7bSPaul Traina
1644099b7bSPaul TrainaBOOTPD is a useful adjunct to the nfs diskless boot EPROM code.
1744099b7bSPaul Traina
1844099b7bSPaul TrainaThe alternatives for initiating a boot of a kernel across a network
1944099b7bSPaul Trainaare to use RARP protocol, or BOOTP protocol. BOOTP is more flexible;
2044099b7bSPaul Trainait allows additional items of information to be returned to the
2144099b7bSPaul Trainabooting client; it also supports booting across gateways.
2244099b7bSPaul Traina
2344099b7bSPaul Traina[ From the CMU README file: ]
2444099b7bSPaul Traina
2544099b7bSPaul TrainaNotes:
2644099b7bSPaul Traina1) BOOTP was originally designed and implemented by Bill Croft at Stanford.
2744099b7bSPaul Traina   Much of the credit for the ideas and the code goes to him.  We've added
2844099b7bSPaul Traina   code to support the vendor specific area of the packet as specified in
2944099b7bSPaul Traina   RFC1048.  We've also improved the host lookup algorithm and added some
3044099b7bSPaul Traina   extra logging.
3144099b7bSPaul Traina
3244099b7bSPaul Traina2) The server now uses syslog to do logging.  Specifically it uses the 4.3bsd
3344099b7bSPaul Traina   version.  I've #ifdef'd all of these calls.  If you are running 4.2 you
3444099b7bSPaul Traina   should compile without the -DSYSLOG switch.
3544099b7bSPaul Traina
3644099b7bSPaul Traina3) You must update your /etc/services file to contain the following two lines:
3744099b7bSPaul Traina	bootps		67/udp		bootp		# BOOTP Server
3844099b7bSPaul Traina	bootpc		68/udp				# BOOTP Client
3944099b7bSPaul Traina
4044099b7bSPaul Traina4) Edit the bootptab.  It has some explanitory comments, and there
4144099b7bSPaul Traina   is a manual entry describing its format (bootptab.5)
4244099b7bSPaul Traina   If you have any questions, just let us know.
4344099b7bSPaul Traina
4444099b7bSPaul TrainaConstruction:
4544099b7bSPaul Traina    [ See the file Installation which is more up-to-date. -gwr ]
4644099b7bSPaul Traina
4744099b7bSPaul Traina    Make sure all of the files exist first.  If anything is missing,
4844099b7bSPaul Traina    please contact either Walt Wimer or Drew Perkins by E-mail or phone.
4944099b7bSPaul Traina    Addresses and phone numbers are listed below.
5044099b7bSPaul Traina
5144099b7bSPaul Traina    Type 'make'.  The options at present are: -DSYSLOG which enables logging
5244099b7bSPaul Traina    code, -DDEBUG which enables table dumping via signals, and -DVEND_CMU
5344099b7bSPaul Traina    which enables the CMU extensions for CMU PC/IP.
5444099b7bSPaul Traina
5544099b7bSPaul Traina    Edit the bootptab.  The man page and the comments in the file should
5644099b7bSPaul Traina    explain how to go about doing so.  If you have any problems, let me know.
5744099b7bSPaul Traina
5844099b7bSPaul Traina    Type 'make install'.  This should put all of the files in the right place.
5944099b7bSPaul Traina
6044099b7bSPaul Traina    Edit your /etc/rc.local or /etc/inetd.conf file to start up bootpd upon
6144099b7bSPaul Traina    reboot.  The following is a sample /etc/inetd.conf entry:
6244099b7bSPaul Traina	# BOOTP server
6344099b7bSPaul Traina	bootps dgram udp wait root /usr/etc/bootpd bootpd -i
6444099b7bSPaul Traina
6544099b7bSPaul TrainaCare and feeding:
6644099b7bSPaul Traina    If you change the interface cards on your host or add new hosts you will
6744099b7bSPaul Traina    need to update /etc/bootptab.  Just edit it as before.  Once you write
6844099b7bSPaul Traina    it back out, bootpd will notice that there is a new copy and will
6944099b7bSPaul Traina    reread it the next time it gets a request.
7044099b7bSPaul Traina
7144099b7bSPaul Traina    If your bootp clients don't get a response then several things might be
7244099b7bSPaul Traina    wrong.  Most often, the entry for that host is not in the database.
7344099b7bSPaul Traina    Check the hardware address and then check the entry and make sure
7444099b7bSPaul Traina    everything is right.  Other problems include the server machine crashing,
7544099b7bSPaul Traina    bad cables, and the like.  If your network is very congested you should
7644099b7bSPaul Traina    try making your bootp clients send additional requests before giving up.
7744099b7bSPaul Traina
7844099b7bSPaul Traina
7944099b7bSPaul TrainaNovember 7, 1988
8044099b7bSPaul Traina
8144099b7bSPaul Traina
8244099b7bSPaul TrainaWalter L. Wimer			Drew D. Perkins
8344099b7bSPaul Trainaww0n@andrew.cmu.edu		ddp@andrew.cmu.edu
8444099b7bSPaul Traina(412) 268-6252			(412) 268-8576
8544099b7bSPaul Traina
8644099b7bSPaul Traina4910 Forbes Ave
8744099b7bSPaul TrainaPittsburgh, PA  15213
8844099b7bSPaul Traina
8944099b7bSPaul Traina[ Contents description by file: ]
9044099b7bSPaul Traina
9144099b7bSPaul TrainaAnnounce*	Text of release announcements
9244099b7bSPaul TrainaChanges  	Change history, reverse chronological
93e08ac58bSPaul TrainaConvOldTab.sh	Script to convert old (1.x) bootptab files
9444099b7bSPaul TrainaInstallation	Instructions for building and installing
9544099b7bSPaul TrainaMakefile*	for "make"
9644099b7bSPaul TrainaREADME		This file
9744099b7bSPaul TrainaToDo		Things not yet done
9844099b7bSPaul Trainabootp.h		The protocol header file
9944099b7bSPaul Trainabootpd.8	Manual page for bootpd, boopgw
10044099b7bSPaul Trainabootpd.c	BOOTP server main module
10144099b7bSPaul Trainabootpd.h	 header for above (and others)
10244099b7bSPaul Trainabootpef.8	Manual page for bootpef
10344099b7bSPaul Trainabootpef.c	BOOTP extension file compiler
10444099b7bSPaul Trainabootpgw.c	BOOTP gateway main module
10544099b7bSPaul Trainabootptab.5	A manual describing the bootptab format
10644099b7bSPaul Trainabootptab.cmu	A sample database file for the server
10744099b7bSPaul Trainabootptab.mcs	Another sample from <gwr@mc.com>
10844099b7bSPaul Trainabootptest.8	Manual page for bootptest
10944099b7bSPaul Trainabootptest.c	BOOTP test program (fake client)
11044099b7bSPaul Trainabootptest.h	 header for above
11144099b7bSPaul Trainadovend.c	Vendor Option builder (for bootpd, bootpef)
11244099b7bSPaul Trainadovend.h	 header for above
11344099b7bSPaul Trainadumptab.c	Implements debugging dump for bootpd
11444099b7bSPaul Trainagetether.c	For bootptest (not used yet)
115e08ac58bSPaul Trainagetether.h	 header for above
11644099b7bSPaul Trainagetif.c		Get network interface info.
11744099b7bSPaul Trainagetif.h		 header for above
11844099b7bSPaul Trainahash.c		The hash table module
11944099b7bSPaul Trainahash.h		 header for above
12044099b7bSPaul Trainahwaddr.c	Hardware address support
12144099b7bSPaul Trainahwaddr.h	 header for above
12244099b7bSPaul Trainalookup.c	Internet Protocol address lookup
12344099b7bSPaul Trainalookup.h	 header for above
12444099b7bSPaul Trainapatchlevel.h	Holds version numbers
12544099b7bSPaul Trainaprint-bootp.c	Prints BOOTP packets (taken from BSD tcpdump)
12644099b7bSPaul Trainareadfile.c	The configuration file-reading routines
12744099b7bSPaul Trainareadfile.h	 header for above
12844099b7bSPaul Trainareport.c	Does syslog-style messages
12944099b7bSPaul Trainareport.h	 header for above
13044099b7bSPaul Trainastrerror.c	Library errno-to-string (for systems lacking it)
13144099b7bSPaul Trainasyslog.conf	Sample config file for syslogd(8)
13244099b7bSPaul Trainasyslog.h	For systems that lack syslog(3)
13344099b7bSPaul Trainatry*.c		Test programs (for debugging)
13444099b7bSPaul Trainatzone.c		Get timezone offset
13544099b7bSPaul Trainatzone.h		 header for above
136