144099b7bSPaul Traina 244099b7bSPaul TrainaThis is an enhanced version of the CMU BOOTP server which was derived 344099b7bSPaul Trainafrom the original BOOTP server created by Bill Croft at Stanford. 444099b7bSPaul TrainaThis version merges all the enhancements and bug-fixes from the 544099b7bSPaul TrainaNetBSD, Columbia, and other versions. 644099b7bSPaul Traina 744099b7bSPaul TrainaPlease direct questions, comments, and bug reports to the list: 844099b7bSPaul Traina <bootp@andrew.cmu.edu> 944099b7bSPaul Traina 1044099b7bSPaul TrainaYou can subscribe to this mailing list by sending mail to: 1144099b7bSPaul Traina bootp-request@andrew.cmu.edu 1244099b7bSPaul Traina(The body of the message should contain: "Add <your-address>") 1344099b7bSPaul Traina 1444099b7bSPaul Traina[ From the NetBSD README file: ] 1544099b7bSPaul Traina 1644099b7bSPaul TrainaBOOTPD is a useful adjunct to the nfs diskless boot EPROM code. 1744099b7bSPaul Traina 1844099b7bSPaul TrainaThe alternatives for initiating a boot of a kernel across a network 1944099b7bSPaul Trainaare to use RARP protocol, or BOOTP protocol. BOOTP is more flexible; 2044099b7bSPaul Trainait allows additional items of information to be returned to the 2144099b7bSPaul Trainabooting client; it also supports booting across gateways. 2244099b7bSPaul Traina 2344099b7bSPaul Traina[ From the CMU README file: ] 2444099b7bSPaul Traina 2544099b7bSPaul TrainaNotes: 2644099b7bSPaul Traina1) BOOTP was originally designed and implemented by Bill Croft at Stanford. 2744099b7bSPaul Traina Much of the credit for the ideas and the code goes to him. We've added 2844099b7bSPaul Traina code to support the vendor specific area of the packet as specified in 2944099b7bSPaul Traina RFC1048. We've also improved the host lookup algorithm and added some 3044099b7bSPaul Traina extra logging. 3144099b7bSPaul Traina 3244099b7bSPaul Traina2) The server now uses syslog to do logging. Specifically it uses the 4.3bsd 3344099b7bSPaul Traina version. I've #ifdef'd all of these calls. If you are running 4.2 you 3444099b7bSPaul Traina should compile without the -DSYSLOG switch. 3544099b7bSPaul Traina 3644099b7bSPaul Traina3) You must update your /etc/services file to contain the following two lines: 3744099b7bSPaul Traina bootps 67/udp bootp # BOOTP Server 3844099b7bSPaul Traina bootpc 68/udp # BOOTP Client 3944099b7bSPaul Traina 4044099b7bSPaul Traina4) Edit the bootptab. It has some explanitory comments, and there 4144099b7bSPaul Traina is a manual entry describing its format (bootptab.5) 4244099b7bSPaul Traina If you have any questions, just let us know. 4344099b7bSPaul Traina 4444099b7bSPaul TrainaConstruction: 4544099b7bSPaul Traina [ See the file Installation which is more up-to-date. -gwr ] 4644099b7bSPaul Traina 4744099b7bSPaul Traina Make sure all of the files exist first. If anything is missing, 4844099b7bSPaul Traina please contact either Walt Wimer or Drew Perkins by E-mail or phone. 4944099b7bSPaul Traina Addresses and phone numbers are listed below. 5044099b7bSPaul Traina 5144099b7bSPaul Traina Type 'make'. The options at present are: -DSYSLOG which enables logging 5244099b7bSPaul Traina code, -DDEBUG which enables table dumping via signals, and -DVEND_CMU 5344099b7bSPaul Traina which enables the CMU extensions for CMU PC/IP. 5444099b7bSPaul Traina 5544099b7bSPaul Traina Edit the bootptab. The man page and the comments in the file should 5644099b7bSPaul Traina explain how to go about doing so. If you have any problems, let me know. 5744099b7bSPaul Traina 5844099b7bSPaul Traina Type 'make install'. This should put all of the files in the right place. 5944099b7bSPaul Traina 6044099b7bSPaul Traina Edit your /etc/rc.local or /etc/inetd.conf file to start up bootpd upon 6144099b7bSPaul Traina reboot. The following is a sample /etc/inetd.conf entry: 6244099b7bSPaul Traina # BOOTP server 6344099b7bSPaul Traina bootps dgram udp wait root /usr/etc/bootpd bootpd -i 6444099b7bSPaul Traina 6544099b7bSPaul TrainaCare and feeding: 6644099b7bSPaul Traina If you change the interface cards on your host or add new hosts you will 6744099b7bSPaul Traina need to update /etc/bootptab. Just edit it as before. Once you write 6844099b7bSPaul Traina it back out, bootpd will notice that there is a new copy and will 6944099b7bSPaul Traina reread it the next time it gets a request. 7044099b7bSPaul Traina 7144099b7bSPaul Traina If your bootp clients don't get a response then several things might be 7244099b7bSPaul Traina wrong. Most often, the entry for that host is not in the database. 7344099b7bSPaul Traina Check the hardware address and then check the entry and make sure 7444099b7bSPaul Traina everything is right. Other problems include the server machine crashing, 7544099b7bSPaul Traina bad cables, and the like. If your network is very congested you should 7644099b7bSPaul Traina try making your bootp clients send additional requests before giving up. 7744099b7bSPaul Traina 7844099b7bSPaul Traina 7944099b7bSPaul TrainaNovember 7, 1988 8044099b7bSPaul Traina 8144099b7bSPaul Traina 8244099b7bSPaul TrainaWalter L. Wimer Drew D. Perkins 8344099b7bSPaul Trainaww0n@andrew.cmu.edu ddp@andrew.cmu.edu 8444099b7bSPaul Traina(412) 268-6252 (412) 268-8576 8544099b7bSPaul Traina 8644099b7bSPaul Traina4910 Forbes Ave 8744099b7bSPaul TrainaPittsburgh, PA 15213 8844099b7bSPaul Traina 8944099b7bSPaul Traina[ Contents description by file: ] 9044099b7bSPaul Traina 9144099b7bSPaul TrainaAnnounce* Text of release announcements 9244099b7bSPaul TrainaChanges Change history, reverse chronological 93e08ac58bSPaul TrainaConvOldTab.sh Script to convert old (1.x) bootptab files 9444099b7bSPaul TrainaInstallation Instructions for building and installing 9544099b7bSPaul TrainaMakefile* for "make" 9644099b7bSPaul TrainaREADME This file 9744099b7bSPaul TrainaToDo Things not yet done 9844099b7bSPaul Trainabootp.h The protocol header file 9944099b7bSPaul Trainabootpd.8 Manual page for bootpd, boopgw 10044099b7bSPaul Trainabootpd.c BOOTP server main module 10144099b7bSPaul Trainabootpd.h header for above (and others) 10244099b7bSPaul Trainabootpef.8 Manual page for bootpef 10344099b7bSPaul Trainabootpef.c BOOTP extension file compiler 10444099b7bSPaul Trainabootpgw.c BOOTP gateway main module 10544099b7bSPaul Trainabootptab.5 A manual describing the bootptab format 10644099b7bSPaul Trainabootptab.cmu A sample database file for the server 10744099b7bSPaul Trainabootptab.mcs Another sample from <gwr@mc.com> 10844099b7bSPaul Trainabootptest.8 Manual page for bootptest 10944099b7bSPaul Trainabootptest.c BOOTP test program (fake client) 11044099b7bSPaul Trainabootptest.h header for above 11144099b7bSPaul Trainadovend.c Vendor Option builder (for bootpd, bootpef) 11244099b7bSPaul Trainadovend.h header for above 11344099b7bSPaul Trainadumptab.c Implements debugging dump for bootpd 11444099b7bSPaul Trainagetether.c For bootptest (not used yet) 115e08ac58bSPaul Trainagetether.h header for above 11644099b7bSPaul Trainagetif.c Get network interface info. 11744099b7bSPaul Trainagetif.h header for above 11844099b7bSPaul Trainahash.c The hash table module 11944099b7bSPaul Trainahash.h header for above 12044099b7bSPaul Trainahwaddr.c Hardware address support 12144099b7bSPaul Trainahwaddr.h header for above 12244099b7bSPaul Trainalookup.c Internet Protocol address lookup 12344099b7bSPaul Trainalookup.h header for above 12444099b7bSPaul Trainapatchlevel.h Holds version numbers 12544099b7bSPaul Trainaprint-bootp.c Prints BOOTP packets (taken from BSD tcpdump) 12644099b7bSPaul Trainareadfile.c The configuration file-reading routines 12744099b7bSPaul Trainareadfile.h header for above 12844099b7bSPaul Trainareport.c Does syslog-style messages 12944099b7bSPaul Trainareport.h header for above 13044099b7bSPaul Trainastrerror.c Library errno-to-string (for systems lacking it) 13144099b7bSPaul Trainasyslog.conf Sample config file for syslogd(8) 13244099b7bSPaul Trainasyslog.h For systems that lack syslog(3) 13344099b7bSPaul Trainatry*.c Test programs (for debugging) 13444099b7bSPaul Trainatzone.c Get timezone offset 13544099b7bSPaul Trainatzone.h header for above 136