- ability
- Change the ability set of the invoking process (QNX Neutrino)
- dhclient
- Dynamic Host Configuration Protocol client
- dhclient-script
- DHCP client network configuration script
- dhclient.conf
- DHCP client configuration file
- dhclient.leases
- DHCP client database of acquired leases
- DHCP conditional behavior
- Specify conditional behavior for DHCP servers and clients
- DHCP options
- Dynamic Host Configuration Protocol options
- fsencrypt
- Filesystem encryption manager
- getfacl
- Get the access control list for a file or files
- pathtrust
- Designate a file or filesystem as trusted, or see if it is
- slogger2
- System logger
- slog2info
- Display messages from the system log
- wave
- Play back audio data
- waverec
- Record audio data
Differences between DHCPv4 and v6
There are a few key non-obvious differences between the new and old DHCP
that you should be aware of:
- As an extension, we've added two new command-line options to
dhclient:
- -m
- Write the resolver configuration to memory (using confstr)
rather than to /etc/resolv.conf.
- --no-resolve
- Don't install the resolver configuration at all.
- dhclient: All the local node configuration is taken care of
by the dhclient-script, i.e. users are free to change
and adapt this, which gives them a lot of flexibility.
We install a default version of this script in /sbin.
- The above -m and --no-resolve command-line options
are implemented by simply passing environment variables
RESOLV_TO_MEMORY and MODIFY_RESOLV
respectively to the script, and the default script handles them.
- The default dhclient-script overwrites the local
resolver configuration; it doesn't attempt to merge it.
This has the advantage that stale resolver configuration isn't kept
around, but also has drawbacks (see below).
- The old dhcp.client process would handle one interface;
the new dhclient can handle several interfaces in one process
(but the state machines are separate).
- The new client, relay, and server support IPv6 (the old ones didn't).
- The new client, relay, and server can be started in either
IPv4 mode (default, -4 command-line option) or IPv6 mode
(-6), but not both at the same time.
- If two or more instances of dhclient run at the same time,
there are potential races for any common configuration parameters they
may both receive, and this should be handled by the
dhclient-script.
One example of such configuration parameters is the
resolver configuration, and the solution in that particular case is to
run one of the clients with the --no-resolve command-line
option or change the default dhclient-script.
- The ARP probing feature in old dhcp.client isn't implemented
in the new dhclient, the place to invoke such functionality
would be in the dhclient-script.
- BUG: Failures of IPv6 Duplicate Address Detection aren't captured by
dhclient.
This should apparently be handled by the dhclient-script,
but currently the script's return values aren't processed,
so this won't work.
- We've added support for DHCPv6 over PPP interfaces (and we hope to get
ISC to officially support this patch).
- dhclient will not clean up if it's simply killed.
Instead, use the -r and -x options.
- IAIDs are sequence numbers that start based on the MAC address for
regular interfaces, but are simple sequence numbers starting at zero
for PPP interfaces.
- DHCPv6 uses DHCP Unique Identifiers (DUIDs), which just need to be
unique per node, not per interface as you might think.
A DUID is an opaque identifier to the peer, and the peer can use only
it to compare equality (==).
If a DUID is in the leases file, it'll be grabbed from there before trying
to create it. You can't form it from PPP interfaces; instead our patch
tries other interfaces (if they're specified on the command line).
You can also set the DUID manually, as described in the entry for
dhclient.conf.
- DHCPv4 isn't expected to work on PPP; if you try it, you'll get an
error message like this:
Unsupported device type 23 for "ppp0"
The DHCP utilities have the dependencies listed below.
These dependencies are really important only if you're creating an image
file; if you're booting from a full installation, they should already be
present.
- dhcpd
- Has a dependency on the following libraries/binaries:
- libcrypto.so
- libsocket.so
- libdhcpctl.so (built as part of io-pkt/services/dhcp)
- io-pkt-v4, io-pkt-v4-hc, or io-pkt-v6-hc
(depending on whether you're using IPv4 or IPv6)
Configuration files:
- /etc/dhcpd6.conf (required, DHCPv6 config file; you
can override it with -cf config_file on startup)
- /etc/dhcpd.conf for IPv4 (DHCPv4) operation.
- /var/db/dhcpd6.leases (required, database and server ID,
needs to be read/write; you can override it with -lf
leases_file on startup)
- /var/db/dhcpd.leases for IPv4.
You should generally create an empty leases file.
- dhclient
- Has a dependency on the following libraries/binaries:
- libcrypto.so
- libsocket.so
- io-pkt-v4, io-pkt-v4-hc, or io-pkt-v6-hc
(depending on whether you're using IPv4 or IPv6)
- /sbin/dhclient-script (required; you can override it
with -sf script-file on startup)
Configuration files:
- /var/db/dhclient6.leases (optional; if not present,
it will generate a new client ID on every startup; you can override it
on startup)
- /etc/dhclient6.conf (optional; defaults used if not
present; you can override it on startup)
- /etc/dhclient.conf for IPv4
- dhclient6.leases
- dhclient.leases for IPv4
- dhclient-script
- Has a dependency on the following libraries/binaries:
- ifconfig (which needs io-pkt-* and
libsocket.so)
- sh
- route
- hostname
- getconf
- setconf
- cat
- mv
- If /etc/dhclient-enter-hooks and/or
/etc/dhclient-exit-hooks exists,
then dhclient-script will run them too.
Configuration files:
- /etc/resolv.conf (optional; needed to update the
DNS server; must be read/write)
- dhcrelay
- Has a dependency on the following libraries:
- libcrypto.so
- libsocket.so
- io-pkt-v4, io-pkt-v4-hc, or io-pkt-v6-hc
(depending on whether you're using IPv4 or IPv6)
All configuration is done from the startup command line.