Router Advertisment DNS (radns)

radns is a free, small, portable IPv6 Router Advertisment client written in C. It was originally written in 2008 to handle the RDNSS option as defined in RFC 5006 and later updated to RFC 6106.

FreeBSD is the development platform but it runs equally well under Linux and many other common Unix system.

What Does it Do?

The program is meant to run on client machines in your IPv6 network. It is used to get the address to a resolving DNS server and possibly a domain search list to use when the resolver is given a not yet fully qualified domain name.

radns listens for Router Advertisements with the Recursive DNS Server (RDNSS) and the DNS Search List (DNSSL) options and stores the domain search list and the addresses to the DNS servers in a file following the same syntax as resolv.conf(5). It optionally calls a script to handle, for instance, DHCP clients that compete for ownership of /etc/resolv.conf or to set the DNS server address on systems that don't use resolv.conf at all.


Michael Cardell Widerkrantz.

Contact information.



Note that the latest and greatest in features is in the Git repository mentioned above.

FreeBSD Port

radns is available in the FreeBSD ports systems as dns/radns.

Please note that from FreeBSD 9.x the standard rtsold can also be used in a similar manner.

Debian Package

A preliminary tarball of the necessary files to build a Debian GNU/Linux package is here: radns-20110809-deb-src.tar.bz2

Official Releases

Here are the distributions proper. Newest distribution first:

radns-20110809-2.tar.bz2. Feb 22, 2012. Changed type names because of clash with names in system include files in FreeBSD 9.0.

radns-20110809.tar.bz2. Aug 9, 2011. No code changes. Updated documentation and packaging for FreeBSD port.

radns-20110615.tar.bz2. Jun 15, 2011. DNSSL support. May be RFC 6106 compliant. Rewritten memory handling.

radns-20110218-2.tar.bz2. Feb 18, 2011. Bug fixes and porting.

radns-20101227-3.tar.bz2. Dec 27, 2010, while sitting at the 27c3 conference in Berlin. Important bug fixes.

radns-20100531-2.tar.bz2. May 31, 2010. Now creates pid file. Includes man-page and FreeBSD start script. Hook script for dhclient and script for resolvconf that was accidentally left out of earlier distributions now included.

radns-0.9-ttl3.tar.gz Mar 20, 2010. Experimental version from my feature branch for time to live handling. NB! Some Linux distributions need _GNU_SOURCE defined to compile.

radns-0.9rc4.tar.gz 11kiB Feb 26, 2010. Release candidate for 0.9. Doesn't include TTL above.

radns-0.8.tar.gz 7.4kiB Sep 29, 2008.

radns-0.7.tar.gz 7.3kiB Sep 29, 2008.

radns-0.6.tar.gz 7.1kiB Aug 10, 2008.

radns-0.5.tar.gz 6.9kiB Jul 10, 2008.


radns began to solve a specific problem at my employer at the time. The original version followed the experimental RFC 5006 and was written in a morning in April, 2008, while waiting for OpenOffice to compile. My employer later allowed me to release it to the world. Since then, I have developed radns in my free time.

In 2011 I got a stipend by the .SE Foundation and continued to develop radns to cover RFC 6106. I wrote a report on the project: RFC 6106-stöd i Router Advertisment-klienten radns (Swedish).

Other Projects

There is a similar project, rdnssd, which is now part of the ndisc6 distribution.

I didn't know about rdnssd when I started my own project. However, I like to think that having two similar projects that doesn't share any code and different implementations might have helped RFC 5006 to be reworked and accepted on the standards track as RFC 6106. See the discussion thread in the IETF v6ops WG starting here:

When the RFC 6106 was published there was a frenzy of hacking and suddenly many projects started supporting the RDNSS and DNSSL options including FreeBSD's standard rtsold beginning from FreeBSD 9.x.

rdnssd-win32 is a similar program for the Windows platform.

Last updated: <2024-05-14 09:13:29 MEST>