DNS Server

Aus Fedorawiki.de

Wechseln zu: Navigation, Suche


Edit.png Dieser Artikel ist noch nicht vollständig. Du kannst helfen, ihn zu bearbeiten.
Dieser Artikel ist Teil der HOWTO Sammlung

Die Hauptaufgabe vom Domain Name System (DNS) ist die Umsetzung von IP-Adressen in einen für Menschen besser lesbare Form. Dieser Vorgang wird forward lookup genannt. Das DNS ist eine weltweit auf tausende von Servern verteilte hierarchische Datenbank, die den Namensraum des Internets, welche in sogenannte Zonen unterteilt ist, verwaltet. Eine Internet unabhängige Nutzung in einem lokalen Netzwerk bringt diverse Vorteile und kann einem das Leben vereinfachen.

Als sehr einfache Lösung für kleine Netzwerke gibt es die Datei /etc/hosts. Diese Datei muss jedoch auf allen Maschinen im Netzwerk konsistent gehalten werden, was in einer grösseren Netzwerk-Umgebung mit Arbeit verbunden ist.

DNS zeichnet sich durch folgende Punkte aus.

  • dezentrale Verwaltung
  • hierarchische Strukturierung des Namensraums in Baumform
  • Eindeutigkeit der Namen
  • Erweiterbarkeit


Inhaltsverzeichnis

Kurze Einführung in das DNS

BIND ist ein Begriff, der häufig in Bezug zu DNS fällt. Er ist die Abkürzung von Berkeley Internet Name Domain, welche Wartung der DNS-relevanten Software-Teile für Linux macht. Der bekannteste teil aus diesem Programm ist der DNS-Server mit dem Namen named.

Soll ein Host in einem Netzwerk zu einem anderen Host über desen Hostnamen (FQDN - fully qualified domain name) verbinden, wird DNS verwendet, um die IP-Adressen des Rechner über desen Hostnamen zu bestimmen.

Der FQDN

server01.homenet.example.com

bildet mit Ausnahme des Hostnamens für jeden Bereich eine Zone. Diese sind einem bestimmten Namespace (Namensbereich) zugeordnet. Der Namespace kontrolliert die Bezeichnung der Subdomains auf der linken Seite. Und so funktioniert auch die Auflösung, sie erfolgt von rechts nach links. Diese Bereiche werden im DNS in einer Hierarchie, ähnlich wie bei einem Baum mit Hauptstamm mit den entsprechenden Abweigungen angeordnet.

Es gibt diverse Nameserver-Type

  • Master — speichert die massgeblichen Zonen für einen bestimmten Namespace und beantwortet Anfragen von anderen Nameservern zu diesem Namespace
  • Slave — beantwortet ebenfalls die Anfragen anderer Nameserver bezüglich des Namespace, er erhalten seine Informationen über ein Namespace von Master-Nameservern.
  • Caching-Only — bietet Services für IP-Auflösungen und speichert die Anfragen eine gewisse Zeit
  • Forwarding — leitet Anfragen zum Auflösen an eine Liste von Nameservern weiter.


Installation

Die Installation eines DNS-Servers ist mit yum, yumex oder pirut sehr einfach.

[root]# yum install named


Konfiguration

Die Datei /etc/named.conf beinhaltet eine Ansammlung von Direktiven, die in verschachtelte, geschweifte Klammern platzierte { }-Optionen verwenden.

named.conf

// Example named.conf file

options {
      directory "/var/named";
      allow-query { 10.0.0.0/8; localhost; };
      allow-recursion { 10.0.0.0/8; localhost; };
      forward first;
      forwarders {
           0.0.0.0;
           1.1.1.1;
      };
      topology {
           10/8;
      };
  };

// Enable RNDC connections from this host.
controls {
      inet 127.0.0.1 allow { localhost; } keys { rndc_key; };
};

// This is the root servers zone file, already present on this system.
zone "." {
      type hint;
      file "named.ca";
};

// This is the localhost zone file, already present on the system.
zone "localhost" IN {
      type master;
      file "localhost.zone";
      allow-update { none; };
};

// This is the reverse zone file for localhost, already present on the system.
zone "0.0.127.in-addr.arpa" {
      type master;
      file "named.local";
      allow-update { none; };
};

// This is the zone file for our domain. Edit this entry to reflect your domain.
zone "homenet.example.com" {
      allow-transfer { 10.0.0.0/8; localhost; };
      allow-query { any; };
      allow-update { none; };
      type master;
      file "homenet.example.com";
};

// This is the reverse zone file for our domain. Edit it to reflect the IP network
// assigned to you. (note - in reverse! network 10.1.2.0 becomes 2.1.10.in-addr.arpa)
zone "2.1.10.in-addr.arpa" {
      allow-transfer { 10.0.0.0/8; localhost; };
      allow-query { any; };
      allow-update { none; };
      type master;
      file "2.1.10.in-addr.arpa";
};

// A key file needs to be referenced for use by rndc.
include "/etc/rndc.key";

Generieren des RNDC Schlüssel

Dieser Schlüssel wird von named für den Betrieb benötigt .

[root]# rndc-confgen -a -c /etc/rndc.key

Zone-Dateien

Die Zonen-Dateien enthalten alle Informationen über einen bestimmten Namespace.

forward

Dieses Beispiel ist für eine forward-Zone.

$ORIGIN example.com
$TTL 86400
@     IN     SOA    ns.homenet.example.com.     hostmaster.example.com. (
                    2001062501 ; serial
                    21600      ; refresh after 6 hours
                    3600       ; retry after 1 hour
                    604800     ; expire after 1 week
                    86400 )    ; minimum TTL of 1 day

localhost     A        127.0.0.1
server        A        10.1.2.1
ns            A        10.1.2.1 

dhcp-01         A         10.1.2.10
dhcp-02         A         10.1.2.11
dhcp-03         A         10.1.2.12

reverse

Nun die reverse-Variante

$ORIGIN 1.0.10.in-addr.arpa
$TTL 86400
@     IN     SOA    ns.homenet.example.com.     hostmaster.example.com. (
                    2001062501 ; serial
                    21600      ; refresh after 6 hours
                    3600       ; retry after 1 hour
                    604800     ; expire after 1 week
                    86400 )    ; minimum TTL of 1 day

                   NS          server.homenet.example.com.
1                  PTR         server.homenet.example.com.
10                 PTR         dhcp-01.homenet.example.com.
11                 PTR         dhcp-02.homenet.example.com.
12                 PTR         dhcp-03.homenet.example.com.


DNS-Server soll sich selber nutzen

Als root kann folgender Befehl ausgeführt werden, damit sich der DNS-Server selber braucht zum Auflösen der Adressen.

cat <<END_ENTRY > /etc/resolv.conf
nameserver 127.0.0.1
search homenet.example.com
END_ENTRY

Verwendung

Wenn alles wunschgemäss funktioniert sollte, sollte named bereits beim Start ausgeführt werden.

Starten

[root]# service named start

Neustarten

[root]# service named restart

Damit named beim System-Start gestartet wird, muss

[root]# chkconfig named on


Siehe auch


Links