unbound ist ein rekursiver caching DNS Resolver. Es ist im Linuxbereich “state-of-the-art” um entweder ein Public DNS Resolver zu betreiben, oder um es als internen DNS-Resolver für die eigene Server zu verwenden um unabhängig vom Provider Domainnamen aufzulösen.
Es wurde in C geschrieben und ist vor allem stabil, schnell und einfach in der Benutzung. Es unterstützt u.a. folgende Features:
- Plugin für Munin
- eigene Lokale Zonen verwalten
- unterstüzt “prefetching” (ähnlich wie beim Google-DNS, d.h. bevor der TTL eines Records ausläuft, wird dieser im Hintergrund vom Deamon abgefragt, damit der Client keine Wartezeit mehr hat)
Da unbound sehr am Anfang der Entwicklung steht, und sich im DNS Bereich (gerade wegen DNSSEC oder sonstige Sicherheitsfunktionen) momentan einiges tut, ist es sehr zu empfehlen unbound lieber selber zu kompilieren, anstatt sich auf die Debian / Ubuntu Repositories zu verlassen.
1) Benötigte Pakete installieren
# apt-get install make gcc libssl-dev libevent-dev libexpat1-dev libldns-dev
2) Kompilieren
# cd /usr/src # wget http://www.unbound.net/downloads/unbound-1.4.16.tar.gz # tar xvfz unbound-1.4.16.tar.gz # cd unbound-1.4.16 # ./configure \ --prefix=/usr \ --sysconfdir=/etc \ --localstatedir=/var \ --with-conf-file=/etc/unbound/unbound.conf \ --with-libevent \ --with-ldns \ --with-ssl (optional, wenn OpenSSL Version # make && make install
3) Konfiguration
# nano /etc/unbound/unbound.conf server: verbosity: 0 # don't thread num-threads: 1 interface: 127.0.0.1 interface: 192.168.2.1 do-ip4: yes do-ip6: yes do-udp: yes do-tcp: yes do-daemonize: yes access-control: 192.168.2.0/24 allow pidfile: "/var/run/unbound.pid" username: nobody # file to read root hints from. # get one from ftp://FTP.INTERNIC.NET/domain/named.cache root-hints: "/etc/unbound/named.cache" hide-identity: yes hide-version: yes # optimisations for high traffic (ist für 1GB RAM Auslegung optimiert, entsprechend anpassen) rrset-cache-size: 512m msg-cache-size: 256m outgoing-range: 8192 num-queries-per-thread: 4096 so-rcvbuf: 4m so-sndbuf: 4m # optimisations for client speed (google-dns wannabe) prefetch: yes prefetch-key: yes # Harden against very small EDNS buffer sizes. harden-short-bufsize: yes # Harden against unseemly large queries. harden-large-queries: yes # Harden against out of zone rrsets, to avoid spoofing attempts. harden-glue: yes # A suggested value is 10000000, the default is 0 (turned off). unwanted-reply-threshold: 10000000
4) Starten
# unbound
