| This content in english |

Debian - DNS-Server - Bind

Ziel

Innerhalb des eigenen Netzwerkes soll ein DNS-Server genutzt werden können.

Verwendet habe ich:
Debian Lenny in der Standardinstallation
+ mc (zum Bearbeiten der Dateien)

Installation

# apt-get install bind9

Zu bearbeitende Dateien in diesem Beispiel:

/etc/bind/domain.de
/etc/bind/192.168.1.in-addr.arpa
/etc/bind/named.conf.local.

/etc/bind/named.conf sollte man in Ruhe lassen, wenn man nur Zonen hinzufügen will.

DNS-Zonen

Name der Zonendatei in diesem Beispiel: domain.de.
Entsprechend lautet die Datei in /etc/bind dann auch domain.de. Dateianlegen:

# touch /etc/bind/domain.de

Damit die Anfragen auch rückwärts bearbeitet werden können, muss eine zweite Zonendatei angelegt werden. Angenommen, die Netzadresse wäre 192.168.1, dann würde die weitere Zonendatei heißen: 192.168.1.in-addr.arpa. Datei anlegen:

# touch /etc/bind/192.168.1.in-addr.arpa

Ein NS-Eintrag ist für den Nameserver. Der wird mit in diesem Beispiel dnsserver.domain.de angegeben.
MX-Einträge sind für Mailserver mailserver.domain.de
SOA-Einträge betreffen den Start of Authority.

Datei /etc/bind/domain.de (Auszug)

(Abstände/Tabulatoren hier etwas verringert)

$TTL 2d
@ IN SOA dnsserver.domain.de. root.dnsserver.domain.de. (
2006090501 ; serial
3h ; refresh
1h ; retry
1w ; expiry
1d ) ; minimum

domain.de. IN NS dnsserver.domain.de.
domain.de. IN MX 1 mailserver.domain.de.
computer001 IN A 192.168.1.1
computer002 IN A 192.168.1.2
computer003 IN A 192.168.1.3
computer004 IN A 192.168.1.4
computer005 IN A 192.168.1.5
mailserver IN A 192.168.1.6

Datei /etc/bind/192.168.1.in-addr.arpa (Auszug)

Hier sind die einzelnen Computer aufgeführt

$TTL 604800
@ IN SOA dnsserver.domain.de. root.dnsserver.domain.de. (
2006090501 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL

192.168.1.in-addr.arpa. IN MX 1 mailserver.domain.de.
192.168.1.in-addr.arpa. IN NS dnsserver.domain.de.
1 IN PTR computer001.domain.de.
2 IN PTR computer002.domain.de.
3 IN PTR computer003.domain.de.
4 IN PTR computer004.domain.de.
5 IN PTR computer005.domain.de.
6 IN PTR mailserver.domain.de.

Wichtig ist, links von Serial vor dem Semikolon die Seriennummer der Datei bei Änderungen zu erhöhen. Hier habe ich das Schema Jahr-Monat-Tag-Nummer (zweistellig) angewandt. Jahr: 2006, Monat: 09, Tag: 05. Gegebenenfalls folgt noch eine zweistellige Nummer für die Version an einem Tag, hier jetzt: 01. Wenn Einträge in der Datei geändert werden, die Seriennummer aber beibehalten wird, bekommt der Dienst nichts von den Änderungen mit. Möglicherweise gibt es Fehlermeldungen.

Stellen Sie sicher, dass der Punkt am Ende der nummerierten Zeilen bzw. hinter Einträgen mit Domainnamen gesetzt ist. Computer mit besonderer Funktion erhalten einen Eintrag, der ihre Aufgabe kennzeichnet. Bei einem Mailserver ist das ein MX-Eintrag. Außerdem erhält der Mailserver einen 'normalen' Eintrag, wie andere Computer auch. Für den Mailserver muss eine Prioritätszahl angegeben werden. Je niedriger die Zahl, desto höher die Priorität. Es lassen sich so mehrere Mailserver eintragen. Die sollten unterschiedliche Prioritäten bekommen. Wenn E-Mails nicht zugestellt werden können, wird versucht, einen anderen Mailserver aus der Liste zu erreichen.

Datei /etc/bind/named.conf

// This is the primary configuration file for the
// BIND DNS server named.
//
// Please read /usr/share/doc/bind9/README.Debian.gz
// for information on the structure of BIND
// configuration files in Debian, *BEFORE* you customize
// this configuration file.
//
// If you are just adding zones, please do that in
// /etc/bind/named.conf.local

include "/etc/bind/named.conf.options";

// prime the server with knowledge of the root servers
zone "." {
type hint;
file "/etc/bind/db.root";
};

// be authoritative for the localhost forward and
// reverse zones, and forbroadcast zones as per RFC 1912

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";
};

// zone "com" { type delegation-only; };
// zone "net" { type delegation-only; };

// From the release notes:
// Because many of our users are uncomfortable
// receiving undelegated answers from root or top
// level domains, other than a few for whom that behaviour
// has been trusted and expected for quite some length of
// time, we have now introduced the "root-delegations-only" < br />// feature which applies delegation-only logic to all top
// level domains, and to the root domain. An exception list
// should be specified, including "MUSEUM" and "DE", and
// any other top level domains from whom undelegated
// responses are expected and trusted.
// root-delegation-only exclude { "DE"; "MUSEUM"; };

// Verweis auf eine weitere, einzubindende Datei.
include "/etc/bind/named.conf.local";

Datei /etc/bind/named.conf.local

Hier werden die Pfade zu den oben angegebenen Zonendateien eingetragen.

//
// Do any local configuration here
//

// Consider adding the 1918 zones here, if they are not
// used in your organization
// include "/etc/bind/zones.rfc1918";


zone "domain.de" in {
type master;
file "/etc/bind/domain.de";
allow-update { none;};
};

zone "192.168.1.in-addr.arpa" in {
type master;
file "/etc/bind/192.168.1.in-addr.arpa";
allow-update { none;};
};

Datei /etc/bind/named.conf.options

Forwarder sind DNS-Server, die der eigene DNS-Server fragen kann, wenn er selbst nicht weiter weiß. Ersetzen Sie den Eintrag 123.123.123.123 durch die IP-Adresse des Forwarders, den Ihr DNS-Server verwenden soll.

options {
directory "/var/cache/bind";

// If there is a firewall between you and
// nameservers you want to talk to, you might need
// to uncomment the query-sourcedirective below.
// Previous versions of BIND always asked questions using
// port 53, but BIND 8.1 and later use an unprivileged
// port by default.

// query-source address * port 53;

// If your ISP provided one or more IP addresses for
// stable nameservers, you probably want to use them
// as forwarders. Uncomment the following block,
// and insert the addresses replacing the all-0's
// placeholder.

// forwarders {
// 0.0.0.0;
// };
forwarders {
123.123.123.123;
};

auth-nxdomain no; # conform to RFC1035

};

Änderungen wirksam werden lassen

Der Dienst muss ein Mal neu gestartet werden, damit die Änderungen wirksam werden.

# /etc/init.d/bind9 restart.