186d7f5d3SJohn Marino# $FreeBSD: src/libexec/bootpd/README,v 1.5 1999/08/28 00:09:15 peter Exp $ 286d7f5d3SJohn Marino# $DragonFly: src/libexec/bootpd/README,v 1.2 2003/06/17 04:27:07 dillon Exp $ 386d7f5d3SJohn Marino 486d7f5d3SJohn MarinoThis is an enhanced version of the CMU BOOTP server which was derived 586d7f5d3SJohn Marinofrom the original BOOTP server created by Bill Croft at Stanford. 686d7f5d3SJohn MarinoThis version merges all the enhancements and bug-fixes from the 786d7f5d3SJohn MarinoNetBSD, Columbia, and other versions. 886d7f5d3SJohn Marino 986d7f5d3SJohn MarinoPlease direct questions, comments, and bug reports to the list: 1086d7f5d3SJohn Marino <bootp@andrew.cmu.edu> 1186d7f5d3SJohn Marino 1286d7f5d3SJohn MarinoYou can subscribe to this mailing list by sending mail to: 1386d7f5d3SJohn Marino bootp-request@andrew.cmu.edu 1486d7f5d3SJohn Marino(The body of the message should contain: "Add <your-address>") 1586d7f5d3SJohn Marino 1686d7f5d3SJohn Marino[ From the NetBSD README file: ] 1786d7f5d3SJohn Marino 1886d7f5d3SJohn MarinoBOOTPD is a useful adjunct to the nfs diskless boot EPROM code. 1986d7f5d3SJohn Marino 2086d7f5d3SJohn MarinoThe alternatives for initiating a boot of a kernel across a network 2186d7f5d3SJohn Marinoare to use RARP protocol, or BOOTP protocol. BOOTP is more flexible; 2286d7f5d3SJohn Marinoit allows additional items of information to be returned to the 2386d7f5d3SJohn Marinobooting client; it also supports booting across gateways. 2486d7f5d3SJohn Marino 2586d7f5d3SJohn Marino[ From the CMU README file: ] 2686d7f5d3SJohn Marino 2786d7f5d3SJohn MarinoNotes: 2886d7f5d3SJohn Marino1) BOOTP was originally designed and implemented by Bill Croft at Stanford. 2986d7f5d3SJohn Marino Much of the credit for the ideas and the code goes to him. We've added 3086d7f5d3SJohn Marino code to support the vendor specific area of the packet as specified in 3186d7f5d3SJohn Marino RFC1048. We've also improved the host lookup algorithm and added some 3286d7f5d3SJohn Marino extra logging. 3386d7f5d3SJohn Marino 3486d7f5d3SJohn Marino2) The server now uses syslog to do logging. Specifically it uses the 4.3bsd 3586d7f5d3SJohn Marino version. I've #ifdef'd all of these calls. If you are running 4.2 you 3686d7f5d3SJohn Marino should compile without the -DSYSLOG switch. 3786d7f5d3SJohn Marino 3886d7f5d3SJohn Marino3) You must update your /etc/services file to contain the following two lines: 3986d7f5d3SJohn Marino bootps 67/udp bootp # BOOTP Server 4086d7f5d3SJohn Marino bootpc 68/udp # BOOTP Client 4186d7f5d3SJohn Marino 4286d7f5d3SJohn Marino4) Edit the bootptab. It has some explanitory comments, and there 4386d7f5d3SJohn Marino is a manual entry describing its format (bootptab.5) 4486d7f5d3SJohn Marino If you have any questions, just let us know. 4586d7f5d3SJohn Marino 4686d7f5d3SJohn MarinoConstruction: 4786d7f5d3SJohn Marino [ See the file Installation which is more up-to-date. -gwr ] 4886d7f5d3SJohn Marino 4986d7f5d3SJohn Marino Make sure all of the files exist first. If anything is missing, 5086d7f5d3SJohn Marino please contact either Walt Wimer or Drew Perkins by E-mail or phone. 5186d7f5d3SJohn Marino Addresses and phone numbers are listed below. 5286d7f5d3SJohn Marino 5386d7f5d3SJohn Marino Type 'make'. The options at present are: -DSYSLOG which enables logging 5486d7f5d3SJohn Marino code, -DDEBUG which enables table dumping via signals, and -DVEND_CMU 5586d7f5d3SJohn Marino which enables the CMU extensions for CMU PC/IP. 5686d7f5d3SJohn Marino 5786d7f5d3SJohn Marino Edit the bootptab. The man page and the comments in the file should 5886d7f5d3SJohn Marino explain how to go about doing so. If you have any problems, let me know. 5986d7f5d3SJohn Marino 6086d7f5d3SJohn Marino Type 'make install'. This should put all of the files in the right place. 6186d7f5d3SJohn Marino 6286d7f5d3SJohn Marino Edit your /etc/rc.local or /etc/inetd.conf file to start up bootpd upon 6386d7f5d3SJohn Marino reboot. The following is a sample /etc/inetd.conf entry: 6486d7f5d3SJohn Marino # BOOTP server 6586d7f5d3SJohn Marino bootps dgram udp wait root /usr/etc/bootpd bootpd -i 6686d7f5d3SJohn Marino 6786d7f5d3SJohn MarinoCare and feeding: 6886d7f5d3SJohn Marino If you change the interface cards on your host or add new hosts you will 6986d7f5d3SJohn Marino need to update /etc/bootptab. Just edit it as before. Once you write 7086d7f5d3SJohn Marino it back out, bootpd will notice that there is a new copy and will 7186d7f5d3SJohn Marino reread it the next time it gets a request. 7286d7f5d3SJohn Marino 7386d7f5d3SJohn Marino If your bootp clients don't get a response then several things might be 7486d7f5d3SJohn Marino wrong. Most often, the entry for that host is not in the database. 7586d7f5d3SJohn Marino Check the hardware address and then check the entry and make sure 7686d7f5d3SJohn Marino everything is right. Other problems include the server machine crashing, 7786d7f5d3SJohn Marino bad cables, and the like. If your network is very congested you should 7886d7f5d3SJohn Marino try making your bootp clients send additional requests before giving up. 7986d7f5d3SJohn Marino 8086d7f5d3SJohn Marino 8186d7f5d3SJohn MarinoNovember 7, 1988 8286d7f5d3SJohn Marino 8386d7f5d3SJohn Marino 8486d7f5d3SJohn MarinoWalter L. Wimer Drew D. Perkins 8586d7f5d3SJohn Marinoww0n@andrew.cmu.edu ddp@andrew.cmu.edu 8686d7f5d3SJohn Marino(412) 268-6252 (412) 268-8576 8786d7f5d3SJohn Marino 8886d7f5d3SJohn Marino4910 Forbes Ave 8986d7f5d3SJohn MarinoPittsburgh, PA 15213 9086d7f5d3SJohn Marino 9186d7f5d3SJohn Marino[ Contents description by file: ] 9286d7f5d3SJohn Marino 9386d7f5d3SJohn MarinoAnnounce* Text of release announcements 9486d7f5d3SJohn MarinoChanges Change history, reverse chronological 9586d7f5d3SJohn MarinoConvOldTab.sh Script to convert old (1.x) bootptab files 9686d7f5d3SJohn MarinoInstallation Instructions for building and installing 9786d7f5d3SJohn MarinoMakefile* for "make" 9886d7f5d3SJohn MarinoREADME This file 9986d7f5d3SJohn MarinoToDo Things not yet done 10086d7f5d3SJohn Marinobootp.h The protocol header file 10186d7f5d3SJohn Marinobootpd.8 Manual page for bootpd, boopgw 10286d7f5d3SJohn Marinobootpd.c BOOTP server main module 10386d7f5d3SJohn Marinobootpd.h header for above (and others) 10486d7f5d3SJohn Marinobootpef.8 Manual page for bootpef 10586d7f5d3SJohn Marinobootpef.c BOOTP extension file compiler 10686d7f5d3SJohn Marinobootpgw.c BOOTP gateway main module 10786d7f5d3SJohn Marinobootptab.5 A manual describing the bootptab format 10886d7f5d3SJohn Marinobootptab.cmu A sample database file for the server 10986d7f5d3SJohn Marinobootptab.mcs Another sample from <gwr@mc.com> 11086d7f5d3SJohn Marinobootptest.8 Manual page for bootptest 11186d7f5d3SJohn Marinobootptest.c BOOTP test program (fake client) 11286d7f5d3SJohn Marinobootptest.h header for above 11386d7f5d3SJohn Marinodovend.c Vendor Option builder (for bootpd, bootpef) 11486d7f5d3SJohn Marinodovend.h header for above 11586d7f5d3SJohn Marinodumptab.c Implements debugging dump for bootpd 11686d7f5d3SJohn Marinogetether.c For bootptest (not used yet) 11786d7f5d3SJohn Marinogetether.h header for above 11886d7f5d3SJohn Marinogetif.c Get network interface info. 11986d7f5d3SJohn Marinogetif.h header for above 12086d7f5d3SJohn Marinohash.c The hash table module 12186d7f5d3SJohn Marinohash.h header for above 12286d7f5d3SJohn Marinohwaddr.c Hardware address support 12386d7f5d3SJohn Marinohwaddr.h header for above 12486d7f5d3SJohn Marinolookup.c Internet Protocol address lookup 12586d7f5d3SJohn Marinolookup.h header for above 12686d7f5d3SJohn Marinopatchlevel.h Holds version numbers 12786d7f5d3SJohn Marinoprint-bootp.c Prints BOOTP packets (taken from BSD tcpdump) 12886d7f5d3SJohn Marinoreadfile.c The configuration file-reading routines 12986d7f5d3SJohn Marinoreadfile.h header for above 13086d7f5d3SJohn Marinoreport.c Does syslog-style messages 13186d7f5d3SJohn Marinoreport.h header for above 13286d7f5d3SJohn Marinostrerror.c Library errno-to-string (for systems lacking it) 13386d7f5d3SJohn Marinosyslog.conf Sample config file for syslogd(8) 13486d7f5d3SJohn Marinosyslog.h For systems that lack syslog(3) 13586d7f5d3SJohn Marinotry*.c Test programs (for debugging) 13686d7f5d3SJohn Marinotzone.c Get timezone offset 13786d7f5d3SJohn Marinotzone.h header for above 138