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.