rdiscd - IPv6 Router Discovery and SLAAC Daemon

February 28, 2021 ยท View on GitHub

rdiscd is a daemon for performing IPv6 router discovery and stateless address autoconfiguration (SLAAC) in userspace. It provides greater flexibility and more functionality than the kernel's implementation. For example, rdiscd supports static interface IDs, where the advertised prefix is combined with a static suffix to form a complete address. It also supports RFC 7217 for generating semantically opaque interface IDs (aka "stable privacy addresses").

DEPENDENCIES

libndp v1.2 or higher http://libndp.org/

To build rdiscd, you need:

  • GNU Make
  • A C++ compiler supporting C++11 (e.g. GCC 4.7 or higher)
  • Development files for libndp

BUILDING RDISCD

Run 'make' and 'make install'.

The following Makefile variables can be passed on the command line to 'make' and 'make install':

PREFIX=/path	Install to given path (default: /usr/local)

ENABLE_MAN=yes|no
		Whether to build/install the man page (default: yes)

ENABLE_IFUPDOWN=yes|no
		Whether to install ifupdown hooks (default: no)

DESTDIR=/path	Stage installed files under the given path
		instead of installing directly to the filesystem
		(intended for package building)

Example: make PREFIX=/usr make install PREFIX=/usr DESTDIR=/tmp/pkgroot

CURRENT STATUS

As of 2021, rdiscd is no longer maintained. The code contains basic support for autoconfiguring addresses and the default gateway, but does not support route or DNS server advertisements. The code does not contain any known bugs and worked reliably for many years. However, the author no longer uses it and provides no support for it.

DEBIAN PACKAGING

See README.Debian for instructions on building the Debian package, which integrates nicely with /etc/network/interfaces.

DOCUMENTATION

See the rdiscd(8) man page (rdiscd.8 in this repo).

CREDITS

rdiscd was originally written by Andrew Ayer .

rdiscd is inspired by the userspace SLAAC implementation in NetworkManager, and some code is based on the code found therein.

rdiscd contains a SHA-256 implementation by Colin Percival.

rdiscd would not be possible without libndp, by Jiri Pirko.

LEGALESE

Copyright (C) 2014 Andrew Ayer

Licensed predominantly under the GPLv3. Also contains code licensed under more permissive GPL-compatible licenses.

rdiscd is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

See COPYING for details.