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.
|Specify the link-local multicast address to be used by AHCP. The default is ff02::cca6:c0f9:e182:5359.|
|-p port||Specify the UDP port number to be used by AHCP. The default is 5359.|
|-n||Operate as a forwarder: participate in the flooding protocol, but don’t actually perform any configuration.|
|-4||Only attempt to configure IPv4 addresses.|
|-6||Only attempt to configure IPv6 addresses.|
|-N||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.|
|Specify the configuration script to run. The default is /etc/ahcp/ahcp-config.sh.|
|Set the debug level to level (default 1).|
|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.|
|Specify the name of the configuration file.|
|Specify a configuration statement directly on the command line.|
|-D||Daemonise at startup.|
|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.|
|Specify a file to write our process id to. The default is /var/run/ahcpd.pid.|
CONFIGURATION FILE FORMAT
The configuration 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.
The following keywords are recognised:
|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.|
|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.|
|Specifies a directory to store lease files. This keyword is only valid in server configurations.|
|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.|
|Specifies 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 MAC address.|
|The script that performs the actual configuration. It will be passed one argument, which is either start or stop.|
|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.|
|Print ahcpd’s status to standard output or to the log file.|
|Check all interfaces for status changes, then reopen the log file.|
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.
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 necessary.