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