DNS mit bind9: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
Zeile 1: Zeile 1:
=DNS-Allgemeines=
+
 
*Jeder mit dem Internet verbundene Rechner besitzt eine IP­Adresse, über die er weltweit erreichbar ist.
+
*[[DNS Grundlagen]]
*Den meisten Menschen fällt es schwer, sich IP­Adressen zu merken. Aus diesem Grund werden  sprechende Namen wie z.B. www.xinux.com vergeben.
 
*Vor dem Aufbau einer Verbindung müssen  diese Namen in IP­Adressen umgewandelt werden, was heute die DNS­Server erledigen.
 
*In der Anfangszeit des Internet wurde hierfür eine große Hosts­Datei verwendet.
 
*Diese wurde zentral gepflegt und musste von den Systemadministratoren regelmäßig aktualisiert werden.
 
*Mit der zunehmenden Größe des Internets wurde diese Administration immer umständlicher.
 
*An Stelle einer Datei sollte eine Datenbank verwendet werden.
 
*Diese sollte allerdings nicht zentral auf einem Rechner liegen, sondern verteilt auf allen Rechnern des damaligen  Internet.
 
*Jeder Administrator sollte für die Namensgebung seiner eigenen Rechner verantwortlich  sein
 
*Desweiteren sollte er  für die Namensauflösung der anderen Computer auf die Datenbanken der anderen Administratoren zugreifen.
 
*Um unterscheiden zu können, welche Rechnernamen lokal und welche Rechnernamen zu einem  anderen Administrator gehören, wurde das Domänenkonzept eingeführt.
 
*Hierzu wird ein hierarchisch geordneter Baum verwendet, mit dessen Hilfe der richtige Datenbankserver schnell gefunden werden kann.
 
*Der Rechnername wird dabei nach rechts durch den entsprechenden Pfad im Baum erweitert.
 
=Domain Name Service=
 
{{#drawio:dns-1}}
 
  
 
=Installation bind9=
 
=Installation bind9=

Version vom 13. September 2022, 15:38 Uhr

Installation bind9

  • apt install bind9 .

Staren stoppen

  • systemctl restart bind9
  • systemctl restart bind9
  • systemctl restart bind9

Konfiguration von bind9

Hauptkonfiguration

Standardmäßig ist die Konfiguration von bind9 auf mehrere Dateien aufgeteilt:

/etc/bind/named.conf

#Diese Datei inkludiert einfach nur die anderen 3 Dateien
include "/etc/bind/named.conf.options";
include "/etc/bind/named.conf.local";
include "/etc/bind/named.conf.default-zones";

/etc/bind/named.conf.options

#Allgemeine Optionen
options {
 dnssec-validation auto;
 listen-on-v6 { any; };
};

/etc/bind/named.conf.default-zones

#Standardzonen
zone "." {
  type hint;
  file "/usr/share/dns/root.hints";
};
zone "localhost" {
  type master;
  file "/etc/bind/db.local";
};
zone "127.in-addr.arpa" {
  type master;
  file "/etc/bind/db.127";
};
zone "0.in-addr.arpa" {
  type master;
  file "/etc/bind/db.0";
};
zone "255.in-addr.arpa" {
  type master;
  file "/etc/bind/db.255";
};

/etc/bind/named.conf.locale

#Standardmässig leer
#Hier werden die sogenanten Zonen angelegt.
zone "vulkan.int" {
       type master;
       file "vulkan.int";
       notify no;
};

zone "81.168.192.in-addr.arpa" {
       type master;
       file "81.168.192.in-addr.arpa";
       allow-transfer { 192.168.249.121 };
};

Zonen Datei

  • Die Zonendatei enthält die Informationen zu den Adressen, und sieht folgendermaßen aus:
$TTL 300        ; 5 minutes
@                       IN SOA  ns.vulkan.int. technik.xunix.de. (
                               2011090204 ; serial
                               14400      ; refresh (4 hours)
                               3600       ; retry (1 hour)
                               3600000    ; expire (5 weeks 6 days 16 hours)
                               86400      ; minimum (1 day)
                               )
                       NS      ns.vulkan.int.
ns.vulkan.int.          IN      A       192.168.81.21

Sekundärer Nameserver

  • Um Ausfallsicherheit zu gewährleisten, kann es sinnvoll sein, mehrere DNS-Server zu betreiben.

Dazu muss man in der named.conf des sekundären Nameservers die Zone die man Spiegeln will mit folgender Konfiguration hinzufügen:

zone "vulkan.int" {
      type slave;
      file "vulkan.int";
      masters { 192.168.81.21; };
};

Update

  • Der Sekundäre Server refreshed dann wie im SOA-Record seine Zonendateien über seinen Master.
  • Dieses Verhalten ist von default her aktiv, wobei der Slave-Server nur von seinem Master ein Update erlaubt.

Notify

  • Notify ermöglicht dem primären Nameserver dem sekundären Server mitzuteilen das sich möglicherweise Dateien geändert haben, woraufhin dieser ein Update verlangt.
  • Dieses Verhalten ist von default her aktiv, wobei Master-Server nur ihren Slaves notify schicken, und Slaves nur notifys von ihren Mastern akzeptieren.

Dazu muss in der Zonen-Datei der Sekundäre Nameserver in den NS-Records eingetragen werden:

$TTL 300        ; 5 minutes
@                       IN SOA  ns.vulkan.int. technik.xunix.de. (
                               2011090604 ; serial
                               14400      ; refresh (4 hours)
                               3600       ; retry (1 hour)
                               3600000    ; expire (5 weeks 6 days 16 hours)
                               86400      ; minimum (1 day)
                               )
                                IN      NS      ns.vulkan.int.
                                IN      NS      tunesien.alpha.quadrant.    
ns.vulkan.int.                  IN      A       192.168.81.21
www                             IN      A       192.168.81.43

Forward Zone

  • Damit in diesem Beispiel unser Primärer Domain Server den Sekundären findet und auch noch im rest des Netzwerkes die Rechner kennt müssen wir eine Forward Zone einrichten die zurück auf unseren Top-Level-Domain Name-Server zeigt:
zone "alpha.quadrant" {
       type forward;
       forwarders { 192.168.240.21; };
};

Berechtigungen und Einschränkungen

  • wenn der Nameserver einen anderen Nameserver nicht die root Nameserver befragen soll
  • kann man forwarders benutzen
forwarders

         forwarders {
          213.133.98.96;
          213.133.99.99;
          213.133.100.100;
         };



  • mit allow-query ist gemeint wer erlaubt ist anfragen zu stellen für Zonen für die der Nameserver selbst zuständig ist
 allow-query 
{ 0.0.0.0/0; };


  • mit allow-recursion ist gemeint wer erlaubt ist anfragen zu stellen für die der Nameserver andere quellen befragen muss also die außerhalb seiner Zuständigkeit liegen
allow-recursion     { 
                    2.2.2.2
                  };
  • ist gemeint wer erlaubt ist eine komplette Zone abzufragen also alle unter Domains die zur Verfügung stehen dies wird normal nur für den sekundären Nameserver gebraucht
allow-transfer {
                1.2.2.2;
        };

DNS Auflösungsüberprüfung

host und dig.

  • Diese Tools ermöglichen es, Informationen von DNS­Servern abzufragen.
  • Das einfachere der beiden Programme ist host.
  • Eine simple Anfrage wird mit host www.heise.de ausgeführt.
  • Als Ausgabe erhält man die IP­Adresse des WWW­Servers: www.heise.de has address 193.99.144.85