Configuring Bootstrap Protocol (BOOTP) service

Configuring Bootstrap Protocol (BOOTP) service

The Internet Bootstrap Protocol (BOOTP) simplifies administration of your network by providing workstations and other peripherals such as network hubs and printers with the ability to obtain their TCP/IP network configuration information from a centralized database on a BOOTP server. Configuration parameters that a client can obtain from the BOOTP server include its IP address, netmask, default router IP address, and DNS server IP address.

NOTE: If you have DHCP clients, UnixWare allows you to configure a DHCP server. See ``Configuring a Dynamic Host Configuration Protocol (DHCP) server'' for more information.

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.

NOTE: It is possible to configure a BOOTP gateway on a non-routing host rather than on a router. This will increase network traffic because request packets will appear twice on the local subnet; once as broadcast requests and once as forwarded requests.

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:

Setting up a BOOTP server

Your BOOTP server should typically be the same machine as your installation server. To set up a BOOTP server, perform the following procedure:

  1. Log in as a privileged user on the BOOTP server, and edit the file /etc/inet/bootptab.

  2. Create a parameter value template entry for any configuration information that will be common to all client hosts on the network serviced by this BOOTP server.

    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= \

  3. Create a generic subnet entry for each subnet serviced by this BOOTP server.

    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= \
    ..net134: \
            :tc=.default: \
            :ip= \

  4. Create entries for clients on the subnets. These are examples:
    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:

  5. The bootpd daemon is started by the Internet services daemon, inetd, when required. To enable BOOTP, search for the following line in /etc/inetd.conf:
    #bootps dgram udp wait root /usr/sbin/in.bootpd in.bootpd
    Uncomment the line by removing the leading ``#'' character.

    NOTE: If you also want to configure the server as a DHCP server, you must run the BOOTP server in slave mode. See ``Making DHCP work with BOOTP'' for more information.

  6. Some devices, such as network printers that use BOOTP to obtain their network parameters, may also need to be able to download other configuration files or programs using TFTP. When required, the tftpd daemon is started by inetd. To enable TFTP, search for the following line in /etc/inetd.conf:
    #tftp dgram udp wait root /usr/sbin/in.tftpd in.tftpd -s /tftpboot
    Uncomment 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.

  7. Force inetd to re-read /etc/inetd.conf by sending it a SIGHUP signal:

    kill -HUP `cat /etc/saf/inetd/_pid`

    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.

Setting up a BOOTP gateway

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.

NOTE: A BOOTP gateway can also be used to forward DHCP discover messages from DHCP clients to DHCP servers.

To configure a BOOTP gateway:

  1. Log in as root.

  2. The bootpgw daemon is started by the Internet services daemon, inetd, when required. To enable a BOOTP gateway, add the following line in /etc/inetd.conf:
    bootps dgram/i udp wait root /usr/sbin/in.bootpgw in.bootpgw server
    Replace server with the name or IP address of the BOOTP server, or that of another BOOTP gateway in the path to the server.

  3. Force inetd to re-read /etc/inetd.conf by sending it a SIGHUP signal:

    kill -HUP `cat /etc/saf/inetd/_pid`

    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.

Viewing a client's network configuration

You can query the BOOTP server for a client's network configuration information by running the bootp(1Mtcp) command.

NOTE: When you run the bootp command the local configuration files on the client are not updated.

Perform the following procedure:

  1. Log in as a privileged user on the client.

  2. Enter the command:

    bootp device

    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
    If 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.

For more about BOOTP

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
To get more information about BOOTP, see the following Request for Comments (RFCs). For information on how to obtain RFCs, see ``Obtaining RFCs from the Internet''.

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

© 2004 The SCO Group, Inc. All rights reserved.
UnixWare 7 Release 7.1.4 - 22 April 2004