Artikelformat

Anleitung Gentoo Bind – Domains auf LAN IPs [eth0]

Hinterlasse eine Antwort

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

so aehnlich:

Veröffentlicht von

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

Twitter | Facebook | Instagram | RSS

Schreibe eine Antwort

Pflichtfelder sind mit * markiert.