15e9d01f2Sgwr 25e9d01f2SgwrThis is an enhanced version of the CMU BOOTP server which was derived 35e9d01f2Sgwrfrom the original BOOTP server created by Bill Croft at Stanford. 45e9d01f2SgwrThis version merges all the enhancements and bug-fixes from the 55e9d01f2SgwrNetBSD, Columbia, and other versions. 65e9d01f2Sgwr 7*bcb13babSgwrPlease direct questions, comments, and bug reports to the list: 8*bcb13babSgwr <bootp@andrew.cmu.edu> 95e9d01f2Sgwr 105e9d01f2SgwrYou can subscribe to this mailing list by sending mail to: 115e9d01f2Sgwr bootp-request@andrew.cmu.edu 125e9d01f2Sgwr(The body of the message should contain: "Add <your-address>") 135e9d01f2Sgwr 145e9d01f2Sgwr[ From the NetBSD README file: ] 155e9d01f2Sgwr 165e9d01f2SgwrBOOTPD is a useful adjunct to the nfs diskless boot EPROM code. 175e9d01f2Sgwr 185e9d01f2SgwrThe alternatives for initiating a boot of a kernel across a network 195e9d01f2Sgwrare to use RARP protocol, or BOOTP protocol. BOOTP is more flexible; 205e9d01f2Sgwrit allows additional items of information to be returned to the 215e9d01f2Sgwrbooting client; it also supports booting across gateways. 225e9d01f2Sgwr 235e9d01f2Sgwr[ From the CMU README file: ] 245e9d01f2Sgwr 255e9d01f2SgwrNotes: 265e9d01f2Sgwr1) BOOTP was originally designed and implemented by Bill Croft at Stanford. 275e9d01f2Sgwr Much of the credit for the ideas and the code goes to him. We've added 285e9d01f2Sgwr code to support the vendor specific area of the packet as specified in 295e9d01f2Sgwr RFC1048. We've also improved the host lookup algorithm and added some 305e9d01f2Sgwr extra logging. 315e9d01f2Sgwr 325e9d01f2Sgwr2) The server now uses syslog to do logging. Specifically it uses the 4.3bsd 335e9d01f2Sgwr version. I've #ifdef'd all of these calls. If you are running 4.2 you 345e9d01f2Sgwr should compile without the -DSYSLOG switch. 355e9d01f2Sgwr 365e9d01f2Sgwr3) You must update your /etc/services file to contain the following two lines: 375e9d01f2Sgwr bootps 67/udp bootp # BOOTP Server 385e9d01f2Sgwr bootpc 68/udp # BOOTP Client 395e9d01f2Sgwr 405e9d01f2Sgwr4) Edit the bootptab. It has some explanitory comments, and there 415e9d01f2Sgwr is a manual entry describing its format (bootptab.5) 425e9d01f2Sgwr If you have any questions, just let us know. 435e9d01f2Sgwr 445e9d01f2SgwrConstruction: 455e9d01f2Sgwr [ See the file Installation which is more up-to-date. -gwr ] 465e9d01f2Sgwr 475e9d01f2Sgwr Make sure all of the files exist first. If anything is missing, 485e9d01f2Sgwr please contact either Walt Wimer or Drew Perkins by E-mail or phone. 495e9d01f2Sgwr Addresses and phone numbers are listed below. 505e9d01f2Sgwr 515e9d01f2Sgwr Type 'make'. The options at present are: -DSYSLOG which enables logging 525e9d01f2Sgwr code, -DDEBUG which enables table dumping via signals, and -DVEND_CMU 535e9d01f2Sgwr which enables the CMU extensions for CMU PC/IP. 545e9d01f2Sgwr 555e9d01f2Sgwr Edit the bootptab. The man page and the comments in the file should 565e9d01f2Sgwr explain how to go about doing so. If you have any problems, let me know. 575e9d01f2Sgwr 585e9d01f2Sgwr Type 'make install'. This should put all of the files in the right place. 595e9d01f2Sgwr 605e9d01f2Sgwr Edit your /etc/rc.local or /etc/inetd.conf file to start up bootpd upon 615e9d01f2Sgwr reboot. The following is a sample /etc/inetd.conf entry: 625e9d01f2Sgwr # BOOTP server 635e9d01f2Sgwr bootps dgram udp wait root /usr/etc/bootpd bootpd -i 645e9d01f2Sgwr 655e9d01f2SgwrCare and feeding: 665e9d01f2Sgwr If you change the interface cards on your host or add new hosts you will 675e9d01f2Sgwr need to update /etc/bootptab. Just edit it as before. Once you write 685e9d01f2Sgwr it back out, bootpd will notice that there is a new copy and will 695e9d01f2Sgwr reread it the next time it gets a request. 705e9d01f2Sgwr 715e9d01f2Sgwr If your bootp clients don't get a response then several things might be 725e9d01f2Sgwr wrong. Most often, the entry for that host is not in the database. 735e9d01f2Sgwr Check the hardware address and then check the entry and make sure 745e9d01f2Sgwr everything is right. Other problems include the server machine crashing, 755e9d01f2Sgwr bad cables, and the like. If your network is very congested you should 765e9d01f2Sgwr try making your bootp clients send additional requests before giving up. 775e9d01f2Sgwr 785e9d01f2Sgwr 795e9d01f2SgwrNovember 7, 1988 805e9d01f2Sgwr 815e9d01f2Sgwr 825e9d01f2SgwrWalter L. Wimer Drew D. Perkins 835e9d01f2Sgwrww0n@andrew.cmu.edu ddp@andrew.cmu.edu 845e9d01f2Sgwr(412) 268-6252 (412) 268-8576 855e9d01f2Sgwr 865e9d01f2Sgwr4910 Forbes Ave 875e9d01f2SgwrPittsburgh, PA 15213 885e9d01f2Sgwr 895e9d01f2Sgwr[ Contents description by file: ] 905e9d01f2Sgwr 915e9d01f2SgwrAnnounce* Text of release announcements 92*bcb13babSgwrChanges Change history, reverse chronological 935e9d01f2SgwrInstallation Instructions for building and installing 945e9d01f2SgwrMakefile* for "make" 955e9d01f2SgwrREADME This file 96*bcb13babSgwrToDo Things not yet done 975e9d01f2Sgwrbootp.h The protocol header file 985e9d01f2Sgwrbootpd.8 Manual page for bootpd, boopgw 995e9d01f2Sgwrbootpd.c BOOTP server main module 1005e9d01f2Sgwrbootpd.h header for above (and others) 1015e9d01f2Sgwrbootpef.8 Manual page for bootpef 1025e9d01f2Sgwrbootpef.c BOOTP extension file compiler 1035e9d01f2Sgwrbootpgw.c BOOTP gateway main module 1045e9d01f2Sgwrbootptab.5 A manual describing the bootptab format 1055e9d01f2Sgwrbootptab.cmu A sample database file for the server 1065e9d01f2Sgwrbootptab.mcs Another sample from <gwr@mc.com> 1075e9d01f2Sgwrbootptest.8 Manual page for bootptest 1085e9d01f2Sgwrbootptest.c BOOTP test program (fake client) 1095e9d01f2Sgwrbootptest.h header for above 1105e9d01f2Sgwrdovend.c Vendor Option builder (for bootpd, bootpef) 1115e9d01f2Sgwrdovend.h header for above 1125e9d01f2Sgwrdumptab.c Implements debugging dump for bootpd 1135e9d01f2Sgwrgetether.c For bootptest (not used yet) 1145e9d01f2Sgwrgetif.c Get network interface info. 1155e9d01f2Sgwrgetif.h header for above 1165e9d01f2Sgwrhash.c The hash table module 1175e9d01f2Sgwrhash.h header for above 1185e9d01f2Sgwrhwaddr.c Hardware address support 1195e9d01f2Sgwrhwaddr.h header for above 1205e9d01f2Sgwrlookup.c Internet Protocol address lookup 1215e9d01f2Sgwrlookup.h header for above 1225e9d01f2Sgwrpatchlevel.h Holds version numbers 1235e9d01f2Sgwrprint-bootp.c Prints BOOTP packets (taken from BSD tcpdump) 1245e9d01f2Sgwrreadfile.c The configuration file-reading routines 1255e9d01f2Sgwrreadfile.h header for above 1265e9d01f2Sgwrreport.c Does syslog-style messages 1275e9d01f2Sgwrreport.h header for above 1285e9d01f2Sgwrstrerror.c Library errno-to-string (for systems lacking it) 1295e9d01f2Sgwrsyslog.conf Sample config file for syslogd(8) 1305e9d01f2Sgwrsyslog.h For systems that lack syslog(3) 1315e9d01f2Sgwrtry*.c Test programs (for debugging) 1325e9d01f2Sgwrtzone.c Get timezone offset 1335e9d01f2Sgwrtzone.h header for above 134