IPv6 Router Discovery and SLAAC Daemon
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.gitattributes
.gitignore
AUTHORS
COPYING
Makefile
NEWS
README
README.Debian
SECURITY
blockhash.hpp
hmac.hpp
rdisc.cpp
rdisc.hpp
rdiscd-keygen
rdiscd-keygen.8
rdiscd-mkaddress.cpp
rdiscd.8
rdiscd.cpp
rdiscd.if-post-down
rdiscd.if-pre-up
rdiscmon.8
rdiscmon.cpp
rfc7217.cpp
rfc7217.hpp
sha256.cpp
sha256.hpp
util.cpp
util.hpp

README

rdiscd - IPv6 Router Discovery and SLAAC Daemon
===============================================

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").

For more information, see <https://www.agwa.name/projects/rdiscd>.


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

The current version of rdiscd is 0.6, released on 2017-04-16.  rdiscd aims
to be bug-free and reliable, meaning it shouldn't crash or malfunction.
In fact, it is used in production on several servers, desktops, and laptops.
However, it has not yet reached maturity, meaning it is not as polished or
featureful as it should be.  It contains basic support for autoconfiguring
addresses and the default gateway, but does not yet support route or
DNS server advertisements.


PROJECT RESOURCES

Home page:	https://agwa.name/projects/rdiscd
Git repository:	https://agwa.name/git/rdiscd.git
		https://github.com/AGWA/rdiscd.git (mirror)
GitHub project:	https://github.com/AGWA/rdiscd
Issue tracker:	https://github.com/AGWA/rdiscd/issues
Announce list:	https://lists.cloudmutt.com/mailman/listinfo/rdiscd-announce
Discuss list:	https://lists.cloudmutt.com/mailman/listinfo/rdiscd-discuss

For help or questions, send mail to the discuss list
<rdiscd-discuss@lists.cloudmutt.com>.  To report a bug or make a feature
request, please open an issue at GitHub or send mail to the discuss list.
To contribute code, please send a properly-formatted patch to the discuss
list, or open a pull request at GitHub.


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 written by Andrew Ayer <agwa at andrewayer dot name>.

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.