12

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?

5
  • 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? Commented May 25, 2014 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. Commented May 25, 2014 at 19:02
  • Have you seen this? maradns.samiam.org/summary.html Commented May 26, 2014 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). Commented Jul 3, 2014 at 12:39
  • @Gilles : Ok it appear things changed, but I am unable to find how to configure dnsmasq to do it. Commented May 14, 2015 at 11:30

1 Answer 1

4

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.

6
  • Several daemons process=waste of memory. Commented May 30, 2014 at 17:37
  • Ok... looks like I'll need to recompile BusyBox for inetd support. That's not a single authoritative nameserver. Commented May 30, 2014 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
    Commented May 30, 2014 at 17:52
  • It won't work with dns.he.net Commented May 30, 2014 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. Commented May 30, 2014 at 21:45

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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