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