ttdnsd accepts DNS requests via UDP and forwards the to a resolving
nameserver via TCP. The actual requests are really just forwarded so
one has complete access to the nameserver ttdnsd is talking to.

It's not a very complicated process. If there are no problems with the
setup it could go as smoothly as connecting to the 'net using a mobile
broadband dongle.

ttdnsd only connects to the resolving nameserver after receiving
a request via UDP. For each connection ttdnsd randomly selects one
of the nameservers it knows about. The connection will be used for
forwarding multiple requests in a pipelined fashion and is kept open
only until no more requests are received via UDP. This pipelining is
required to overcome the initial connection overhead time which is
quite long when using Tor.

To run this service at system startup, edit your rc.local and add this
code:

if [ -x /etc/rc.d/rc.ttdsnd ]; then
  /etc/rc.d/rc.ttdsnd start
fi

...after the similar code used to start the Tor service. To stop the
service add this to your rc.local_shutdown:

if [ -x /etc/rc.d/rc.ttdsnd ]; then
  /etc/rc.d/rc.ttdsnd stop
fi

...before the Tor shutdown routines. Remember that this package acts
like a DNS resolver so it listens by default on port 53. If you're
going to run another DNS server like bind either as a cache to this
server or in parallel, remember to modify ttdnsd default port or it
will not start.
