xref: /netbsd-src/usr.sbin/bootp/bootpd/README (revision bcb13bab8eb70ec0ee1667451c71e8a16f7774d4)
15e9d01f2Sgwr
25e9d01f2SgwrThis is an enhanced version of the CMU BOOTP server which was derived
35e9d01f2Sgwrfrom the original BOOTP server created by Bill Croft at Stanford.
45e9d01f2SgwrThis version merges all the enhancements and bug-fixes from the
55e9d01f2SgwrNetBSD, Columbia, and other versions.
65e9d01f2Sgwr
7*bcb13babSgwrPlease direct questions, comments, and bug reports to the list:
8*bcb13babSgwr	<bootp@andrew.cmu.edu>
95e9d01f2Sgwr
105e9d01f2SgwrYou can subscribe to this mailing list by sending mail to:
115e9d01f2Sgwr	bootp-request@andrew.cmu.edu
125e9d01f2Sgwr(The body of the message should contain: "Add <your-address>")
135e9d01f2Sgwr
145e9d01f2Sgwr[ From the NetBSD README file: ]
155e9d01f2Sgwr
165e9d01f2SgwrBOOTPD is a useful adjunct to the nfs diskless boot EPROM code.
175e9d01f2Sgwr
185e9d01f2SgwrThe alternatives for initiating a boot of a kernel across a network
195e9d01f2Sgwrare to use RARP protocol, or BOOTP protocol. BOOTP is more flexible;
205e9d01f2Sgwrit allows additional items of information to be returned to the
215e9d01f2Sgwrbooting client; it also supports booting across gateways.
225e9d01f2Sgwr
235e9d01f2Sgwr[ From the CMU README file: ]
245e9d01f2Sgwr
255e9d01f2SgwrNotes:
265e9d01f2Sgwr1) BOOTP was originally designed and implemented by Bill Croft at Stanford.
275e9d01f2Sgwr   Much of the credit for the ideas and the code goes to him.  We've added
285e9d01f2Sgwr   code to support the vendor specific area of the packet as specified in
295e9d01f2Sgwr   RFC1048.  We've also improved the host lookup algorithm and added some
305e9d01f2Sgwr   extra logging.
315e9d01f2Sgwr
325e9d01f2Sgwr2) The server now uses syslog to do logging.  Specifically it uses the 4.3bsd
335e9d01f2Sgwr   version.  I've #ifdef'd all of these calls.  If you are running 4.2 you
345e9d01f2Sgwr   should compile without the -DSYSLOG switch.
355e9d01f2Sgwr
365e9d01f2Sgwr3) You must update your /etc/services file to contain the following two lines:
375e9d01f2Sgwr	bootps		67/udp		bootp		# BOOTP Server
385e9d01f2Sgwr	bootpc		68/udp				# BOOTP Client
395e9d01f2Sgwr
405e9d01f2Sgwr4) Edit the bootptab.  It has some explanitory comments, and there
415e9d01f2Sgwr   is a manual entry describing its format (bootptab.5)
425e9d01f2Sgwr   If you have any questions, just let us know.
435e9d01f2Sgwr
445e9d01f2SgwrConstruction:
455e9d01f2Sgwr    [ See the file Installation which is more up-to-date. -gwr ]
465e9d01f2Sgwr
475e9d01f2Sgwr    Make sure all of the files exist first.  If anything is missing,
485e9d01f2Sgwr    please contact either Walt Wimer or Drew Perkins by E-mail or phone.
495e9d01f2Sgwr    Addresses and phone numbers are listed below.
505e9d01f2Sgwr
515e9d01f2Sgwr    Type 'make'.  The options at present are: -DSYSLOG which enables logging
525e9d01f2Sgwr    code, -DDEBUG which enables table dumping via signals, and -DVEND_CMU
535e9d01f2Sgwr    which enables the CMU extensions for CMU PC/IP.
545e9d01f2Sgwr
555e9d01f2Sgwr    Edit the bootptab.  The man page and the comments in the file should
565e9d01f2Sgwr    explain how to go about doing so.  If you have any problems, let me know.
575e9d01f2Sgwr
585e9d01f2Sgwr    Type 'make install'.  This should put all of the files in the right place.
595e9d01f2Sgwr
605e9d01f2Sgwr    Edit your /etc/rc.local or /etc/inetd.conf file to start up bootpd upon
615e9d01f2Sgwr    reboot.  The following is a sample /etc/inetd.conf entry:
625e9d01f2Sgwr	# BOOTP server
635e9d01f2Sgwr	bootps dgram udp wait root /usr/etc/bootpd bootpd -i
645e9d01f2Sgwr
655e9d01f2SgwrCare and feeding:
665e9d01f2Sgwr    If you change the interface cards on your host or add new hosts you will
675e9d01f2Sgwr    need to update /etc/bootptab.  Just edit it as before.  Once you write
685e9d01f2Sgwr    it back out, bootpd will notice that there is a new copy and will
695e9d01f2Sgwr    reread it the next time it gets a request.
705e9d01f2Sgwr
715e9d01f2Sgwr    If your bootp clients don't get a response then several things might be
725e9d01f2Sgwr    wrong.  Most often, the entry for that host is not in the database.
735e9d01f2Sgwr    Check the hardware address and then check the entry and make sure
745e9d01f2Sgwr    everything is right.  Other problems include the server machine crashing,
755e9d01f2Sgwr    bad cables, and the like.  If your network is very congested you should
765e9d01f2Sgwr    try making your bootp clients send additional requests before giving up.
775e9d01f2Sgwr
785e9d01f2Sgwr
795e9d01f2SgwrNovember 7, 1988
805e9d01f2Sgwr
815e9d01f2Sgwr
825e9d01f2SgwrWalter L. Wimer			Drew D. Perkins
835e9d01f2Sgwrww0n@andrew.cmu.edu		ddp@andrew.cmu.edu
845e9d01f2Sgwr(412) 268-6252			(412) 268-8576
855e9d01f2Sgwr
865e9d01f2Sgwr4910 Forbes Ave
875e9d01f2SgwrPittsburgh, PA  15213
885e9d01f2Sgwr
895e9d01f2Sgwr[ Contents description by file: ]
905e9d01f2Sgwr
915e9d01f2SgwrAnnounce*	Text of release announcements
92*bcb13babSgwrChanges  	Change history, reverse chronological
935e9d01f2SgwrInstallation	Instructions for building and installing
945e9d01f2SgwrMakefile*	for "make"
955e9d01f2SgwrREADME		This file
96*bcb13babSgwrToDo		Things not yet done
975e9d01f2Sgwrbootp.h		The protocol header file
985e9d01f2Sgwrbootpd.8	Manual page for bootpd, boopgw
995e9d01f2Sgwrbootpd.c	BOOTP server main module
1005e9d01f2Sgwrbootpd.h	 header for above (and others)
1015e9d01f2Sgwrbootpef.8	Manual page for bootpef
1025e9d01f2Sgwrbootpef.c	BOOTP extension file compiler
1035e9d01f2Sgwrbootpgw.c	BOOTP gateway main module
1045e9d01f2Sgwrbootptab.5	A manual describing the bootptab format
1055e9d01f2Sgwrbootptab.cmu	A sample database file for the server
1065e9d01f2Sgwrbootptab.mcs	Another sample from <gwr@mc.com>
1075e9d01f2Sgwrbootptest.8	Manual page for bootptest
1085e9d01f2Sgwrbootptest.c	BOOTP test program (fake client)
1095e9d01f2Sgwrbootptest.h	 header for above
1105e9d01f2Sgwrdovend.c	Vendor Option builder (for bootpd, bootpef)
1115e9d01f2Sgwrdovend.h	 header for above
1125e9d01f2Sgwrdumptab.c	Implements debugging dump for bootpd
1135e9d01f2Sgwrgetether.c	For bootptest (not used yet)
1145e9d01f2Sgwrgetif.c		Get network interface info.
1155e9d01f2Sgwrgetif.h		 header for above
1165e9d01f2Sgwrhash.c		The hash table module
1175e9d01f2Sgwrhash.h		 header for above
1185e9d01f2Sgwrhwaddr.c	Hardware address support
1195e9d01f2Sgwrhwaddr.h	 header for above
1205e9d01f2Sgwrlookup.c	Internet Protocol address lookup
1215e9d01f2Sgwrlookup.h	 header for above
1225e9d01f2Sgwrpatchlevel.h	Holds version numbers
1235e9d01f2Sgwrprint-bootp.c	Prints BOOTP packets (taken from BSD tcpdump)
1245e9d01f2Sgwrreadfile.c	The configuration file-reading routines
1255e9d01f2Sgwrreadfile.h	 header for above
1265e9d01f2Sgwrreport.c	Does syslog-style messages
1275e9d01f2Sgwrreport.h	 header for above
1285e9d01f2Sgwrstrerror.c	Library errno-to-string (for systems lacking it)
1295e9d01f2Sgwrsyslog.conf	Sample config file for syslogd(8)
1305e9d01f2Sgwrsyslog.h	For systems that lack syslog(3)
1315e9d01f2Sgwrtry*.c		Test programs (for debugging)
1325e9d01f2Sgwrtzone.c		Get timezone offset
1335e9d01f2Sgwrtzone.h		 header for above
134