ahcpd
ahcpd copied to clipboard
The Ad-Hoc Configuration Protocol daemon
Ahcpd
Ahcpd is a daemon for configuring an IPv6 network using the Ad-Hoc Configuration Protocol (AHCP). AHCP is designed for wireless mesh networks, where DHCP and IPv6 autoconfiguration do not work, but could in principle also be used on wired networks.
Installation
$ make
# make install
If compiling for BSD, you probably don't need to link with -lrt:
$ make LDLIBS=''
If compiling for OpenWRT, you will probably want to say something like
$ make CC=mipsel-linux-gcc PLATFORM_DEFINES='-march=mips32'
You can reduce the size of the ahcpd binary by omitting server functionality; to do so, specify
$ make EXTRA_DEFINES=-DNO_SERVER
Setting up a server
You need to set up one or more authoritative servers in your network. The server should be run as
$ ahcpd -c /etc/ahcpd.conf wlan0
where the configuration file /etc/ahcpd.conf should say something like
mode server
prefix fde6:20f5:c9ac:358::/64
prefix 192.168.4.128/25
lease-dir /var/lib/leases
name-server fde6:20f5:c9ac:358::1
name-server 192.168.4.1
ntp-server 192.168.4.2
If you want ahcpd to fork into the background, pass it the ``-D'' flag. The server does not need to run ahcpd as root, as long as it can write the lease database and the pidfile.
The server should synchronise its clock using NTP. If ahcpd doesn't detect time synchronisation, it will only give out leases for short periods of time, and will be extremely conservative about releasing them. Note that ahcpd actually checks with the kernel for time synchronisation, so most SNTP clients will not do; you will most probably need Mills' implementation of NTP.
For redundancy, you may set up multiple servers in a single network as long as they serve disjoint IPv4 address ranges.
Setting up a client
Unlike the server, the client needs to run ahcpd as root. No configuration file is needed, just run
# ahcpd wlan0
and you should get IPv4 and IPv6 addresses in a few seconds.
--Juliusz Chroboczek