MikO MikO

by Michael Ochmann

Fehlendes DNS-Loopback ausgleichen

by Michael Ochmann am 12. August 2016

Kunden von Internet-Service-Providern (ISPs) wie Kabel Deutschland (Vodafone) und der Deutschen Telekom, welche deren hauseigene Router/Modem Kombinationen nutzen und einen Server (NAS, Webserver oder Cloud) zu Hause aufsetzen möchten, stoßen auf kurz oder lang auf ein Problem:

Weder die Geräte der Telekom noch die von Kabel Deutschland ermöglichen dem Kunden, das sogenannte “DNS-Loopback” einzuschalten.

Wer jetzt seinem Heimserver eine Domain (z.B. DynDNS) verpassen will, der kann dies zwar für Zugriffe aus dem Internet tun, wird seinen Server allerdings aus seinem lokalen Netz nicht über diese Domain erreichen.

Die Lösung

Ich habe bei meinem Mediacenter, welches ich mit einem Raspberry Pi realisiert habe, als Kunde von Kabel Deutschland genau dieses Problem. Jetzt könnte ich selbstverständlich folgenden Eintrag in der Datei /etc/hosts vornehmen:

bash domain.tld 192.168.0.5

Dann finde ich meinen Server auch im lokalen Netz unter meiner Domain. Das heißt, “auch” ist das falsche Wort. Ich finde ihn nur noch im lokalen Netz, wenn ich ihn von Außerhalb darunter erreichen will, muss ich ständig diesen Eintrag anpassen, also keine gute Lösung.

Der beste Lösungsansatz, den ich gefunden habe, ist auf dem Pi einen Domain-Name-Service (DNS) Server zu installieren, und dort den Eintrag für Lokal vorzunehmen. Hierzu installiere ich einige Softwarepakete auf meinem Pi:

bash sudo apt-get install bind9 dnsutils

Nach der Installation muss im Verzeichnis /etc/bind/ dann die Zonendatei für die gewählte Domain angelegt werden. Für dieses Beispiel wählen wir die Domain server.example.com. Okay, in oben genanntem Verzeichnis erstellen wir die Datei db.server.example.com mit folgendem Inhalt:

;; db.server.example.com
;; Forwardlookupzone für domainname
;;
$TTL 2D
@		IN		SOA		server.example.com. mail.server.example.com. (
                        2006032201		; Serial
                                8H		; Refresh
                                2H		; Retry
                                4W		; Expire
                                3H )	; NX (TTL Negativ Cache)
@                               IN		NS		server.example.com.
                                IN		MX		10 mail.server.example.com.
                                IN		A		192.168.0.9
mikobox				IN		A		192.168.0.9
localhost			IN		A		127.0.0.1
mailserver			IN		A		192.168.0.9

Jetzt muss die neue Zone lediglich noch in der Datei /etc/bind/named.conf bekannt gemacht werden. Dazu einfach ans Ende der Datei folgenden Block hinzufügen:

zone "db.server.example.com" {
    type master;
    file "/etc/bind/db.server.example.com";
};

Im Anschluss muss der Service noch mit sudo service bind9 neugestartet werden, und das wars. Wenn man Glück hat, kann man den DNS direkt im Router eintragen, bei Kabel Deutschland ist es jedoch notwendig, ihn manuell auf jedem einzelnen Rechner in die entsprechende Netzwerkverbindung einzutragen.

Testen

Führt man nun im lokalen Netzwerk vom Client-Rechner den Befehl dig server.example.com aus, sollte die Antwort so ähnlich aussehen:

;; ANSWER SECTION:
server.example.com.	172800	IN	A	192.168.0.5

Ist das der Fall, hat alles funktioniert. Herzlichen Glückwunsch, ihr habt die Schurken überlistet.

zurück