DNS Discovery Daemon (DDD)

DNS Discovery Daemon (DDD) is a daemon that finds out what IPv6 DNS servers are available on a given network. This is useful particularly in networks that are running only IPv6, and no IPv4 at all. Dual stack networks can normally operate with DNS server addressed assigned from DHCPv4, as such a server can deliver the addresses of both IPv4 and IPv6 domain names. However, on an IPv6-only network DHCPv4 is not available. DDD uses Router Advertisement options and DHCPv6 to find the DNS servers.

The main features of DDD are:

DDD comes from Ericsson Research and the implementation team was Jari Arkko, Tero Kauppinen, Ari Keränen, and Veera Andersson. DDD is open source under the Apache 2.0 license.

What Can I Use DDD For?

DDD can be used in various ways. We use it on our Linux computers as the daemon that tracks DNS servers. We have been running IPv6-only networks for over a year, and there have been serious problems with the Linux network manager and other pieces of software in their ability to configure DNS server information in IPv6-only networks. DDD is designed to address those problems.

There is also an Android version of this software. Currently we only have a hack version of this, you'll need to replace your dhcpcd binary with our version that includes DDD. This version allows you to attach your phone to IPv6-only networks on its Wi-Fi interface. We would like to make this a part of the operating system, but full support for IPv6-only networking requires also some small changes to the Android's Java-based network manager. Those changes are in the plans but not complete yet. In any case, even the current hack version should be interesting to test. As far as we know, it should not affect behavior on IPv4-based or dual-stack networks.

Finally, you can use DDD as a component in your phone, sensor router or server product. It can act as a stateless DHCPv6 client or server, for instance.

How Stable Is DDD?

The retrieval of DNS information from router advertisements and stateless DHCP works well, and this code has existed for almost a year. This code is high quality and stable.

The Linux daemon is a small enhancement of the base code, but does need more testing in different environments and situations. We think of this part as being in Alpha testing. The DHCP server code is new and may have issues. We think of this part as being in pre-Alpha testing.

Note: The software is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. Use it at your own risk.

Where Can I Get It?

The source code is available at Source Forge at http://ddd6.sourceforge.net/. The source code is managed using SVN. Use the following command to check out the code base:

To compile the Linux daemon version, use make -f Linux_resolv.mk. For the other versions, use make -f Linux.mk.

A compiled version of the dhcpcd binary for Nexus One Android phones, Android 2.2.1 version is available at http://www.arkko.com/ddd/dhcpcd. To use this file, root your phone, take a backup of the system dhcpcd binary, and replace the binary with the one that we provide. NOTE: DO THIS AT YOUR OWN RISK! THESE ACTIONS MAY BRICK YOUR PHONE, I.E. RENDER THE PHONE PERMANENTLY UNUSABLE.

Last modified: Thu Jun 9 00:10:03 EEST 2011