I have a little more detail on this problem. The problem doesn't seem to be tinydns itself, but rather dnscache.
This is on nanobsd 1.2.3RC2, the build from August 18. In order to get dnscache to work at all, I had to manually create the file /var/etc/resolver.conf.dnscache. Otherwise I would get PHP error messages when trying to save the configuration, saying that file doesn't exist. It contains the IP addresses of the two public nameservers I use, and also the loopback address, which is where tinydns is listening.
Tinydns is the SOA for my internal domain, lan. There are two A records, one for the router itself, router.lan at 192.168.1.1, and one for another host, server.lan at 192.168.1.3. There are PTR records for these hosts. The SOA is 127.0.0.1, but I've also tried 192.168.1.1.
Tinydns is listening on 127.0.0.1. The "Enable DNS Forwarder" checkbox is selected. The clients have the router's address in their list of DNS servers.
After rebooting the router, this works, at first. I get the right answers to 'host *.lan' and 'host 192.168.1.*' on the clients. But a variable amount of time later, it stops working. The names and addresses are no longer resolvable. But on the router itself, I still get the right answers; for example,
router:~# host server.lan localhost
Using domain server:
server.lan has address 192.168.1.3
So tinydns is still working.
While this is going on, multiple redundant processes are being spawned. I end up with something like this:
router:~# ps -ax | grep dns
3345 ?? I 0:00.83 supervise tinydns
23443 ?? I 0:00.79 supervise tinydns
23445 ?? I 0:00.01 supervise dnscache
24055 ?? I 0:00.13 /usr/local/bin/tinydns
24075 ?? I 0:00.32 /usr/local/bin/dnscache
24137 ?? I 0:00.77 supervise tinydns
24139 ?? I 0:00.52 supervise dnscache
33670 ?? I 0:00.03 /usr/local/bin/dnscache
36884 ?? I 0:00.02 /usr/local/bin/tinydns
37108 ?? I 0:00.02 /usr/local/bin/tinydns
51258 ?? I 0:00.75 supervise tinydns
51263 ?? I 0:00.52 supervise dnscache
60120 ?? I 0:00.03 /usr/local/bin/dnscache
63721 ?? I 0:00.02 /usr/local/bin/tinydns
49849 p1 S+ 0:00.01 grep dns
Rebooting always fixes it, but only for a short time.