xref: /dflybsd-src/libexec/bootpd/README (revision 86d7f5d305c6adaa56ff4582ece9859d73106103)
186d7f5d3SJohn Marino# $FreeBSD: src/libexec/bootpd/README,v 1.5 1999/08/28 00:09:15 peter Exp $
286d7f5d3SJohn Marino# $DragonFly: src/libexec/bootpd/README,v 1.2 2003/06/17 04:27:07 dillon Exp $
386d7f5d3SJohn Marino
486d7f5d3SJohn MarinoThis is an enhanced version of the CMU BOOTP server which was derived
586d7f5d3SJohn Marinofrom the original BOOTP server created by Bill Croft at Stanford.
686d7f5d3SJohn MarinoThis version merges all the enhancements and bug-fixes from the
786d7f5d3SJohn MarinoNetBSD, Columbia, and other versions.
886d7f5d3SJohn Marino
986d7f5d3SJohn MarinoPlease direct questions, comments, and bug reports to the list:
1086d7f5d3SJohn Marino	<bootp@andrew.cmu.edu>
1186d7f5d3SJohn Marino
1286d7f5d3SJohn MarinoYou can subscribe to this mailing list by sending mail to:
1386d7f5d3SJohn Marino	bootp-request@andrew.cmu.edu
1486d7f5d3SJohn Marino(The body of the message should contain: "Add <your-address>")
1586d7f5d3SJohn Marino
1686d7f5d3SJohn Marino[ From the NetBSD README file: ]
1786d7f5d3SJohn Marino
1886d7f5d3SJohn MarinoBOOTPD is a useful adjunct to the nfs diskless boot EPROM code.
1986d7f5d3SJohn Marino
2086d7f5d3SJohn MarinoThe alternatives for initiating a boot of a kernel across a network
2186d7f5d3SJohn Marinoare to use RARP protocol, or BOOTP protocol. BOOTP is more flexible;
2286d7f5d3SJohn Marinoit allows additional items of information to be returned to the
2386d7f5d3SJohn Marinobooting client; it also supports booting across gateways.
2486d7f5d3SJohn Marino
2586d7f5d3SJohn Marino[ From the CMU README file: ]
2686d7f5d3SJohn Marino
2786d7f5d3SJohn MarinoNotes:
2886d7f5d3SJohn Marino1) BOOTP was originally designed and implemented by Bill Croft at Stanford.
2986d7f5d3SJohn Marino   Much of the credit for the ideas and the code goes to him.  We've added
3086d7f5d3SJohn Marino   code to support the vendor specific area of the packet as specified in
3186d7f5d3SJohn Marino   RFC1048.  We've also improved the host lookup algorithm and added some
3286d7f5d3SJohn Marino   extra logging.
3386d7f5d3SJohn Marino
3486d7f5d3SJohn Marino2) The server now uses syslog to do logging.  Specifically it uses the 4.3bsd
3586d7f5d3SJohn Marino   version.  I've #ifdef'd all of these calls.  If you are running 4.2 you
3686d7f5d3SJohn Marino   should compile without the -DSYSLOG switch.
3786d7f5d3SJohn Marino
3886d7f5d3SJohn Marino3) You must update your /etc/services file to contain the following two lines:
3986d7f5d3SJohn Marino	bootps		67/udp		bootp		# BOOTP Server
4086d7f5d3SJohn Marino	bootpc		68/udp				# BOOTP Client
4186d7f5d3SJohn Marino
4286d7f5d3SJohn Marino4) Edit the bootptab.  It has some explanitory comments, and there
4386d7f5d3SJohn Marino   is a manual entry describing its format (bootptab.5)
4486d7f5d3SJohn Marino   If you have any questions, just let us know.
4586d7f5d3SJohn Marino
4686d7f5d3SJohn MarinoConstruction:
4786d7f5d3SJohn Marino    [ See the file Installation which is more up-to-date. -gwr ]
4886d7f5d3SJohn Marino
4986d7f5d3SJohn Marino    Make sure all of the files exist first.  If anything is missing,
5086d7f5d3SJohn Marino    please contact either Walt Wimer or Drew Perkins by E-mail or phone.
5186d7f5d3SJohn Marino    Addresses and phone numbers are listed below.
5286d7f5d3SJohn Marino
5386d7f5d3SJohn Marino    Type 'make'.  The options at present are: -DSYSLOG which enables logging
5486d7f5d3SJohn Marino    code, -DDEBUG which enables table dumping via signals, and -DVEND_CMU
5586d7f5d3SJohn Marino    which enables the CMU extensions for CMU PC/IP.
5686d7f5d3SJohn Marino
5786d7f5d3SJohn Marino    Edit the bootptab.  The man page and the comments in the file should
5886d7f5d3SJohn Marino    explain how to go about doing so.  If you have any problems, let me know.
5986d7f5d3SJohn Marino
6086d7f5d3SJohn Marino    Type 'make install'.  This should put all of the files in the right place.
6186d7f5d3SJohn Marino
6286d7f5d3SJohn Marino    Edit your /etc/rc.local or /etc/inetd.conf file to start up bootpd upon
6386d7f5d3SJohn Marino    reboot.  The following is a sample /etc/inetd.conf entry:
6486d7f5d3SJohn Marino	# BOOTP server
6586d7f5d3SJohn Marino	bootps dgram udp wait root /usr/etc/bootpd bootpd -i
6686d7f5d3SJohn Marino
6786d7f5d3SJohn MarinoCare and feeding:
6886d7f5d3SJohn Marino    If you change the interface cards on your host or add new hosts you will
6986d7f5d3SJohn Marino    need to update /etc/bootptab.  Just edit it as before.  Once you write
7086d7f5d3SJohn Marino    it back out, bootpd will notice that there is a new copy and will
7186d7f5d3SJohn Marino    reread it the next time it gets a request.
7286d7f5d3SJohn Marino
7386d7f5d3SJohn Marino    If your bootp clients don't get a response then several things might be
7486d7f5d3SJohn Marino    wrong.  Most often, the entry for that host is not in the database.
7586d7f5d3SJohn Marino    Check the hardware address and then check the entry and make sure
7686d7f5d3SJohn Marino    everything is right.  Other problems include the server machine crashing,
7786d7f5d3SJohn Marino    bad cables, and the like.  If your network is very congested you should
7886d7f5d3SJohn Marino    try making your bootp clients send additional requests before giving up.
7986d7f5d3SJohn Marino
8086d7f5d3SJohn Marino
8186d7f5d3SJohn MarinoNovember 7, 1988
8286d7f5d3SJohn Marino
8386d7f5d3SJohn Marino
8486d7f5d3SJohn MarinoWalter L. Wimer			Drew D. Perkins
8586d7f5d3SJohn Marinoww0n@andrew.cmu.edu		ddp@andrew.cmu.edu
8686d7f5d3SJohn Marino(412) 268-6252			(412) 268-8576
8786d7f5d3SJohn Marino
8886d7f5d3SJohn Marino4910 Forbes Ave
8986d7f5d3SJohn MarinoPittsburgh, PA  15213
9086d7f5d3SJohn Marino
9186d7f5d3SJohn Marino[ Contents description by file: ]
9286d7f5d3SJohn Marino
9386d7f5d3SJohn MarinoAnnounce*	Text of release announcements
9486d7f5d3SJohn MarinoChanges  	Change history, reverse chronological
9586d7f5d3SJohn MarinoConvOldTab.sh	Script to convert old (1.x) bootptab files
9686d7f5d3SJohn MarinoInstallation	Instructions for building and installing
9786d7f5d3SJohn MarinoMakefile*	for "make"
9886d7f5d3SJohn MarinoREADME		This file
9986d7f5d3SJohn MarinoToDo		Things not yet done
10086d7f5d3SJohn Marinobootp.h		The protocol header file
10186d7f5d3SJohn Marinobootpd.8	Manual page for bootpd, boopgw
10286d7f5d3SJohn Marinobootpd.c	BOOTP server main module
10386d7f5d3SJohn Marinobootpd.h	 header for above (and others)
10486d7f5d3SJohn Marinobootpef.8	Manual page for bootpef
10586d7f5d3SJohn Marinobootpef.c	BOOTP extension file compiler
10686d7f5d3SJohn Marinobootpgw.c	BOOTP gateway main module
10786d7f5d3SJohn Marinobootptab.5	A manual describing the bootptab format
10886d7f5d3SJohn Marinobootptab.cmu	A sample database file for the server
10986d7f5d3SJohn Marinobootptab.mcs	Another sample from <gwr@mc.com>
11086d7f5d3SJohn Marinobootptest.8	Manual page for bootptest
11186d7f5d3SJohn Marinobootptest.c	BOOTP test program (fake client)
11286d7f5d3SJohn Marinobootptest.h	 header for above
11386d7f5d3SJohn Marinodovend.c	Vendor Option builder (for bootpd, bootpef)
11486d7f5d3SJohn Marinodovend.h	 header for above
11586d7f5d3SJohn Marinodumptab.c	Implements debugging dump for bootpd
11686d7f5d3SJohn Marinogetether.c	For bootptest (not used yet)
11786d7f5d3SJohn Marinogetether.h	 header for above
11886d7f5d3SJohn Marinogetif.c		Get network interface info.
11986d7f5d3SJohn Marinogetif.h		 header for above
12086d7f5d3SJohn Marinohash.c		The hash table module
12186d7f5d3SJohn Marinohash.h		 header for above
12286d7f5d3SJohn Marinohwaddr.c	Hardware address support
12386d7f5d3SJohn Marinohwaddr.h	 header for above
12486d7f5d3SJohn Marinolookup.c	Internet Protocol address lookup
12586d7f5d3SJohn Marinolookup.h	 header for above
12686d7f5d3SJohn Marinopatchlevel.h	Holds version numbers
12786d7f5d3SJohn Marinoprint-bootp.c	Prints BOOTP packets (taken from BSD tcpdump)
12886d7f5d3SJohn Marinoreadfile.c	The configuration file-reading routines
12986d7f5d3SJohn Marinoreadfile.h	 header for above
13086d7f5d3SJohn Marinoreport.c	Does syslog-style messages
13186d7f5d3SJohn Marinoreport.h	 header for above
13286d7f5d3SJohn Marinostrerror.c	Library errno-to-string (for systems lacking it)
13386d7f5d3SJohn Marinosyslog.conf	Sample config file for syslogd(8)
13486d7f5d3SJohn Marinosyslog.h	For systems that lack syslog(3)
13586d7f5d3SJohn Marinotry*.c		Test programs (for debugging)
13686d7f5d3SJohn Marinotzone.c		Get timezone offset
13786d7f5d3SJohn Marinotzone.h		 header for above
138