xref: /freebsd/libexec/bootpd/README (revision 0b3105a37d7adcadcb720112fed4dc4e8040be99)
1# $FreeBSD$
2
3This is an enhanced version of the CMU BOOTP server which was derived
4from the original BOOTP server created by Bill Croft at Stanford.
5This version merges all the enhancements and bug-fixes from the
6NetBSD, Columbia, and other versions.
7
8Please direct questions, comments, and bug reports to the list:
9	<bootp@andrew.cmu.edu>
10
11You can subscribe to this mailing list by sending mail to:
12	bootp-request@andrew.cmu.edu
13(The body of the message should contain: "Add <your-address>")
14
15[ From the NetBSD README file: ]
16
17BOOTPD is a useful adjunct to the nfs diskless boot EPROM code.
18
19The alternatives for initiating a boot of a kernel across a network
20are to use RARP protocol, or BOOTP protocol. BOOTP is more flexible;
21it allows additional items of information to be returned to the
22booting client; it also supports booting across gateways.
23
24[ From the CMU README file: ]
25
26Notes:
271) BOOTP was originally designed and implemented by Bill Croft at Stanford.
28   Much of the credit for the ideas and the code goes to him.  We've added
29   code to support the vendor specific area of the packet as specified in
30   RFC1048.  We've also improved the host lookup algorithm and added some
31   extra logging.
32
332) The server now uses syslog to do logging.  Specifically it uses the 4.3bsd
34   version.  I've #ifdef'd all of these calls.  If you are running 4.2 you
35   should compile without the -DSYSLOG switch.
36
373) You must update your /etc/services file to contain the following two lines:
38	bootps		67/udp		bootp		# BOOTP Server
39	bootpc		68/udp				# BOOTP Client
40
414) Edit the bootptab.  It has some explanitory comments, and there
42   is a manual entry describing its format (bootptab.5)
43   If you have any questions, just let us know.
44
45Construction:
46    [ See the file Installation which is more up-to-date. -gwr ]
47
48    Make sure all of the files exist first.  If anything is missing,
49    please contact either Walt Wimer or Drew Perkins by E-mail or phone.
50    Addresses and phone numbers are listed below.
51
52    Type 'make'.  The options at present are: -DSYSLOG which enables logging
53    code, -DDEBUG which enables table dumping via signals, and -DVEND_CMU
54    which enables the CMU extensions for CMU PC/IP.
55
56    Edit the bootptab.  The man page and the comments in the file should
57    explain how to go about doing so.  If you have any problems, let me know.
58
59    Type 'make install'.  This should put all of the files in the right place.
60
61    Edit your /etc/rc.local or /etc/inetd.conf file to start up bootpd upon
62    reboot.  The following is a sample /etc/inetd.conf entry:
63	# BOOTP server
64	bootps dgram udp wait root /usr/etc/bootpd bootpd -i
65
66Care and feeding:
67    If you change the interface cards on your host or add new hosts you will
68    need to update /etc/bootptab.  Just edit it as before.  Once you write
69    it back out, bootpd will notice that there is a new copy and will
70    reread it the next time it gets a request.
71
72    If your bootp clients don't get a response then several things might be
73    wrong.  Most often, the entry for that host is not in the database.
74    Check the hardware address and then check the entry and make sure
75    everything is right.  Other problems include the server machine crashing,
76    bad cables, and the like.  If your network is very congested you should
77    try making your bootp clients send additional requests before giving up.
78
79
80November 7, 1988
81
82
83Walter L. Wimer			Drew D. Perkins
84ww0n@andrew.cmu.edu		ddp@andrew.cmu.edu
85(412) 268-6252			(412) 268-8576
86
874910 Forbes Ave
88Pittsburgh, PA  15213
89
90[ Contents description by file: ]
91
92Announce*	Text of release announcements
93Changes  	Change history, reverse chronological
94ConvOldTab.sh	Script to convert old (1.x) bootptab files
95Installation	Instructions for building and installing
96Makefile*	for "make"
97README		This file
98ToDo		Things not yet done
99bootp.h		The protocol header file
100bootpd.8	Manual page for bootpd, boopgw
101bootpd.c	BOOTP server main module
102bootpd.h	 header for above (and others)
103bootpef.8	Manual page for bootpef
104bootpef.c	BOOTP extension file compiler
105bootpgw.c	BOOTP gateway main module
106bootptab.5	A manual describing the bootptab format
107bootptab.cmu	A sample database file for the server
108bootptab.mcs	Another sample from <gwr@mc.com>
109bootptest.8	Manual page for bootptest
110bootptest.c	BOOTP test program (fake client)
111bootptest.h	 header for above
112dovend.c	Vendor Option builder (for bootpd, bootpef)
113dovend.h	 header for above
114dumptab.c	Implements debugging dump for bootpd
115getether.c	For bootptest (not used yet)
116getether.h	 header for above
117getif.c		Get network interface info.
118getif.h		 header for above
119hash.c		The hash table module
120hash.h		 header for above
121hwaddr.c	Hardware address support
122hwaddr.h	 header for above
123lookup.c	Internet Protocol address lookup
124lookup.h	 header for above
125patchlevel.h	Holds version numbers
126print-bootp.c	Prints BOOTP packets (taken from BSD tcpdump)
127readfile.c	The configuration file-reading routines
128readfile.h	 header for above
129report.c	Does syslog-style messages
130report.h	 header for above
131strerror.c	Library errno-to-string (for systems lacking it)
132syslog.conf	Sample config file for syslogd(8)
133syslog.h	For systems that lack syslog(3)
134try*.c		Test programs (for debugging)
135tzone.c		Get timezone offset
136tzone.h		 header for above
137