![]() |
![]() |
![]() |
![]() |
|
|
Aus dem Alltag eines Sysadmin: DNSmasqPizza Nome, per favore!Charly Kühnast |
![]() |
Inhalt |
72 | MySQL-Datenbanken sichern
75 | DSH-Einsatz in Rechnerpools
78 | Admin-Workshop |
Für Heim- oder ähnlich kleine Netze das Nameservice-Schwergewicht Bind ins Spiel bringen wäre Overkill. Bis diese Kanone einen Schuss abgibt, sind die Spatzen längst eines natürlichen Todes gestorben. Aber es gibt Leichtgewichte: DNSmasq[1] ist ein solches. Der Nameserver - primär ein NS-Forwarder - ist für den Betrieb an kleinen Netzen mit Dialup-Außenanbindung optimiert. Er läuft unter Linux und FreeBSD und gehört in einigen Distributionen (Debian, Gentoo) zur Serienausstattung.
DNS-Anfragen nach externen Adressen leitet DNSmasq an den übergeordneten Nameserver aus »/etc/resolv.conf« weiter. Falls die Leitung nicht steht, liefert DNSmasq sofort einen Timeout - und nicht erst nach Minuten, in denen der Client gebannt auf Antwort wartet. Die Namen der Rechner im internen Netz zieht sich DNSmasq aus der lokalen »/etc/hosts«-Datei, die ich somit nur noch an einem, dem DNSmasq-Rechner pflegen muss.
Als Clou bringt die GPL-Software ihren eigenen DHCP-Server mit. Die Hochzeit von DNS und DHCP macht es möglich, dass einem bestimmten Client - identifizierbar an seiner MAC-Adresse - immer dieselbe IP zugeteilt wird und per DNS auch der richtige Name.
Jetzt nehme ich DNSmasq in Betrieb: Soll die Software als reiner Nameserver ohne DHCP laufen, bin ich rapito fertig. Denn mit der vorhandenen »/etc/resolv .conf«-Datei für den übergeordneten DNS und den Einträgen aus »/etc/hosts« für die Lokalrechner ist schon finito! Ich kann DNSmasq einfach starten.
Wenn's etwas mehr Komfort sein soll, zum Beispiel die automatische Ergänzung des Domainnamens, wenn nur ein Hostname eingegeben wird, reicht ein Zweizeiler in der Konfigurationsdatei. Sie heißt »/etc/dnsmasq.conf«:
expand-hosts domain=meinedomain.tld
Soll auch DHCP zum Zuge kommen, bedarf es eines weiteren Eintrags. Soll der DHCP-Server die Adressen 10.0.0.20 bis 10.0.0.50 mit einer Lease-Time von sechs Stunden verteilen, sieht er so aus:
dhcp-range=10.0.0.20,10.0.0.50,255.255.255.0,6h
Jetzt möchte ich, dass meine Workstation mit dem Hostnamen »salami« (alle meine Rechner heißen nach Pizzen) immer die IP-Adresse 10.0.0.10 statisch zugewiesen bekommt. Das ginge theoretisch mit der Zeile:
dhcp-host=salami,10.0.0.10,infinite
Aber ich will auch die MAC-Adresse geprüft haben - andernfalls könnte ja jede Pizza kommen und sich »salami« nennen! Daher heißt meine Zeile:
dhcp-host=11:de:ad:be:ef:11,salami,10.0.0.10,infinite
Damit habe ich eine funktionierende Basiskonfiguration. DNSmasq besitzt noch viele Schräubchen zum Drehen. Das mitgelieferte »exmaple«-Konfigfile kann ich hierfür heiß empfehlen, denn es ist mustergültig kommentiert. (jk)
Infos |
[1] DNSmasq: [http://thekelleys.org.uk/dnsmasq/doc.html] |