Nästan alla kör BIND från ISC för sin DNS. Så är det bara. Men det finns många nya alternativa namnservrar som är minst lika bra, och som inte lider av det kod-arv som BIND 9 gör. BIND har skrivits om från grunden två gånger i modern tid, först från BIND 4 till BIND 8, och sedan till BIND 9. Ett tredje försök har gjorts under de senaste åren från ISCs sida, nämligen med det havererade BIND 10-projektet. ISC har dock varit väldigt öppna med hur och varför projektet havererade, och det är bara att konstatera att vi kommer att få dras med BIND 9 ett väldigt långt tag framöver.
Men under de senaste åren har ett par riktigt bra alternativ till BIND tagits fram av andra aktörer. Min favorit för auktoritativ DNS är Knot DNS från CZ.NIC. Som också ISC själva säger, framtida DNS-innovation kommer sannolikt att komma från andra aktörer än ISC. Ett av de nuvarande problemen med BIND är att den försöker göra allt. Den är både auktoritativ namnserver, och cacheande resolver, och säkert mycket annat också samtidigt. Knot DNS är “nästan bara” en auktoritativ namnserver. Men i nuvarande versioner har de även lagt till online-signering för DNSSEC, och kommer att i version 1.6 komma närmare OpenDNSSEC vad gäller hanteringen för nyckelsigneringspolicy - något som andra DNS-programvaror saknar helt. Man håller också på att byta från OpenSSL till GnuTLS, dels av kända anledningar, och dels för att GnuTLS har betydligt bättre stöd för PKCS#11, något som krävs om man vill använda HSM:er. Vidare har man även möjlighet att köra sina egna moduler för att utföra dynamisk hantering av DNS-svar, och för IPv6 kan man exempelvis också dynamiskt generera reverse-svaren för IP-adresserna. Se gärna presentationen från RIPE68.
Själv har jag kört Knot DNS ett långt tag på en av mina egna namnservrar. Den är både betydligt enklare att konfigurera, men den har också betydligt bättre prestanda än BIND. Något som jag förvisso inte har något större behov av, eftersom mina domäner inte drar särskilt mycket trafik. Som ett alternativ till Knot DNS finns också självklart NSD 4 från NLNet Labs, som har funnits betydligt längre, och används kanske mest av TLD:er idag - men också Yadifa från EURid.
För att köra en cacheande resolver så kan man med fördel använda Unbound, också från NLNet Labs. Unbound har också givetvis fördelarna med att den är betydligt enklare att konfigurera, och har betydligt högre prestanda än BIND. En cacheande resolver kör man med fördel med DNSSEC påslaget för DNSSEC-validering, så nära de tjänster man har som behöver lita på DNS (det är i princip samtliga internet-tjänster).
Om man känner sig lite osäker på att behöva byta från BIND kan man kanske titta på antalet kända sårbarheter… Och som med alla monokulturer, de är sårbara för breda attacker. Därför är det också bra att börja köra alternativa programvara. Gärna på någon udda CPU-arkitektur, så att inte alla kör Intel.
(Jag har fullständigt medvetet inte skrivit om programvaror som inte är öppen källkod.)