|
|
A BOOTP client uses the command bootp(1Mtcp) to broadcast a request for information from any BOOTP server that has been configured to respond to it on the local subnet. If a BOOTP server has not been configured to reply on the local subnet, a local machine can be configured as a BOOTP gateway which uses bootpgw(1Mtcp) to forward a request to a server or gateway on another subnet. You can also use a BOOTP gateway to forward DHCP discover messages between subnets.
You can also use a BOOTP gateway to broadcast BOOTP replies on a subnet. Some older BOOTP clients will only accept BOOTP replies that are broadcast.
``Using a router as a BOOTP gateway'' shows how a BOOTP gateway configured on a router could be used to receive BOOTP requests and DHCP discover messages from subnet A which does not have a BOOTP or DHCP server, and forward these to BOOTP and DHCP servers on subnet B.
Using a router as a BOOTP gateway
When a BOOTP server receives a request from a client for which it holds configuration information, it uses the bootpd(1Mtcp) daemon to reply directly to the client, possibly via a BOOTP gateway, without broadcasting. The BOOTP configuration database is maintained in the file /etc/inet/bootptab on the server (see bootptab(4tcp)).
Clients can obtain their initial network configuration from a BOOTP server at installation time. If the characteristics of the network change at a later time, (for example, if the domain name changes, or if the client moves to another subnet) you can update the clients' local configuration files (for example, /etc/hosts or /etc/resolve.conf) from the BOOTP server to reflect the changes.
In addition to simplifying the client installation and configuration process, the UnixWare implementation of BOOTP also simplifies administration of the configuration database on the BOOTP server. If, for example, your BOOTP server is going to support 300 client hosts, you typically do not need to set up a bootptab file containing 300 fully defined client entries. Instead, you can set up a bootptab file that contains entries at three levels:
See also:
Your BOOTP server should typically be the same machine as your installation server. To set up a BOOTP server, perform the following procedure:
Give the entry a dummy host name beginning with one dot ``.'', such as .default. Specify the common parameter values using the keyword tags described on the bootptab(4tcp) manual page. Some typical parameters you can set in your template entry include a global subnet mask (using the sm tag) and a domain name server list (using the ds tag).
An example parameter template entry might look like this:
.default: \ :sm=255.255.255.0: \ :ds=pine,stone:
Give each entry a dummy host name that begins with two dots ``..''. Specify the information that is common to all hosts on each subnet as parameter values. At minimum, each subnet entry must define a subnet IP address using the ip tag, and gateway address list using the gw tag. Also make sure you include a table continuation tag (tc) in each subnet entry. The tc specification ensures that the subnet entry references the network-wide parameters defined in your parameter template entry, as shown here:
..net133: \ :tc=.default: \ :ip=137.2.133.0: \ :gw=137.2.133.1: ..net134: \ :tc=.default: \ :ip=137.2.134.0: \ :gw=137.2.134.1:
curly:tc=.net133:ht=ether:ha=00608cf2cc46:ip=137.2.133.2: moe:tc=.net134:ht=ether:ha=00608cf2cc57:ip=137.2.134.2:If a host client requires configuration information other than that defined in the subnet entries, create an entry specifically for it such as the one shown here:
larry:tc=.default:ht=ether:ha=00608cf2ca35:ip=137.2.107.27:gw=137.2.134.1:
#bootps dgram udp wait root /usr/sbin/in.bootpd in.bootpdUncomment the line by removing the leading ``#'' character.
#tftp dgram udp wait root /usr/sbin/in.tftpd in.tftpd -s /tftpbootUncomment the line by removing the leading ``#'' character. This example assumes that the files to be downloaded are stored in the /tftpboot directory hierarchy on the server.
or by stopping and restarting it:
sacadm -k -p inetd
sacadm -s -p inetd
inetd will now be able to start bootpd and tftpd when the server receives a BOOTP request from a client.
A BOOTP client normally finds a BOOTP server by broadcasting on the subnet that is connected to its network interface. If you want a BOOTP client to obtain its configuration information from a BOOTP server that is not on the same subnet, you must configure a BOOTP gateway on the same subnet as the client. The BOOTP gateway listens for broadcast BOOTP requests, and forwards them to a BOOTP server.
To configure a BOOTP gateway:
bootps dgram/i udp wait root /usr/sbin/in.bootpgw in.bootpgw serverReplace server with the name or IP address of the BOOTP server, or that of another BOOTP gateway in the path to the server.
or by stopping and restarting it:
sacadm -k -p inetd
sacadm -s -p inetd
inetd will now be able to start bootpgw when the gateway receives a BOOTP request broadcast from a client.
You can query the BOOTP server for a client's network configuration information by running the bootp(1Mtcp) command.
Perform the following procedure:
device is the name of the device for the client's network interface via which the BOOTP server can be reached (possibly using a gateway).
For example, the command bootp /dev/SMC8K_0 might display information such as this:
UX:bootp: INFO: Local ether address: 00:00:c0:19:ca:35 UX:bootp: INFO: 32/64 vend bytes used INET_YOUR_IP_ADDRESS=137.2.133.63 INET_SERVER_IP_ADDRESS=137.2.133.56 INET_BOOT_FILE_NAME=/export/diskless/fido/stand/unix INET_SUBNET_MASK=0xFFFFFF00 INET_BROADCAST_ADDRESS=137.2.133.255 INET_ROUTER[0]=137.2.133.1 INET_TIME_OFFSET=0 INET_DNS_SERVER[0]=137.2.200.5 INET_DNS_SERVER[1]=137.2.200.21 INET_DOMAIN_NAME=eng.widgit.com INET_HOSTNAME=laz INET_ETHER_ENCAPSULATION=ETHER_IIIf you see several messages such as
UX:bootp: INFO: timedout=
n
followed by INET_BOOTP_TIMEDOUT=yes
, then a
BOOTP server is not accessible on the specified device
interface, inetd on the server is not configured to
run bootpd, or information about
this host (such as its MAC address)
is not configured correctly on the BOOTP server.
To obtain more information about BOOTP, see the following manual pages:
Manual page | Information provided |
---|---|
bootp(1Mtcp) | Remote Bootstrap Protocol configuration client |
bootpd(1Mtcp) | Internet Bootstrap Protocol server daemon |
bootpgw(1Mtcp) | Internet Bootstrap Protocol gateway daemon |
bootptab(4tcp) | Internet Bootstrap Protocol server database |
RFC | Title |
---|---|
951 | Bootstrap Protocol |
1084 | BOOTP vendor information extensions |
1340 | Assigned Numbers |
1534 | Interoperation Between DHCP and BOOTP |
1542 | Clarifications and Extensions for the Bootstrap Protocol |