BIND Nameserver
Mit BIND1) richten wir uns für unser SOHO2)-LAN ein Domain-Name-System-Server oder kurz DNS3)ein.
DNS wurde in den beiden RFC 1034 und RFC 1035 definiert und bekam von der Internet Assigned Numbers Authority die beiden Ports 53/UDP und 53/TCP.
Installation
Zu erst installieren wir uns die beiden Pakete bind und bind-chroot. Letzters hilft uns, unseren DNS in einem chroot4)-Umgebung laufen zu lassen. Hierzu reicht quasi die installation von bind-chroot, da bind auf Grund der Abhängigkeiten bei Bedarf automatisch mit installiert wird.
yum install bind-chroot
Konfiguration
named.conf
Als erstes erstellen wir uns unsere Serverkonfigurationsdatei:
# vim /var/named/chroot/etc/named.conf
// Red Hat BIND Configuration Tool
//
// Default initial "Caching Only" name server configuration
//
options {
allow-query {
127.0.0.1;
192.168.100.0/24;
};
query-source address 192.168.100.1 port *
;
forwarders { 212.18.3.5;
212.18.0.5;
};
random-device "/dev/random";
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
/*
* If there is a firewall between you and nameservers you want
* to talk to, you might need to uncomment the query-source
* directive below. Previous versions of BIND always asked
* questions using port 53, but BIND 8.1 uses an unprivileged
* port by default.
*/
// query-source address * port 53;
};
zone "." IN {
type hint;
file "named.root";
};
zone "localdomain." IN {
type master;
file "localdomain.zone";
allow-update { none; };
};
zone "localhost." IN {
type master;
file "localhost.zone";
allow-update { none; };
};
zone "0.0.127.in-addr.arpa." IN {
type master;
file "named.local";
allow-update { none; };
};
zone "0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa." IN {
type master;
file "named.ip6.local";
allow-update { none; };
};
zone "255.in-addr.arpa." IN {
type master;
file "named.broadcast";
allow-update { none; };
};
zone "0.in-addr.arpa." IN {
type master;
file "named.zero";
allow-update { none; };
};
zone "nausch.org" IN {
type master;
file "nausch.org";
};
zone "10.168.192.in-addr.arpa" IN {
type master;
file "10.168.192.in-addr.arpa";
};
include "/etc/rndc.key";
Forward-Auflösung
Als nächstes legen wir uns für die Forward-Auflösung die entsprechende Konfigurationsdatei passend für unsere Domäne nausch.org an.
vim /var/named/chroot/var/named/nausch.org $TTL 86400 @ IN SOA nss.nausch.org. root.nausch.org. ( 2008110701 ; serial 3H ; refresh 15M ; retry 1W ; expiry 1D ) ; minimum IN NS nss.nausch.org. IN MX 10 nss ldap IN CNAME nss time IN CNAME nss nausch.org. IN A 192.168.100.1 *.nausch.org. IN A 192.168.100.1 nss IN A 192.168.100.1 GXP-2000 IN A 192.168.100.50 ST-100 IN A 192.168.100.51 SPA-2100-1 IN A 192.168.100.52 SPA-2100-2 IN A 192.168.100.53 snom360 IN A 192.168.100.54 snom320 IN A 192.168.100.55 snom300-1 IN A 192.168.100.56 snom300-2 IN A 192.168.100.57 snom300-3 IN A 192.168.100.58 snom-m3 IN A 192.168.100.59
Reverse-Auflösung
Für die Reverse-Auflösung, also für die Ermittlung des Namens zu einer vorgegebenen IP-Adresse, legen wird entsprechend unserem IP-Adresspools folgende Konfigurationsdatei 100.168.192.in-addr.arpa an.
vim /var/named/chroot/var/named/10.168.192.in-addr.arpa $TTL 2D @ IN SOA nss.nausch.org. root.nss.nausch.org. ( 2008110701 ; serial 3H ; refresh 1H ; retry 1W ; expiry 1D ) ; minimum @ IN NS 1.100.168.192.in-addr.arpa. 1 IN PTR nss.nausch.org. 50 IN PTR GXP-2000.nausch.org. 51 IN PTR ST-100.nausch.org. 52 IN PTR SPA-2100-1.nausch.org. 53 IN PTR SPA-2100-2.nausch.org. 54 IN PTR snom360.nausch.org. 55 IN PTR snom320.nausch.org. 56 IN PTR snom300-1.nausch.org. 57 IN PTR snom300-2.nausch.org. 58 IN PTR snom300-3.nausch.org. 59 IN PTR snom-m3.nausch.org.
Weiter legen wir uns noch folgende Dateien an
localdomain.zone
$TTL 86400 @ IN SOA localhost root.localhost ( 42 ; serial (d. adams) 3H ; refresh 15M ; retry 1W ; expiry 1D ) ; minimum IN NS localhost localhost IN A 127.0.0.1
localhost.zone
$TTL 86400 @ IN SOA @ root ( 42 ; serial (d. adams) 3H ; refresh 15M ; retry 1W ; expiry 1D ) ; minimum IN NS @ IN A 127.0.0.1 IN AAAA ::1
named.broadcast
$TTL 86400 @ IN SOA localhost. root.localhost. ( 42 ; serial (d. adams) 3H ; refresh 15M ; retry 1W ; expiry 1D ) ; minimum IN NS localhost.
named.ip6.local
$TTL 86400 @ IN SOA localhost. root.localhost. ( 42 ; Serial 28800 ; Refresh 14400 ; Retry 3600000 ; Expire 86400 ) ; Minimum IN NS localhost. 1 IN PTR localhost.
named.local
$TTL 86400 @ IN SOA localhost. root.localhost. ( 42 ; Serial 28800 ; Refresh 14400 ; Retry 3600000 ; Expire 86400 ) ; Minimum IN NS localhost. 1 IN PTR localhost.
named.root
; root "." zone hints file, queried of a.root-servers.net. by system-config-bind ; version of root zone: 2007082400 . 518400 IN NS H.ROOT-SERVERS.NET. . 518400 IN NS I.ROOT-SERVERS.NET. . 518400 IN NS J.ROOT-SERVERS.NET. . 518400 IN NS K.ROOT-SERVERS.NET. . 518400 IN NS L.ROOT-SERVERS.NET. . 518400 IN NS M.ROOT-SERVERS.NET. . 518400 IN NS A.ROOT-SERVERS.NET. . 518400 IN NS B.ROOT-SERVERS.NET. . 518400 IN NS C.ROOT-SERVERS.NET. . 518400 IN NS D.ROOT-SERVERS.NET. . 518400 IN NS E.ROOT-SERVERS.NET. . 518400 IN NS F.ROOT-SERVERS.NET. . 518400 IN NS G.ROOT-SERVERS.NET. A.ROOT-SERVERS.NET. 3600000 IN A 198.41.0.4 B.ROOT-SERVERS.NET. 3600000 IN A 192.228.79.201 C.ROOT-SERVERS.NET. 3600000 IN A 192.33.4.12 D.ROOT-SERVERS.NET. 3600000 IN A 128.8.10.90 E.ROOT-SERVERS.NET. 3600000 IN A 192.203.230.10 F.ROOT-SERVERS.NET. 3600000 IN A 192.5.5.241 G.ROOT-SERVERS.NET. 3600000 IN A 192.112.36.4 H.ROOT-SERVERS.NET. 3600000 IN A 128.63.2.53 I.ROOT-SERVERS.NET. 3600000 IN A 192.36.148.17 J.ROOT-SERVERS.NET. 3600000 IN A 192.58.128.30 K.ROOT-SERVERS.NET. 3600000 IN A 193.0.14.129 L.ROOT-SERVERS.NET. 3600000 IN A 198.32.64.12 M.ROOT-SERVERS.NET. 3600000 IN A 202.12.27.33
named.zero
$TTL 86400 @ IN SOA localhost. root.localhost. ( 42 ; serial (d. adams) 3H ; refresh 15M ; retry 1W ; expiry 1D ) ; minimum IN NS localhost.
Nameserver starten
Den ersten Start unseres DNS-Servers nehmen wir wie folgt vor.
service named start named starten: [ OK ]
Im syslog wird der erfolgreiche Start entsprechend quittiert:
Nov 7 21:40:17 mnss named[17041]: starting BIND 9.3.4-P1 -u named -t /var/named/chroot
Nov 7 21:40:17 mnss named[17041]: found 2 CPUs, using 2 worker threads
Nov 7 21:40:17 mnss named[17041]: loading configuration from '/etc/named.conf'
Nov 7 21:40:17 mnss named[17041]: listening on IPv4 interface lo, 127.0.0.1#53
Nov 7 21:40:17 mnss named[17041]: listening on IPv4 interface eth0, 192.168.100.2#53
Nov 7 21:40:17 mnss named[17041]: command channel listening on 127.0.0.1#953
Nov 7 21:40:17 mnss named[17041]: command channel listening on ::1#953
Nov 7 21:40:17 mnss named[17041]: zone 0.in-addr.arpa/IN: loaded serial 42
Nov 7 21:40:17 mnss named[17041]: zone 0.0.127.in-addr.arpa/IN: loaded serial 42
Nov 7 21:40:17 mnss named[17041]: zone 100.168.192.in-addr.arpa/IN: loaded serial 2008110701
Nov 7 21:40:17 mnss named[17041]: zone 255.in-addr.arpa/IN: loaded serial 42
Nov 7 21:40:17 mnss named[17041]: zone 0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa/IN: loaded serial 42
Nov 7 21:40:17 mnss named[17041]: zone localdomain/IN: loaded serial 42
Nov 7 21:40:17 mnss named[17041]: zone localhost/IN: loaded serial 42
Nov 7 21:40:17 mnss named[17041]: zone nausch.org/IN: loaded serial 2008110701
Nov 7 21:40:17 mnss named[17041]: running
Nov 7 21:40:17 mnss named[17041]: zone 10.168.192.in-addr.arpa/IN: sending notifies (serial 2008110701)
automatisches Starten des Dienste beim Systemstart
Damit nun unser DNS-Server beim Booten automatisch gestartet wird, nehmen wir noch folgende Konfigurationsschritte vor.
chkconfig named on
Anschließend überprüfen wir noch unsere Änderung:
chkconfig --list | grep named named 0:Aus 1:Aus 2:Ein 3:Ein 4:Ein 5:Ein 6:Aus