Website-Icon .: blog cscholz.io :.

Debian: bind9 DNS Konfiguration für direkte Root-Server Abfrage

Eine korrekte DNS Konfiguration ist wichtig. Doch immer wieder stößt man auf Probleme bei DNS Anfragen.

So hat postfix auf meine Server extreme Problem mit der reject_invalid_hostname wenn ich die DNS Server meines Providers verwende. Teilweise sind hostname garnicht auflösbar so das die eMails komplett geblockt werden.

Nach einigen Gespräche mit anderen Admins zeichnete sich so langsam ab, das die sicherste Variante immer noch eine direkte Abfrage der DNS Root Server ist. Um nun bind9 für die Abfrage der Root Server zu konfigurieren sind folgende Schritte notwendig:

bind9 als DNS Cache Server

...
allow-query {127.0.0.1;};
allow-recursion {127.0.0.1;};
...
...
include "/etc/bind/named.conf.options";
zone "." {
type hint;
file "/etc/bind/db.root";
};
...
dig @A.ROOT-SERVERS.NET > /etc/bind/db.root
order hosts,bind
nameserver 127.0.0.1
/etc/init.d/bind9 restart

DNS Server prüfen

Um nun zu überprüfen ob die Namensauflösung korrekt funktioniert, können Sie mittels dig versuche über die lokalen Host (evtl. öffentliche Server IP Adresse) einzelne Hostname aufzulösen.

dig 127.0.0.1 google.de
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 16080
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0
;; QUESTION SECTION:
;127.0.0.1. IN A
;; AUTHORITY SECTION:
. 10538 IN SOA a.root-servers.net. nstld.verisign-grs.com. 2007081001 1800 900 604800 86400
;; Query time: 2 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Sat Aug 11 13:58:47 2007
;; MSG SIZE rcvd: 102
; <<>> DiG 9.3.4 <<>> 127.0.0.1 google.de
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 36151
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 4, ADDITIONAL: 4
;; QUESTION SECTION:
;google.de. IN A
;; ANSWER SECTION:
google.de. 1579 IN A 66.249.93.104
google.de. 1579 IN A 72.14.221.104
google.de. 1579 IN A 216.239.59.104
;; AUTHORITY SECTION:
google.de. 345379 IN NS ns1.google.com.
google.de. 345379 IN NS ns2.google.com.
google.de. 345379 IN NS ns3.google.com.
google.de. 345379 IN NS ns4.google.com.
;; ADDITIONAL SECTION:
ns1.google.com. 172546 IN A 216.239.32.10
ns2.google.com. 172546 IN A 216.239.34.10
ns3.google.com. 172546 IN A 216.239.36.10
ns4.google.com. 172546 IN A 216.239.38.10
;; Query time: 1 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Sat Aug 11 13:58:47 2007
;; MSG SIZE rcvd: 221

Dies scheint schonmal zu funktionieren. Wie Sie bemerkt habe, hat die Anfrage ein paar Sekunden gedauert. Wenn Sie den gleichen Hostnamen ernaut auflösen, so geht dies wesentlich schneller da das Ergebniss gecached wird.

Prüfen Sie nun noch, ob auch wirklich keine externen DNS Anfragen möglich sind, denn dies sollten Sie nicht unbedingt zulassen. Öffnen Sie dazu unter Windows die Kommndozeile und stellen Sie direkt eine DNS Anfrage an Ihren Server

nslookup
server <Server-IP>
google.de

Das Ergebniss sollte wie folgt aussehen

*** Der Servername für die Adresse <Server-IP> konnte nicht gefunden werden:
Query refused
Server: UnKnown
Address: <Server-IP>
*** server wurde von UnKnown nicht gefunden: Query refused

Somit ist sichergestellt, dass Ihr Server keine externen DNS Anfragen beatwortet.

Die mobile Version verlassen