Anleitung Gentoo Bind – Domains auf LAN IPs [eth0]

Bind ist der traditionelle DNS Server im Internet. Inzwischen ist er in der Version 9 verfügbar. Aber zuerst wollen wir uns mal anschauen, wie DNS (Domain Name Service) funktioniert.

Die Hauptaufgabe des DNS im Internet ist es, Hostnamen zu IP-Adressen aufzulösen. Es ist doch um einiges schöner www.google.de statt 66.249.93.104 einzugeben. Oder sind etwa doch Masochisten unter uns? Eben.
Und genau diese Namensauflösung übernimmt der DNS-Server. Die Konfiguration wird weiter unten behandelt. Nun wollen wir uns zuerst mal anschauen, wie die Namensauflösung funktioniert. Wenn nun einer stöhnt, das kann doch /etc/hosts auch, dann hat derjenige recht und kann sich nun verabschieden ;-)

Für alle anderen nun die Einführung. Als erstes werden wir dem File /usr/local/bind/etc/named.conf auf die Pelle rücken:
Darin müssen wir die Optionen für unseren DNS festlegen:

* das Stammverzeichnis für die Zonen-Dateien (etc/). Wir bereiten die Konfiguration schon einmal für die chroot-Umgebung vor. Deshalb nur einen relativen Pfad.
* die Anweisung an den named, dass er als Forwarder arbeiten soll (forward only)
* die einzelnen externen DNS-Server, an die externe Anfragen geschickt werden sollen (IP_NAMESERVER)

options {
directory “/var/bind”;

// uncomment the following lines to turn on DNS forwarding,
// and change the forwarding ip address(es) :
//forward first;
//forwarders {
// 123.123.123.123;
// 123.123.123.123;
//};

listen-on-v6 { none; };
listen-on { 192.168.1.101; 127.0.0.1; };

// to allow only specific hosts to use the DNS server:
//allow-query {
// 127.0.0.1;
//};

// if you have problems and are behind a firewall:
//query-source address * port 53;
pid-file “/var/run/named/named.pid”;
};

// Briefly, a zone which has been declared delegation-only will be effectively
// limited to containing NS RRs for subdomains, but no actual data beyond its
// own apex (for example, its SOA RR and apex NS RRset). This can be used to
// filter out “wildcard” or “synthesized” data from NAT boxes or from
// authoritative name servers whose undelegated (in-zone) data is of no
// interest.
// See http://www.isc.org/products/BIND/delegation-only.html for more info

//zone “COM” { type delegation-only; };
//zone “NET” { type delegation-only; };

zone “.” IN {
type hint;
file “named.ca”;
};

zone “localhost” IN {
type master;
file “pri/localhost.zone”;
allow-update { none; };
notify no;
};

zone “127.in-addr.arpa” IN {
type master;
file “pri/127.zone”;
allow-update { none; };
notify no;
};

zone “home-lan.mil” {
notify yes;
type master;
allow-transfer { “none”; };
file “pri/home-lan.mil”;
};

zone “1.168.192.in-addr.arpa” {
notify yes;
type master;
allow-transfer { “none”; };
file “pri/192.168.1″;
};

Als naechstes muessen wir die Zonen definieren. Diese werden eingeleitet durch “zone” und den Domainname (“home-lan.mil”) oder den reverse-Name (“0.0.127.in-addr.arpa”). Die Zone “.” ist wichtig, wenn man einen sekundaeren DNS-Server aufsetzt, also wenn man alle IP-Adressen des Internet auf seiner Platte speichern möchte ;) . Das will ich mit dieser Anleitung aber nicht abdecken

Um die Rechnernamen nach Adressen aufloesen zu koennen, muss man die Zonen-Datei /usr/local/bind/pri/home-lan.mil anlegen.
Man beachte den Pfad: bei den Optionen haben wir directory “pri/” angegeben. In den Zonen haben wir dann file “pri/home-lan.mil” angegeben..
Wichtig ist es in unserem Fall, dass alle DNS-Server ( IN NS ) angegeben werden, da diese durch den master-Server benachrichtigt werden, wenn sich die Zonen-Dateien geaendert haben.

$TTL 3D
@ IN SOA x9000.home-lan.mil. hostmaster.home-lan.mil. (
2001090901 ;serial
8H ;refresh
2H ;retry
1W ;expire
1D) ;minimum

@ IN NS x9000
IN NS router

; muss man nicht wirklich angeben ;)
; die ziffern stehen fuer die reihenfolge (10 > 20)
; in der die mailserver angesprochen werden
; den eintrag linux kann man im prinzip vergessen:
; wenn server nicht da ist, fehlt auch der DNS ;)

localhost.home-lan.mil. IN A 127.0.0.1
loopback IN CNAME localhost

x9000.home-lan.mil. IN A 192.168.1.101
fuckup.home-lan.mil. IN A 192.168.1.103
ap.home-lan.mil. IN A 192.168.1.2
router.home-lan.mil. IN A 192.168.1.1
fischle.home-lan.mil. IN A 192.168.1.107
g-bit.home-lan.mil. IN A 192.168.1.140

Danach legen wir die Datei /usr/local/bind/pri/127.0.0 an.

<$TTL 3D
@ IN SOA x9000.home-lan.mil. hostmaster.home-lan.mil. (
2001090901 ;Serial, todays date + todays serial
8H ;Refresh
2H ;Retry
1W ;Expire
1D) ;minimum TTL

@ IN NS router.home-lan.mil.
IN NS x9000.home-lan.mil.

1 IN PTR localhost.

Nun legen wir noch die Zonen-Datei /usr/local/bind/pri/192.168.1 an und sind gluecklich (wenn auch noch nicht ganz fertig).

$TTL 3D
@ IN SOA x9000.home-lan.mil. hostmaster.home-lan.mil. (
2001090901; Serial, todays date + todays serial
; kann beliebigen string annehmen
8H ; Refresh
2H ; Retry
4W ; Expire
1D) ; Minimum TTL
@ IN NS router.home-lan.mil.
IN NS x9000.home-lan.mil.

; nun werden alle rechner angegeben, die zu diesem subnetz gehören.

101 IN PTR x9000.home-lan.mil.
103 IN PTR fuckup.home-lan.mil.
107 IN PTR fischle.home-lan.mil.
140 IN PTR g-bit.home-lan.mil.
1 IN PTR router.home-lan.mil.
2 IN PTR ap.home-lan.mil.

Vielleicht ist dem einem oder anderen aufgefallen, dass der Rechnername immer mit “.” abgeschlossen wird (server.home-lan.mil.). Dies ist notwendig, da sonst der Domainname (den wir mit zone “home-lan.mil” definiert haben) noch angefuegt wird!
Also entweder “server” oder “server.home-lan.mil.”. Dies ist eine beliebte Fehlerquelle ;-)

Mit diesen beiden Zonen-Dateien haben wir nun den sogenannten “reverse-lookup” eingerichtet. Damit können wir nun IP-Adressen nach Rechnernamen aufloesen.

Jetzt muesst Ihr lediglich nur noch die /etc/resolv.conf anpassen und schon koennt Ihr loslegen!

Viel Spass damit
und danke an
Michael Baer

nix aehnlich.

Veröffentlicht von Matze

Ich hab Millionen von Ideen und alle enden mit Sicherheit tödlich.

Hinterlasse eine Antwort

Pflichtfelder sind mit * markiert.

*