| FOTO | AUTO | EDV | AUDIO |

Kleine Netze mit dnsmasq verwalten

Dnsmasq (http://thekelleys.org.uk/dnsmasq/doc.html) ist ein einfacher DNS- und DHCP-Server für kleine Netzwerke. Es werden die Namen aus dem lokalen Netz entsprechend der Datei /etc/hosts aufgelöst. Unbekannte Namensanfragen werden weitergeleitet und im Cache gespeichert.

Dnsmasq ist somit

  • ein Nameserver-Forwarder
  • ein DHCP-Server
  • optimiert für Netzwerke mit Dialup-Außenverbindung

Es ist nicht empfehlenswert mehrere DNS (Bind) und DHCP Server parallel laufen zu lassen. Daher bitte sicher stellen, dass es zu keinen Konflikten kommt.

Installation

 yum install dnsmasq 

Konfiguration

DNS

Dnsmasq greift zur lokalen Namensauflösung auf die /etc/hosts zurück. Daher sollte man diese Datei mit einem Editor mit Root-Rechten bearbeiteten.

## Local host
127.0.0.1       serverlein.creutz.net   serverlein localhost.localdomain localhost
::1             localhost6.localdomain6 localhost6
 
192.168.1.1     router.foo.bar       router           # Der Router
192.168.1.2     neo.foo.bar          neo              # Workstation
192.168.1.3     felidae.foo.bar      felidae          # ein Rechner
192.168.1.5     link.foo.bar         link             # Notebook
192.168.1.11    zeus.foo.bar         zeus             # Das Serverchen
192.168.1.66    bridge.foo.bar       bridge           # WLAN-Bridge

Damit alle DNS-Anfragen über Dnsmasq verarbeitet und bei Bedarf an externe DNS-Server weitergereicht werden, ist der einfachste Weg, die lokale Datei /etc/resolv.conf des Servers zu bearbeiten. Es können bis zu 3 einträge in der Datei verwendet werden. Der erste Eintrag ist der aktive DNS Server. Die weiteren Einträge greifen nur, wenn sich der erste Server nicht meldet.

vim /etc/resolv.conf
nameserver 127.0.0.1
nameserver 62.27.27.62
Welchen externen DNS Server soll ich eintragen?
Hier ist es ratsam den DNS des eigenen Providers zu verwenden. Dazu unter www.denic.de eine Domänenabfrage des Providers durchführen. Auf der Ergebnisseite sind im unteren Bereich zwei DNS IP-Adressen verzeichnet. Dies sind die DNS des Providers und können von uns verwendet werden.

Einschalten

service dnsmasq start

Test
Das erfolgreiche lokale Cachen überprüft man am Terminal:

 dig yahoo.de 
Die Antwort muss in Etwa so aussehen:
; <<>> DiG 9.3.6-P1-RedHat-9.3.6-20.P1.el5_8.4 <<>> yahoo.de
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 11319
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;yahoo.de.                      IN      A

;; ANSWER SECTION:
yahoo.de.               201     IN      A       77.238.178.122
yahoo.de.               201     IN      A       87.248.120.148

;; Query time: 11 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Tue Oct  9 10:44:40 2012
;; MSG SIZE  rcvd: 58
Die Zeile ;; SERVER: 127.0.0.1#53(127.0.0.1) gibt Auskunft, dass der gefragte DNS unser Localhost ist.

DHCP

Soll Dnsmasq zusätzlich noch als DHCP-Server fungieren, so muss man noch die Datei /etc/dnsmasq.conf entsprechend bearbeiten. Üblicherweise braucht hier nicht viel eingestellt zu werden. Die wichtigsten Optionen werden im folgenden vorgestellt.

IP-Range

 dhcp-range=192.168.0.100,192.168.0.254,2h 
Der DHCP weist die Adressen von 192.168.0.100 bis einschließlich 192.168.0.254 zu. Die Leasetime beträgt 2 Stunden

Feste IP zuweisen

 dhcp-host=00:07:95:26:2B:C9,meteosat,192.168.1.2,24h 
Der Host mit der angegebenen MAC Adresse bekommt immer die angegebene IP-Adresse und ist unter dem Namen meteosat zu erreichen. Die Leasetime beträgt 24 Stunden (nicht vergessen: /etc/hosts anpassen)

Optionen

Nummer Funktion Beispiel
1 subnet masq dhcp-option=1,255.255.255.0
3 default router dhcp-option=3,192.168.1.254
6 DNS server dhcp-option=6,192.168.1.254
12 hostname
15 DNS domain (unneeded with option 'domain')
28 broadcast address dhcp-option=28,192.168.1.255
42 time server dhcp-option=42,130.133.1.10

Weitere Informationen unter http://de.wikipedia.org/wiki/Preboot_Execution_Environment

Leases anzeigen

 cat /var/lib/misc/dnsmasq.leases 
zeigt die aktuell vergebenen Adressen an

Firewall

wenn eine lokale firewall auf dem Server läuft, muss sicher gestellt werden, dass bootp-Anfragen nicht gefiltert werden.

Weitere Informationen