ahcpd - ad-hoc configuration daemon
ahcpd option... [ -- ] interface...
AHCP is a configuration protocol that can replace DHCP on networks
without transitive connectivity, such as mesh networks.
is a sequence of lines, each of which starts with one of the keywords below.
Blank lines are ignored. Comments are introduced with an octothorp ‘‘#’’ and
terminate at the end of the line.
- -m multicast-address
- Specify the link-local multicast address to be used by AHCP. The default
- -p port
- Specify the UDP port number to be used
by AHCP. The default is 5359.
- Operate as a forwarder: participate in the
flooding protocol, but don’t actually perform any configuration.
- Only attempt
to configure IPv4 addresses.
- Only attempt to configure IPv6 addresses.
- Do not configure DNS.
- -t time
- Specify the time, in seconds, for which leases
are requested. The default is slightly over one hour. Must be between five
minutes and a year.
- -s script
- Specify the configuration script to run. The
default is /etc/ahcp/ahcp-config.sh.
- -d level
- Set the debug level to level
- -i filename
- Specify the filename containing this host’s unique
id. The default is /var/lib/ahcp-unique-id. If it doesn’t exist, it will be
created by ahcpd.
- -c filename
- Specify the name of the configuration file.
- -C statement
- Specify a configuration statement directly on the command line.
- Daemonise at startup.
- -L logfile
- Specify a file to log random ‘‘how do you
do?’’ messages to. This defaults to standard error if not daemonising, and
to /var/log/ahcpd.log otherwise.
- -I pidfile
- Specify a file to write our process
id to. The default is /var/run/ahcpd.pid.
The following keywords are recognised:
- mode server|client|forwarder
- Specifies whether the daemon operates as a server,
a client, or a forwarder. If omitted, the default is to operate as a client,
unless the -n flag is present on the command line. If present, this must
be the first line in the configuration file.
- prefix prefix
- Specifies a prefix
to use for configuring clients. This keyword is only valid in server configurations,
and may be specified twice, once for IPv4 and once for IPv6.
- lease-dir directory
- Specifies a directory to store lease files. This keyword is only valid
in server configurations.
- name-server address
- Specifies the address of a
DNS server to configure clients with. This keyword is only valid in server
configurations, and may be repeated multiple times.
- ntp-server address
the address of an NTP server to configure clients with. This keyword is
only valid in server configurations, and may be repeated multiple times.
- An 8-byte long file containing this host’s unique
id. If it doesn’t exist, a new unique id will be generated from an interface’s
- The script that performs the actual
configuration. It will be passed one argument, which is either start or
- If this is an executable script, it will be
called by ahcp-config.sh just after configuring or deconfiguring. It will
be passed one argument, which is either start or stop.
Since the AHCP protocol
is designed for mesh networks, it doesn’t have any provisions for setting
routing parameters such as a default gateway, the IPv4 network mask and
the IPv6 list of on-link prefixes; these are expected to be provided by
a full-fledged routing protocol for mesh nodes, and by router advertisements
for ordinary nodes.
ahcpd’s status to standard output or to the log file.
- Check all interfaces
for status changes, then reopen the log file.
The AHCP server should use NTP to synchronise its clock.
If a server instance of ahcpd doesn’t detect time synchronisation, it will
only give out leases for a short period of time, and be extremely conservative
about releasing them. Note that an SNTP client is not enough [em] ahcpd
actually checks with the kernel for time synchronisation, so real NTP is
The Ad-Hoc Configuration Protocol.
Table of Contents