Penguin
Blame: BindVsTinyDNS
EditPageHistoryDiffInfoLikePages
Annotated edit history of BindVsTinyDNS version 31, including all changes. View license author blame.
Rev Author # Line
23 ChristopherChan 1 [BIND] is the caching, authoritative [DNS] server that is responsible for about 90% of the Internet's [DNS] system, or more. A number of people dislike [BIND] however, and are major fans of DanBernstein's TinyDNS.
2
27 DanielLawson 3 This page will be a comparison of the two DNS servers. As with most comparisons, it wont be fair or unbiased.
23 ChristopherChan 4
27 DanielLawson 5 These points were originally pulled from Brad Knowle's paper on [Name Server Comparison|http://www.shub-internet.org/brad/papers/dnscomparison/DNSComp.pdf.bz2]. This paper was focussed on performance of an authoritative or caching nameserver, but discusses the differences in the servers as well. Since then DJB has put up a page refuting many of Brad Knowles's claims, entitled [Brad Knowles's Slander|http://cr.yp.to/djbdns/knowles.html]. Sifting through the facts is hard, and there is no real 'definitive' answer as to which is the best DNS server - that's entirely dependant on the site.
29 RichardLe 6
7 (__Visitor's note:__ It is unfortunate that many of the statements presented below as cons for djbdns are provably incorrect. I run dnscache and tinydns on the same server and through the same IP at home, for example. dnscache is blindingly fast once an address has been resolved from the Internet. And, as far as I know, neither app violates the RFCs. I really think the writer should have taken more care to provide an objective comparison. I realise this article dates from 2005 but Dan Bernstein highlighted many years ago exploitable holes in BIND which have suddenly (in 2008) become big news but which do not arise with his DNS apps. Saying at the beginning that this comparison "...won't be fair or unbiased" is a total cop-out and should be taken by readers to mean that they should discount the analysis completely since it explicitly makes no attempt at objectivity. It is simply a repetition of known untruths to knock an excellent product. I don't know anything about wlug, but I don't think it does you any favours as an organisation.)
23 ChristopherChan 8
27 DanielLawson 9 ! Bind 8
10 Pros:
23 ChristopherChan 11 * Full recursive/caching and authoritative name server implementation
12 * Recursive/caching and authoritative services can share IP addresses
13 * Faster than Bind 9
14 * Wide OS Support
15 * statistics split by resource record type
31 AristotlePagaltzis 16 * [IPv6] Support
27 DanielLawson 17
23 ChristopherChan 18 Cons:
19 * Based on Legacy (spaghetti) code
20 * Single-threaded
21 * Zone transfers handled externally (fork()/exec())
22 * Near End of Life
23 * no statistics for SERVFAIL
27 DanielLawson 24 * uses way too much cpu for subsequent SERVFAILs (possibly anecdotal)
23 ChristopherChan 25
27 DanielLawson 26 ! Bind 9
23 ChristopherChan 27 Pros:
28 * Full recursive/caching and authoritative name server implementation
29 * Recursive/caching and authoritative services can share IP addresses
30 * Ground-up rewrite, secure
31 * DNS Security - DNSSEC, TSIG
32 * [IPv6] support
33 * Multi-threaded, multi-proc aware
34 * DNS Protocol enhancements - IXFR, DDNS, Notify, EDNS0
35 * Standards conformant
36 * Split DNS / Views
37 * highly portable
38 * Internal Zone Transfer mech
39 * Drops privilidges, chroot()
40 * statistics for SERVFAIL
41 * caches SERVFAILs
42
43 Cons:
27 DanielLawson 44 * Unusably slow with only several hundred recursive clients (possibly anecdotal)
45 * Seems to run into problems maintaining cache database after a while and over 250mb cached data (possibly anecdotal)
46 * Statistics not split by resource record type
47 * More context switches due to threading compared to bind8 at same recursive workload - only applies if you run it in threaded mode. The default is one thread.
23 ChristopherChan 48
49 ! djbdns (TinyDNS / DnsCache)
27 DanielLawson 50
51 The author of the original paper didn't have any positive points about djb's DNS suite, although they are widly publicised elsewhere. Some of the more salient, positive points regarding TinyDNS include:
52
53 Pros:
54 * Single data file manages all zones. This makes management of zones very easy.
55 * Zone file format is claimed to be more streamlined than bind.
56 * Adheres to 'The Unix Way' - lots of small processes doing small tasks, rather than a large monolithic approach
57 * Use of cdb format data file allows use of quicker, push mechanism for zone transfer - rsync over ssh.
58 * Written with security in mind from the outset.
59 * Very easy split-horizon dns setup for dnscache
60 * Written to pre ANSI-C specifications and therefore compiles on most if not any Unix platform.
61 * cdb data file is non-platform specific and thus the binary cdb file can be copied across to any OS platform and be used without any problems. (cdb, like djbdns, is non-[Free] software, meaning that free linux distributions cannot package it since they are not allowed to modify it.)
23 ChristopherChan 62
63 Cons:
64 * Violates RFCs
65 * Doesn't provide referrals by default
25 ChristopherChan 66 * TinyDNS Doesn't support TCP by default (available with included axfrdns which supports both authoritative queries and zone transfers). DNSCache does.
23 ChristopherChan 67 * Truncates responses illegally
68 * Provides strange responses to query types it doesn't support (Violates the "Be liberal in what you accept, conservative in what you generate" principle)
69 * Without a third-party patch, cant listen on more than one IP address
24 DanielLawson 70 * Cannot put both TinyDns and DnsCache on the same IP as they both listen on port 53 UDP. See [DNSBestPractices]
23 ChristopherChan 71 * Does not, and author's code will not, support - DNSSEC, TSIG, IXFR, NOTIFY, EDNS0, IPv6
72 * Design is focussed on "fixing" security issues in Bind-8 and earlier - Bind 9 fixes these anyway
26 JohnMcPherson 73 * Seems to consistently drop a small percentage of queries (Knowles's report)
74 * No good conversion tools from Bind (might be now, needs checking)
75 * Slow. Anecdotal reports of high speed unproven. Testing by the author of this paper shows low performance (Knowle's report)
23 ChristopherChan 76
77
27 DanielLawson 78 Comparison of caching resolvers:
23 ChristopherChan 79
28 TonyFinch 80 * BIND is claimed to be less efficient than dnscache as a caching DNS server, and may drop more requests as a default. BIND's default cache is limited by the TTL of its entries however, whereas dnscache only has 1MB by default.
27 DanielLawson 81 * BIND will not send out duplicate queries, and is less likely to be treated as an abusive DNS server, whereas dnscache does not limit outgoing queries if the answer hasn't been cached yet.
82 * dnscache is not multithreaded, so will not make use of more than one CPU. BIND is multithreaded, but this seems to be problematic in some cases.
83 * In terms of performance, dnscache seems to beat BIND at high loads.
84 * BIND will return results quicker in some cases, due to less extensive checking than dnscache. For example, Akamai has some really obnoxious dns entries for its worldwide load-balancing service which is used by yahoo.com. Try a dig www.yahoo.com @bindip and a dig www.yahoo.com @dnscacheip. dnscache takes a while before you get an answer.
24 DanielLawson 85 * A lot of people cite the file format as big feature. That is, they find tinydns's file format much easier to understand than BIND's. One person likened BIND's file format to a 'programming language' - I wonder if they were confusing it with sendmail?

PHP Warning

lib/blame.php:177: Warning: Invalid argument supplied for foreach() (...repeated 5 times)