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