The Totd DNS proxy is available both in source and binary form. Its binary distributions include NetBSD packages, FreeBSD ports, Debian Linux packages and a Redhat Linux RPM. Searching the Web for “DNS proxy totd” will provide you with links to most of these. Installing the binary distributions of totd is operating system specific and is not described here further. A totd binary can easily be produced on many Unix-like systems by compilation from source. The source is available from the 6NET project site but also directly from the author’s ftp site at:
ftp://ftp.dillema.net/pub/users/feico/totd-latest.tar.gz
The md5 hashes of the current totd source distributions are:
MD5 (totd-1.2.tar.gz) = 4e682bb293c771a2f6ffc30aded20e0e
MD5 (totd-1.3-1.src.rpm) = ab16e70c4d5ca2df0ac014ef53885133
MD5 (totd-1.3.tar.gz) = bc6b85a5bddb72fc3fb20fa9fe50d3a0
MD5 (totd-1.4.tar.gz) = f732aaad9b9507cd9985224fc40f5bab
MD5 (totd-1.5.tar.gz) = b7da63fc1ea1b2e2ce959732826bc146
After unpacking the sources in any directory on the totd server, it can be configured and compiled by issuing the following commands. Preferably, compilation is done as an unprivileged user.
# ./configure --prefix=/usr/local
# make depend
# make
Then, as root, totd may be installed with the command:
# make install
The configuration file /usr/local/etc/totd.conf has to be edited to include the following lines:
forwarder 2001:db8:10:100:201:2ff:feb5:3806
prefix fec0:0:0:ffff::
port 53
Explanation of the lines above:
• forwarder:
With this keyword you specify an IP address (either IPv4 or IPv6) of a nameserver for totd to forward its queries to. At least one forwarder needs to be specified in order for totd to have non-trivial behaviour.
• prefix:
Specifies a 64 bit IPv6 address prefix to use for the ‘address translation trick’ described in more detail in Section 5.3.7. Prefix(es) can also be specified on the command line (or even using http if the optional web server is compiled into totd, see below).
• totuser:
The port totd listens on for incoming requests. Normally port 53 which is the default.
By default, totd will listen on wildcard sockets for incoming requests and as such will accept requests from everywhere. It is possible to let totd only accept requests from certain network interfaces (not supported on Linux). For example, to let totd only accept requests from the loopback interface, add the
following line to the totd.conf:
interfaces lo0
If you want to run totd on a privileged port, e.g. the default port 53, you either have to run totd as root or start as root but let it switch to another user and group after it has opened the sockets its needs. In the former case, totd is able to rescan the interface list and deal with interface and address changes on the fly. In the latter case, totd will not be able to rescan interfaces and react to such changes but needs to be restarted to handle such changes.
If totd is started using the -u and -g arguments, it will (try to) switch to the given user and group and drop all other (root) privileges. For example, totd can be started as root using:
# totd -u totuser -g totuser
