DNS-Server mit Bind

From Linuxwiki
Revision as of 20:50, 26 October 2018 by Sunflower (talk | contribs) (Created page with "= Definition DNS = Domain Name System: Auflösung von Hostnamen in IP-Adressen und umgekehrt. = Möglichkeiten der Namensauflösung = a) lokal<br> Eine Möglichkeit der Name...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Definition DNS

Domain Name System: Auflösung von Hostnamen in IP-Adressen und umgekehrt.

Möglichkeiten der Namensauflösung

a) lokal
Eine Möglichkeit der Namensauflösung ist eine Eintragung von Hostnamen und zugehörigen IP-Adressen in die /etc/hosts.
Dies ist aber allenfalls ein temporärer Workaround, z.B. für Hosts in abgeschotteten Umgebungen.

b) zentral
In größeren Netzwerken sollte dies zur Entlastung der Clients und Reduzierung des Konfigurationsaufwandes zentral durch (einen) Nameserver erfolgen. Die Namensauflösung sollte vorwärts (Name -> IP-Adresse) und rückwärts (IP-Adresse -> Name) funktionieren. Als zugehörige Software wird hier BIND in der aktuellen Version (9) besprochen.

Varianten

  • Caching-Only-Nameserver: Der Nameserver verwaltet selbst keine Zonen, sondern cached nur Informationen anderer Nameserver zwischen.
  • Stand-Alone-Nameserver: Ein DNS-Server hält alle Zonendaten alleine vor.
  • Master-Slave: Zur Lastverteilung oder Ausfallsicherheit. Der Master überträgt die Zonendaten an den/die Slave(s).

Einrichten des Servers

In unserem Beispiel wird ein Standalone-Server besprochen.

1.) Installation der Software

# aptitude install bind9


2.) Die Konfigurationsdateien im Ordner /etc/bind editieren

Achtung: Kommentarzeichen in den Bind-config-files können „;“ „//“ oder „#“ sein.


Beispiel-Config vom Bind für die lokale Domain example.de:

In der named.conf müssen sogenannte Zonefiles eingetragen werden:

zone “example.de“ { type master; file “/etc/bind/db.example“; };

Falls der Nameserver außerhalb der eigenen Domain auf andere definierte Nameserver zugreifen muss, muss zusätzlich ein Forwarder in die named.conf.options eingetragen werden (der Eintrag muss innerhalb des options-Abschnitts erfolgen):

forwarders {

10.0.1.4;

};

wobei 10.0.1.4 i.d. Fall die IP des übergeordneten Nameservers ist.

Als nächstes wenden wir uns den Hosteinträgen für das lokale Netz zu:

db.example als Kopie von db.local anlegen:

; Zonenfile fuer example.de ; $TTL 604800

 example.de.      IN      SOA     server. root.example.de. (
  	                        1         ; Serial
   	                     	604800         ; Refresh
     	                        86400         	; Retry
               	        2419200        ;  Expire
              	                600 )     	; Negative Cache TTL (default 604800)
; Nameserver
IN      NS      server.example.de.
; Rechnername zu zugehoeriger IP-Adresse
server		IN       A        <IP>
client1		IN	A	<IP>
client2		IN	A	<IP>

..... (weitere Rechner)

router		IN	A	192.168.100.254

Beachte immer den Punkt am Ende des FQDN/ der Domain ! (z.B. server.example.de.)

TTL (Time to live) drückt aus, wie lange sich ein abgefragtes Objekt im Cache befinden darf (Default: 1 Woche, optionaler Parameter).

Weitere Parameter:

  • serial /seriell
 Seriennummer, die nach jeder Änderung hochgezählt werden sollte (Zonentransfer an eventuelle Slaves)
  • refresh = aktualisieren
 Intervall, in dem sich die Slaves mit dem Master abstimmen sollen, ob sich an der Seriennummer etwas geändert hat
  • retry = wiederholen
Wenn der Master nicht antwortet, versucht es der Slave nach Ablauf dieser Zeit nochmal.
  • expire = ablaufen
Antwortet der Master innerhalb dieser Zeit nicht, erkennt der Slave, dass seine Zonendaten nicht mehr aktuell sind und stellt sie nicht mehr zur Verfügung
  • Negative cache TTL
Minimum, in dem negative Antworten (z.B. NS nicht erreicht) im Cache gehalten werden. Es empfiehlt sich, den Default von 1 Woche auf einen geringeren Wert (z.B. 10 Minuten) herunterzudrehen, weil es sonst im Fehlerfall sehr lange dauern kann, bis der Cache expired.