 |
Index for Section 8 |
|
 |
Alphabetical listing for J |
|
joinc(8)
NAME
joinc - Daemon for DHCP client configuration
SYNOPSIS
/usr/sbin/joinc [-f] [-d n] [-l n]
OPTIONS
-d n
Sets debug level to n. If debug is turned on, log messages are also
enabled.
-f Runs in the foreground instead of as a daemon process.
-l n
Enables warning (n > 0) and log (n > 1) messages. If n is not
explicitly given, the value one is assumed (warnings are turned on).
DESCRIPTION
The joinc daemon implements the client half of the Dynamic Host
Configuration Protocol (DHCP) with hardware extensions.
(JOIN is a trademark of Competitive Automation.)
The DHCP protocol, among other things, permits a client to establish an
endpoint for communication with a network by delivering an IP address for
each of the client's network interfaces, and a "lease" on that address. The
lease specifies the interval for which the address remains valid: it may be
infinite or of fixed duration. If it appears that the client wishes to
continue using the IP address after its expiration, the DHCP protocol must
negotiate an extension. For this reason the DHCP client code must run as a
daemon, only terminating when the client powers down.
Communication with the joinc daemon is effected through the agency of an
auxiliary program called dhcpconf. The joinc daemon may be invoked as a
user process (requiring root privileges), but this is not necessary as the
dhcpconf program will start it implicitly.
When started, joinc reads its startup file, /etc/join/client.pcy and either
proceeds to act on the instruction(s) passed to it by the dhcpconf program,
or enters a passive state while awaiting a new command. When joinc
receives a command to configure an interface the DHCP protocol starts. If
successful the interface is configured. The configuration received is
stored in the interface.dhc file located (by default) under the /etc/join
directory. The client daemon sleeps until it needs to renew the lease,
which happens well before the lease expires. Upon wakeup, if the interface
is found to be down or has a different IP address, joinc considers that the
interface is no longer under its control and drops it from future
consideration, until an explicit request arrives from dhcpconf. If the
lease cannot be renewed, joinc takes down the interface when it expires as
required by the DHCP protocol. See RFC 1541 for details.
The DHCP protocol also acts as a mechanism to configure other information
needed by the client such as name domain and router addresses. The joinc
daemon does not configure this information but acts as a database which may
be interrogated by other programs, particularly by dhcpconf. This approach
is more flexible in that it allows third party software access to the data
through a published API, and allows system administrators to control client
configuration by customizing startup scripts to permit various aspects of
the client and its software to be customized in a specific order. On
clients with a single interface this is straightforward; clients with
multiple interfaces may present difficulties because some information
arriving on different interfaces may need to be merged, or may be
inconsistent. Furthermore, the configuration of the interfaces is
asynchronous; requests may arrive while some or all of the interfaces are
still unconfigured. The joinc daemon resolves these problems as follows.
When a request for a global parameter arrives, joinc searches all
interfaces that were successfully configured, and returns to the requester
the name of the first one it find to contain the pertinent data. The
client program may then access the data by an API which reads the
appropriate interface.dhc file. If no interfaces are successfully
configured when the request is received, or if the none of those which are
configured have the data, the request fails. The dhcpconf program allows
this behavior to be overridden by insisting that the global data sought be
associated with a particular interface. See dhcpconf(8) for details.
The joinc daemon writes informational and error messages in four
categories:
Errors
Errors are severe, usually unrecoverable, events due to resource
exhaustion and other unexpected failure of system calls. An error is
also generated if the client's lease on an IP address is in danger of
expiring.
Warnings
Warnings are less severe, and in most cases describe unusual or
incorrect datagrams received from clients, or requests for service that
cannot be provided.
Informational Messages
Informational messages provide a readable transcription of (correct)
actions performed by the server on behalf of client hosts.
Debug Messages
Debug messages may be generated at various levels of verbosity from
zero (not at all) through nine, as controlled by the -d option.
Warning, informational, and debug messages are discarded. Errors are
written to /dev/console and are sent to the system logger syslog(3) at
priority LOG_ERR and with a facility identifier LOG_DAEMON. If warnings
are enabled they also are written to the system console and syslog with the
same facility, but at priority LOG_WARNING. The creation and disposition
of messages is controlled by the -f, -d, and -l command line flags, and the
JOINLOG environment variable. When present, JOINLOG names a file to which
messages are sent in preference to the system console. Note that until the
root file system is mounted read-write no ordinary file can be used for
this purpose.
RESTRICTIONS
A cluster member should never be a DHCP client. It should always use static
addressing.
If a cluster is to support a DHCP server, there can be only one DHCP server
for all the cluster members using a common database with failover.
A cluster member should never be a DHCP client. It should always use static
addressing.
If a cluster is to support a DHCP server, there can only be one DHCP server
for all the cluster members using a common database with failover.
The joinc daemon can configure clients with two or more interfaces giving
each an IP address. However, each interface so configured must be on a
different physical network and subnet.
DIAGNOSTICS
Upon receipt of SIGUSR1 signals, the joinc daemon dumps the contents of its
scheduling table and the status of each interface under its control.
FILES
By default, the joinc daemon expects to read its policy file and read and
write its configuration databases in the /etc/join directory. The
JOINCONFIG environment variable may be used to select a different
directory.
/etc/join/client.pcy
Contains parameters that govern the behavior of joinc, and
general policies concerning network administration.
/etc/join/interface.dhc
Contains the configuration for interface. The existence of this
file does not imply that the configuration is correct, since the
lease may have expired.
RELATED INFORMATION
Commands: dhcpconf(8), dhcpparm(8), joind(8), showdhc(8), shleases(8)
Files: client.pcy(4)
RFC 1541