Bind is the de-facto standard DNS server with PowerDns being a faster alternative.
I have a Linux-based mips box with 15Mb of RAM available.

I've seen several types of caching server software. I only need a master DNS server, which supports SOA; zone transfers; and ipv6. RAM based caching should not exist or can be disabled.

Does someone know a good one for those kind of embedded environments?

  • In short, I want the same things like usual servers like powerdns and bind provide, but I want it to run on my system. Any ideas? – user2284570 May 25 '14 at 19:02
  • 6
    Have you looked at Dnsmasq? It's what OpenWRT and co use, on routers with typically 8MB or 16MB of RAM. I know it supports IPv6 but I don't know about your other requirements. – Gilles 'SO- stop being evil' May 25 '14 at 19:02
  • Have you seen this? maradns.samiam.org/summary.html – dodgy_coder May 26 '14 at 5:34
  • @dodgy_coder : It use too much RAM : I need a single process based authoritative nameserver, with full support for zone transfers and IPV6. I don't want any RAM based caching (I also don't need TCP, but it's OK to include it). – user2284570 Jul 3 '14 at 12:39
  • @Gilles : Ok it appear things changed, but I am unable to find how to configure dnsmasq to do it. – user2284570 May 14 '15 at 11:30

djbdns with Felix von Leitner's IPv6 patch will work for your requirements on GNU/Linux.

You run the authoritative nameserver from DJB dæmontools, which takes care of the UDP/53 side of things. The zone file format is plaintext, but compiled into a “const” database. The SOA serial number can be set freely and defaults to the mtime of the database. You can easily manage and compile the database on your PC/laptop and rsync it to the tiny box.

The axfrdns utility, part of djbdns, is run from inetd (in my own setup) or dæmontools/ucspi-tcp, and takes care of the TCP/53 side. It allows BIND, PowerDNS and other clients to do AXFR (and, with Fefe's patch, IXFR) transfers from the zones.

If you have a secondary server running djbdns, it's much easier to just rsync the compiled zone file to it (take care to use rsync options that ensure the mtime is the same, such as -a) instead of doing AXFR.

DJBDNS is extremely memory efficient: on my MirBSD/i386 system, the nameserver with eight zones takes up only 236K RAM (while being statically linked; you can do static or dynamic, possibly with dietlibc), and a fully recursive DNS cache comes in at just under 2 MiB. The overhead for dæmontools and logging is in the same range. Only AXFR requests cause a new process to be spawned temporarily; the authoritative nameserver is one single long-running executable.

| improve this answer | |
  • Several daemons process=waste of memory. – user2284570 May 30 '14 at 17:37
  • Ok... looks like I'll need to recompile BusyBox for inetd support. That's not a single authoritative nameserver. – user2284570 May 30 '14 at 17:40
  • You can do it without inetd too, e.g. with DJB's ucspi-tcp. But yes, it's a single authoritative nameserver (nameservers only operate on UDP) plus a separate component to do AXFR (which uses TCP). – mirabilos May 30 '14 at 17:52
  • It won't work with dns.he.net – user2284570 May 30 '14 at 18:03
  • I only have a dynamic ipv4. So when I set up zone I can give a static ipv6 record to the nameserver and publish the ipv4 from there. – user2284570 May 30 '14 at 21:45

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.