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