Article Title : cisco_bootp_helper_configuration Creation Date : unknown Author : NCD Technical support Last Update : 6-1-93, 6-10-93 Last Update By : NCD Technical Support Expiration Rules : Location : NCD-Articles/Networking ============================================================================= 1) Set the boot helper configuration parameter on the CISCO router. This will allow the broadcasted bootp request to be forwarded to the Boot Host. Normally, routers do not pass broadcast requests between networks. Let's assume the following network configuration: +---------------+ | Boot Host | 192.43.157.40 boot_host.com +---------------+ | (subnet 1) /=============================================/ Ethernet(192.43.157) Ethernet 0 | 192.43.157.2 +------------+ | CISCO 1 | +------------+ Ethernet 1 | 192.43.156.2 (subnet 2) /==============================================/ Ethernet(192.43.156) | | | +---------+ +---------+ +---------+ | ncd17c1 | | ncd17c2 | | ncd17c3 | +---------+ +---------+ +---------+ 192.43.156.171 192.43.156.172 192.43.156.173 IP Address 0000a70023a3 0000a70010a7 0000a70015c3 Ethernet Add. On the CISCO, Ethernet 1 (subnet 2), you would type: ip helper-address 192.43.157.40 On the CISCO, Ethernet 1 (subnet 2), you must be in "Enable" mode, edit the configuration of the CISCO, using the "configure" command as follows: cisco8>enable Password:xxxxxx cisco8#> configure Example CISCO configuration information additions: ! ! ! ! interface Ethernet 0 ip address 192.43.157.2 255.255.255.0 ip helper-address 192.43.156.xxx (any host IP address) bridge-group 1 ! interface Ethernet 1 ip address 192.43.156.2 255.255.255.0 ip helper-address 192.43.157.40 bridge-group 1 ! ! ! router rip network 192.43.157.0 network 192.43.156.0 ! ! ! 2) Now set up the bootptab file on the Boot Host (boot_host.com) as follows: /etc/bootptab file: # /etc/bootptab: database for bootp server (/etc/bootpd) # Last update Mon 11/7/88 18:03 # Blank lines and lines beginning with '#' are ignored. # # Legend: # # first field -- hostname # (may be full domain name and probably should be) # # hd -- home directory # bf -- bootfile # cs -- cookie servers # ds -- domain name servers # gw -- gateways # ha -- hardware address # ht -- hardware type # im -- impress servers # ip -- host IP address # lg -- log servers # lp -- LPR servers # ns -- IEN-116 name servers # rl -- resource location protocol servers # sm -- subnet mask # tc -- template host (points to similar host entry) # to -- time offset (seconds) # ts -- time servers # # Be careful about including backslashes where they're needed. Weird (bad) # things can happen when a backslash is omitted where one is intended. # # First, we define a global entry which specifies the stuff every host uses. global.dummy:\ :sm=255.255.255.0:\ :hd=/tftpboot/Xncd.2.3.0:\ # :ds=192.43.157.40 192.43.156.5:\ #if you have domain name servers :to=18000: # # Next, we can define different master entries for each subnet. . . subnet.one:\ :tc=global.dummy:gw=192.43.157.2: subnet.two:\ :tc=global.dummy:gw=192.43.156.2: # # Now the entries for each NCD we are going to service ncd17c1: tc=subnet.two:\ ht=ethernet:\ ha=0000a70023a3:\ ip=192.43.156.171:\ bf=Xncd17c_lt ncd17c2: tc=subnet.two:\ ht=ethernet:\ ha=0000a70010a7:\ ip=192.43.156.172:\ bf=Xncd17c_lt ncd17c3: tc=subnet.two:\ ht=ethernet:\ ha=0000a70015c3:\ ip=192.43.156.173:\ bf=Xncd17c_lt ############################End of bootptab######################### 3) Lastly, configure bootpd on the Sun Add the following entry to your /etc/inetd.conf file on sun1.ge.com: bootps dgram udp wait root /etc/bootpd bootpd Get inetd to re-read the config file by sending a 'kill -HUP' signal to its process id. ie: 'kill -HUP inetd-procid-num' You can use the command 'ps aux | grep inetd' to find the inetd-procid-num value. NOTE: You must update your /etc/services file to contain the following two lines: bootps 67/udp # bootp server bootpc 68/udp # bootp client _______________________________________________________________________ Excerpts from bootpd.8 man page: NAME bootpd - Internet Boot Protocol server SYNOPSIS /etc/bootpd [ -s -ttimeout -d ] [ configfile [ dumpfile ] ] DESCRIPTION Bootpd implements an Internet Boot Protocol server as defined in RFC951 and RFC1048. It is normally run by /etc/inetd by including the following line in the file /etc/inetd.conf: bootps dgram udp wait root /etc/bootpd bootpd This causes bootpd to be started only when a boot request arrives. If bootpd does not receive another boot request within fifteen minutes of the last one it received, it will exit to conserve system resources. The -t switch may be used to specify a different timeout value in minutes (e.g. -t20). A timeout value of zero means forever. It is also possible to run bootpd in a standalone configura- tion using the -s switch (for example, at boot time from /etc/rc.local). This is probably the desired mode of opera- tion for large network installations with many hosts. In this case, the -t switch has no effect since bootpd will never exit. Each instance of the -d switch increases the level of debug- ging output. -------------------------------------------------------------- (More info can be found in NCD.2.3.0/examples/bootp/bootpd.8) NOTES: (taken from NCD.2.3.0/examples/bootp/README) 1) BOOTP was originally designed and implemented by Bill Croft at Stanford. Much of the credit for the ideas and the code goes to him. We've added code to support the vendor specific area of the packet as specified in RFC1048. We've also improved the host lookup algorithm and added some extra logging. 2) You must update your /etc/services file to contain the following two lines: bootps 67/udp # bootp server bootpc 68/udp # bootp client Edit your /etc/rc.local or /etc/inetd.conf file to start up bootpd upon reboot. Care and feeding: If you change the interface cards on your host or add new hosts you will need to update /etc/bootptab. Just edit it as before. Once you write it back out, bootpd will notice that there is a new copy and will reread it the next time it gets a request. If your bootp clients don't get a response then several things might be wrong. Most often, the entry for that host is not in the database. Check the hardware address and then check the entry and make sure everything is right. Other problems include the server machine crashing, bad cables, and the like. If your network is very congested you should try making your bootp clients send additional requests before giving up.