This section outlines techniques that can help you diagnose and correct
common problems with the BOOTP and TFTP servers.
Helpful Configuration Changes |
 |
To make troubleshooting easier, configure your system as follows:
Ensure syslogd is configured to log daemon information messages to the file /var/adm/syslog/syslog.log. To check this configuration, make sure /etc/syslog.conf includes one of the following lines:
or
Configure bootpd to start with debug logging set to level 2. This logging level
causes bootpd to log useful debugging messages about how it is replying to
BOOTP clients. Follow these steps to set the debug log level:
Add the -d 2 option to the bootpd line in /etc/inetd.conf:
Reconfigure inetd with the following command:
Kill any bootpd daemon that is still running on your system. For example,
Common bootpd Problems |
 |
If you experience a problem with bootpd, read through this section for
possible remedies. The problems listed in this section are ordered by
symptom.
To view the information that bootpd places in the bootreply, enable a
broadcast bootreply by adding the ba tap to the client's /etc/bootptab
entry. Use the bootpquery command to emulate the client's bootrequest:
bootpquery prints the reply it receives from the server, which allows you
to examine the information supplied to the client. Remove the ba tag from
the configuration entry once you've verified the correctness of the bootreply.
Symptom:
The server's system log file /var/adm/syslog/syslog.log does not
contain any log messages from /usr/lbin/bootpd showing that the server
started. A ps -ef listing does not show a running /usr/lbin/bootpd.
Cause:
The server may not be started or it may not be receiving the client's
bootrequest.
Action:
Make sure that /etc/inetd.conf is configured correctly as documented
earlier in this chapter.
Ensure that you have reconfigured inetd with the command inetd -c.
Check inetd's logging in /var/adm/syslog/syslog.log to ensure inetd is configured to start bootpd.
Verify that the server will start by using the bootpquery command.
Check whether the client is on the same network as the BOOTP server. If the
client is not on the same network, ensure that intervening BOOTP servers are
configured to relay bootrequest broadcasts.
Symptom:
The system log /var/adm/syslog/syslog.log contains one of the
following messages:
hardware address not found: hardware_address
IP address not found: ip_address
Cause:
bootpd does not have an entry in /etc/bootptab for this client's hardware
address or IP address.
Action:
Check the system log for any indication of syntax errors for the client's
configuration entry. Correct the entry in /etc/bootptab and reboot the
BOOTP client.
Ensure that the hardware address you specified for the ha= tag matches the
hardware address that /usr/lbin/bootpd said it could not find. Correct the
tag and reboot the BOOTP client.
Ensure the hardware type tag ht has the correct value for the client. For example,
if you have specified ether but the client is reporting ieee in its bootrequest, bootpd will reject the request. Correct the tag and reboot the BOOTP client.
Symptom:
The system log /var/adm/syslog/syslog.log contains a message that
looks like this:
requested file not found: filename
Cause:
The client specified filename as the boot file in its bootrequest, but bootpd
could not find the file in the tftp directory.
Action:
Make sure that you have configured tftpd with the entry in /etc/passwd for
the user tftp.
Ensure that the requested file is present in the tftp directory, which is usually /home/tftpdir or in the directory specified with the tftpd command. If it
is not, place the file in the directory and reboot the BOOTP client. If the requested
file exists in the directory, be sure it is readable by the user tftp. (See
“Common tftpd Problems”.)
Symptom:
The system log /var/adm/syslog/syslog.log contains the following
message:
cannot route reply to client's_IP_address
Cause:
The IP address you have specified for the client is one which the server's
system cannot reach directly.
Action:
Ensure you have specified the correct IP address for the client in /etc/bootptab. Correct the entry and reboot the BOOTP client.
If the server is to reply directly to the client, it must reside on the same network
or subnet as the client. If the client resides on another network, ensure that
intervening servers are configured to relay the bootrequests.
Ensure the IP address you have chosen for the client is a valid IP address for the
server's network.
Symptom:
The system log contains one or more of the following error messages:
duplicate hardware address: link_address
syntax error in entry for host hostname
unknown symbol in entry for host hostname
bad IP address for host hostname
bad subnet mask for host hostname
bad time offset for host hostname
bad vendor magic cookie for host hostname
bad reply broadcast address for host hostname
Cause:
Any of these error messages means there are errors in the configuration file
entry for the client.
Action:
See
“Error Logging” for an explanation of the error message.
Correct the appropriate field for the entry in /etc/bootptab and reboot the
BOOTP client. Use bootpquery to send a bootrequest to /usr/lbin/bootpd for the client whose entry you have corrected. Check
the system log /var/adm/syslog/syslog.log to see if the server replies.
At debug level 2 (see
“Helpful Configuration Changes”), bootpd logs the following sequence of messages when it responds to a
bootrequest:
request from hardware address link_address
found ip_address hostname
vendor magic field is magic_cookie
sending RFC1048-style reply
Symptom:
The client does not receive configuration information for the tags that pertain
to RFC 1048 vendor information:
ds = domain_nameserver_addresses
lg = log_server_addresses
Tnnn = generic_information
Cause:
Too many RFC-1048 options have been specified for the client's
configuration entry in /etc/bootptab. The BOOTP protocol allows only
64 bytes of "vendor extension" information. When such extended
information is included in the bootreply, bootpd must also add a 4-byte
vendor magic cookie to the bootreply, a 1-byte tag indicating the end of the
vendor information, and a 1-byte or 2-byte tag for each field (depending on
the format of the field) along with the value of the tag itself. The total size of
the extended information you list for a client must not exceed 64 bytes.
Action:
Ensure the configuration contains only the necessary information to boot the
client. Check the documentation for the BOOTP client to find out which tags
are necessary for configuration and which tags are supported.
For example, if the client only supports one nameserver address, there is no
need to list three nameserver addresses with the ds tag. If the client does not
support configuring its host name with the hn tag, there is no reason to
include it.
Common tftpd Problems |
 |
If you experience a problem with tftpd, read through this section for
possible remedies. The problems listed in this section are ordered by
symptom.
Symptom:
File transfer "timed out." inetd connection logging (enabled with the inetd
-l command) does not show any connection to the TFTP server.
Cause:
The TFTP server, tftpd, did not start.
Action:
Ensure /etc/inetd.conf is configured correctly as documented earlier in
this chapter.
Ensure you have reconfigured inetd with the command inetd -c.
As documented in
“Configuring the BOOTP Server”, verify that the
server is working by using tftp to transfer a small file. It might be helpful to
try the transfer from another node on your network rather than from the server
node itself.
If the server still fails to start when the client attempts the file transfer, then
you probably have a connectivity problem. Refer to Installing and
Administering LAN/9000 Software or the BOOTP client manual (for
example, HP 700/X documentation).
Symptom:
File transfer "timed out." The system log contains one of the following
messages:
Cause:
The TFTP server, tftpd, exited prematurely.
Action:
If you suspect that there is a problem on the network, you can increase the
per-packet retransmission and the total retransmission timeouts used by tftpd. These timeouts are specified (in seconds) with the -R or -T options.
See the tftpd man page for more information.
The User tftp unknown message can also mean that the password
database entry for the user tftp is either missing or incorrect. Verify that
the entry exists and is correct, then try the transfer again.
If tftpd experiences a system call failure that causes it to exit, it will log
the name of the system call and the reason for the system call failure. For
more information about the reason why it failed, refer to the system call in
the HP-UX Reference.
Symptom:
File transfer fails with File Not Found, No Such File or Directory,
or TFTP Error Code 1 message.
Cause:
The file the client is attempting to read from or write to the server does not
exist within the home directory of the user tftp or in the path specified with
the tftpd command.
Action:
Ensure the full path name that the client is requesting from the server exists
within the tftp directory or in a path specified with the tftpd command.
For example, if the tftp directory is /home/tftpdir and the TFTP client
is requesting the file /usr/lib/X11/700X/C2300A, the file must exist as /home/tftpdir/usr/lib/X11/700X/C2300A.
If no entry exists for the user tftp in the /etc/passwd file, you must
specify at least one file or directory with the tftpd command. Make sure
that you specify the full path name when attempting to get a file from a
directory specified with the tftpd command.
Symptom:
File transfer fails with Access Violation, Permission Denied, or TFTP Error Code 2 message.
Cause:
tftpd does not have permission to read the file.
Action:
If the transfer is a get operation where the client is attempting to read the file
from the server, then the server does not have read permissions on the file that
it is trying to send. Ensure that the file the client is reading has read
permissions for the user tftp. For example, if the client was attempting to
read the file named xterm, xterm should be mode 0400 and owned by the
user tftp:
If the transfer is a put operation (which is not something a BOOTP client
will be doing as part of the BOOTP protocol), then this message means that
the file did not have sufficient write permissions for the server to write to the
file. If the server is to receive a file, it must already exist and be writeable by
the user tftp. For example, if a tftp client is sending the file named fontlist, the file must be mode 0600 and owned by tftp:
Error Logging |
 |
This section explains the error messages that bootpd logs through syslogd. The three levels of error logging documented in this section are
as follows:
The bootpd debug level must be set for these messages to be logged. Set
the debug level using the -d option to bootpd.
The following messages are logged at the syslogd information log level.
exiting after time minutes of inactivity
If bootpd hasn't received a bootrequest within time minutes (the timeout set
with the -t option), it issues this message and exits.
reading configuration_file
reading new configuration_file
bootpd is reading or rereading configuration information from the indicated configuration_file.
read number entries from configuration_file
Shows that bootpd successfully read number configuration entries, including
table continuation entries, from the indicated configuration_file.
request from hardware address hardware_address
bootpd received a bootrequest from a client with the indicated hardware_address. This message is logged at debug level 1.
request from IP addr ip_address
bootpd received a bootrequest from a client with the indicated ip_address.
This message is logged at debug level 1.
found ip_address hostname
bootpd located information for the specified client in its configuration
database. This message is logged at debug level 1.
broadcasting reply on ip_address
Shows the broadcast address that bootpd uses to reply to a client whose
configuration entry has the ba flag. This message is logged at debug level 2.
vendor magic field is magic_cookie
sending CMU-style reply
sending RFC1048-style reply
Shows which vendor magic cookie was sent in the client's bootrequest and the
corresponding vendor magic cookie used in the bootreply. These messages are
logged at debug level 2.
bootptab mtime is time
bootpd uses the indicated modification time to determine if the configuration
file has been modified and should be reread. This message is logged at debug
level 3.
There may be cases where bootpd receives a bootrequest but does not send
a bootreply. The reason is given in one of the following messages and
logged at the notice log level.
hardware address not found: hardware_address
bootpd could not find a configuration entry for the client with the indicated hardware_address. If bootpd should know about the client that is
booting, ensure that you have correctly specified the client's hardware address in
the configuration file.
IP address not found: ip_address
bootpd could not find a configuration entry for the client with the indicated ip_address. If bootpd should know about the client that is booting, ensure
that you have correctly specified the client's IP address in the appropriate
configuration file entry.
requested file not found: filename
The client requested the boot file filename, but bootpd could not locate it.
Ensure that the boot file the client is requesting is located in the tftp directory
on the server system.
cannot route reply to ip_address
The IP address to which bootpd must send the bootreply is for a client or
gateway that is not on a directly connected network. Ensure that you have
specified a valid IP address for the client or gateway.
The following errors indicate problems with the configuration file. They are
logged at the error log level. If you see any of these messages, you should
correct the indicated configuration entry in /etc/bootptab and try to
reboot the BOOTP client.
bad bootp server address for host hostname
A value specified for the bp tag is invalid. Values can be individual IP addresses
separated by a space, and/or one or more network broadcast addresses.
bad hardware mask value for host hostname
The value for the hardware address mask tag hm was incorrectly formatted in the
configuration file entry for hostname. Correct the configuration entry and try
to reboot the BOOTP client. The subnet mask must be specified in hex.
bad hardware type for host hostname
The value specified for the ht tag is an unsupported hardware type. See the bootpd man page for a list of supported hardware types.
bad hostname: hostname
The name given in the hostname field was not a valid host name. Correct the
host name and try to reboot the BOOTP client. A valid host name consists a
letter followed by any number of letters, digits, periods, or hyphens.
bad IP address for host hostname
One of the IP addresses listed for the ip tag or any tag requiring a list of IP
addresses is incorrectly formatted in the configuration file entry for hostname.
Correct the configuration entry and try to reboot the BOOTP client. IP
addresses must be specified in standard Internet "dot" notation. They can use
decimal, octal, or hexadecimal numbers. (Octal numbers begin with 0, and
hexadecimal numbers begin with 0x or 0X.) If more than one IP address is
listed, separate addresses with white space.
bad reply broadcast address for host hostname
The address given for the ba tag was invalid or incorrectly formatted. Correct
the configuration entry and try to reboot the BOOTP client. Type man 1M
bootpd for more information.
bad subnet mask for host hostname
The value for the subnet mask tag sm was incorrectly formatted in the
configuration file entry for hostname. Correct the configuration entry and try
to reboot the BOOTP client. The subnet mask must be specified as a single IP
address.
bad time offset for host hostname
The value for the to= tag was not a valid number. Correct the configuration
entry and try to reboot the BOOTP client. The to= value may be either a signed
decimal integer or the keyword auto, which uses the server's timezone offset.
bad vendor magic cookie for host hostname
The vendor magic cookie, specified with the vm tag, was incorrectly formatted.
Correct the configuration entry and try to reboot the BOOTP client. The vm tag
can be one of the following values: auto, rfc1048, or cmu.
can't find tc=label
bootpd could not find a table continuation configuration entry with the host
field label. Correct the configuration entry and try to reboot the BOOTP
client. Type man 1M bootpd for more information.
duplicate hardware address: hardware_address
More than one configuration entry was specified for the client with the indicated hardware_address. Ensure that only one configuration entry exists for the
hardware address in /etc/bootptab. Then, try to reboot the BOOTP client.
missing ha values for host hostname
The hardware address must be specified in hex and must be preceded by the ht
tag. If the hm tag is specified, the ha and ht tags must also be specified.
syntax error in entry for host hostname
The configuration entry for the indicated host hostname is incorrectly
formatted. Correct the configuration entry and try to reboot the BOOTP client.
Type man 1M bootpd for the correct syntax of the BOOTP configuration file.
unknown symbol in entry for host hostname
The configuration entry contains an unknown tag or invalid character. Correct
the configuration entry and try to reboot the BOOTP client. Type man 1M
bootpd for the correct syntax of the BOOTP configuration file.