Es muss nicht immer Bind sein…


Unix , , , ,


Die meisten Administratoren, welchen einen DNS Server aufsetzen wollen, denken automatisch an Bind. Klar, Bind ist ein hervorragender DNS Server, oft aber zu umfangreich für eine kleine Installation. Soll z.B. ein DNS Server auf einem extrem abgespecktem System, wie z.B. FreeNAS installiert werden, dann bietet sich eher was kleineres an…


Genau das war vor kurzem bei mir der Fall, wo ich einen DNS Server in meiner FreeNAS Installation brauchte. Ich hab auch schon an TinyDNS von D.J. Bernstein gedacht, allerdings braucht dieser /usr/sbin/daemon, was bei mir nicht verfügbar ist.

Also viel meine Wahl auf MaraDNS. Hierbei handelt es sich um einen extrem kleinen DNS Server, welcher seine Zonen aus CSV Dateien holt. Ziemlich einfach zu installieren bzw. konfigurieren.

Unter FreeBSD reicht ein pkg_add -r maradns und die Software ist installiert. Die Konfiguration in der Datei mararc ist auch recht simpel…

csv2 = {}
csv2["example.com."] = "db.example.com"
csv2["0.168.192.in-addr.arpa."] = "db.192.168.0"
 
ipv4_bind_addresses = "0.0.0.0"
chroot_dir = "/usr/local/etc/maradns"
maradns_uid = 53
maradns_gid = 53
maxprocs = 96
no_fingerprint = 0
default_rrany_set = 3
max_chain = 8
max_ar_chain = 1
max_total = 20
verbose_level = 1
 
ipv4_alias = {}
ipv4_alias["icann"]  = "198.41.0.4, 192.228.79.201, 192.33.4.12, 128.8.10.90,"
ipv4_alias["icann"] += "192.203.230.10, 192.5.5.241, 192.112.36.4,"
ipv4_alias["icann"] += "128.63.2.53, 192.36.148.17, 192.58.128.30,"
ipv4_alias["icann"] += "193.0.14.129, 198.32.64.12, 202.12.27.33"
ipv4_alias["opennic"]  = "157.238.46.24, 209.104.33.250, 209.104.63.249,"
ipv4_alias["opennic"] += "130.94.168.216, 209.21.75.53, 64.114.34.119,"
ipv4_alias["opennic"] += "207.6.128.246, 167.216.255.199, 62.208.181.95,"
ipv4_alias["opennic"] += "216.87.153.98, 216.178.136.116"
 
ipv4_alias["localhost"] = "127.0.0.0/8"
recursive_acl = "localhost,192.168.0.0/8"

In der Konfiguration werden 2 Zonen eingerichtet, eine für example.com und eine Reverse Zone für 192.168.0. Ausserdem wird mit recursive_acl das Netz 192.168.0.0/8 für Abfragen freigeschalten.

Die Zonen an sich sind auch extrem einfach aufgebaut. Die Zone für example.com in der Datei db.exmaple.com

server1.example.com. A 192.168.0.1
server1.exmaple.com. MX 10 server1.example.com.
server2.example.com. CNAME server1.example.com.
 
client1 A 192.168.0.10
client2 A 192.168.0.11

Die Datei db.192.168.0 für die Rückwärtsauflösung sieht dann z.B. wie folgt aus…

1.0.168.192 PTR server1.example.com.
10.0.168.192 PTR client1.example.com.
11.0.168.192 PTR client2.example.com.

Auch der Umstieg von Bind wird leicht gemacht. Mit dem Tool getzone, welches mitgeliefert wird, können direkt die Zonen von einem anderen Server geholt, und in das MaraDNS Format ausgegeben werden. Das erspart lästige Tipparbeit ;-)

getzone example.com 192.168.0.100

Hier hole ich die Zone example.com von dem Nameserver mit der IP 192.168.0.100.



Kommentar hinzufügen