[DNS] ist die Abkürzung für Domain Name Server. [DNS] ist eins der Basisprotokolle des Internet, das für die Auflösung von Domain-Namen zuständig ist, also zum Beispiel www.intersult.com.

__Hinweis:__ Aktueller Stand ist die Installation von [Bind|Docker#section-Docker-FullBindDNS] in einem [Docker] Container.

Namensgebung:

* __named:__ Typeische Unix-Bezeichung für Name-D(aemon), da er im Hintergrund läuft.
* __bind:__ Abkürzung für Berkeley Internet Name Daemon.

!!!Konfiguration
!!Zone-Datei
In der Zone-Datei gibt es mehrere Möglichkeiten einen Host zu beschreiben:

||Typ||Erklärung||Beispiel
|IP|Direkte Angabe einer IP-Adresse|127.0.0.1
|Absolute Domain|Absolute Domains werden direkt ab der Root-Zone spezifiziert und enden mit einem Punkt|dns.quad.cy4.
|Relative Domains|Relative Domains werden durch die Zone ergänzt und enden auf einen Zone-Namen|dns.quad
|Eigene Zone|Die eigene Zone kann durch das At-Zeichen referenziert werden.|@

__Hinweis:__ Die Einträge in der Zone-Datei sollten so relativ wie möglich gehalten werden. Veränderungen sind dadurch leichter vorzunehmen und die Gefahr wird reduziert, dass Einträge übersehen werden. Ebenso erleichtert es das Nutzen einer Zone-Datei als Vorlage für eine neue Zone.

Die Typen der Einträge sind:

||Typ||Erklärung
|SOA|Start of Authority, legt den Master Nameserver und die Email-Adresse für diese Zone fest.
|NS|Festlegen des zuständigen Nameservers. Der Name-Server darf kein CNAME-Alias sein, sondern ein A-Eintrag.
|A|Authoritiver Eintrag, also das Festlegen einer IP-Adresse für eine Domain.
|CNAME|Alias für einen Eintrag, also eine Referenz auf einen anderen Eintrag.
|MX|Mail-Server für die Zone. Der Eintrag muss auch direkt auf einen A-Eintrag verweisen.
|PTR|Reverse-Lookup um für eine IP-Adresse einen Domain-Namen zu erhalten.

!!Beispiel
{{{
$TTL 1H
@		IN      SOA             dns.quad postmaster@quad (1 1h 15m 30d 2h)
		IN	NS		dns.quad
quad		IN	A		127.0.0.1
dns.quad	IN	A		127.0.0.1
www		IN	CNAME		quad
}}}

Die Syntax ist @ IN SOA <DNS-Server> <Postmaster-Email> (Timeouts) ...

!!!EDNS
Extended DNS ist erweiterted DNS für UDP, vor allem wegen der ursprünglichen Längenbegrenzung von 512 Bytes. Getestet werden kann es mit dem Dig-Befehl:

{{{
dig @192.168.1.14 +short rs.dns-oarc.net txt
}}}

Es gibt zwei Lösungsmöglichkeiten:

!!Reduzieren von EDNS auf 512 Bytes
Die erforderlichen Einträge in der named.conf:

{{{
    edns-udp-size 512;
    max-udp-size 512;
}}}

!!Abschalten der EDNS-Funktionalität
Die erforderlichen Einträge in der named.conf:

{{{
server 0.0.0.0/0 {
    edns no;
};

server ::/0 {
    edns no;
};
}}}

!!!ISC Bind Server Failure
Unter ISC Bind kommt es bei rekursiven DNS-Anfragen bei einigen Leuten zu den Meldungen "Server Failure". Es wird vermutet, dass dies nur in Bind 9 unter Windows auftaucht.

Eine möglicher Work-around ist vermutlich:

{{{
    max-ncache-ttl 30;
    lame-ttl 10;
    cleaning-interval 0;
}}}

__Erklärung:__ Negative Einträge bzw. langsame DNS-Server werden nach kurzer Zeit (30 Sekunden bzw. 10 Sekunden) nochmal abgefragt. Einmal gefundene Ergebnisse werden nicht aus dem Cache entfernt.

!!!Dynamische DNS-Server
Frei und einfach zu nutzen sind:

* [DDNS|https://www.ddns.net/]
* [Duck DNS|https://www.duckdns.org/]

!!!Links
* [Wikipedia|http://de.wikipedia.org/wiki/Zonendatei]
* [http://www.wiki.csoft.at/index.php/ISC_BIND_Nameserver_in_Windows_XP_installieren]