| FOTO | AUTO | EDV | AUDIO |

Kleine Netze mit dnsmasq verwalten

Dnsmasq 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

Installation

yum install dnsmasq

Konfiguration

DNS

Dnsmasq greift zur lokalen Namensauflösung auf die /etc/hosts zurück. Alle dort eingetragenen Adressen werden aufgelöst

## Lokales Netzwerk
#  = IP =     =  Domainname =    = Rechnername =
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

Weiter muss die Datei /etc/resolv.conf angepasst werden, damit der lokale DNS auch abgefragt werden kann:

nameserver 127.0.0.1
nameserver 80.69.102.158
nameserver 80.69.100.102

Test

dig yahoo.de
muss ergeben:
; <<>> 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: 16255
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0

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

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

;; Query time: 11 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Fri Sep 28 11:06:41 2012
;; MSG SIZE  rcvd: 58
Hier ist die Zeile ;; SERVER: 127.0.0.1#53(127.0.0.1) wichtig. Sie gibt aus dass der lokal DNS verwendet wurde.

DHCP

Der DHCP wird in der Datei /etc/dnsmasq.conf konfiguriert:

domain=creutz.net     # Domänenname
interface=eth0        # Interface
bogus-priv            
domain-needed         
expand-hosts
Damit ist die Grundkonfiguration geschaffen.

Bereich festlegen

dhcp-range=192.168.0.100,192.168.0.254,12h
Dies bedeutet:

  • Adressrange: ab 192.168.0.100 bis 192.168.0.254
  • Leasetime: 12 Stunden

Feste Ip zuweisen

dhcp-host=00:07:95:26:2B:C9,neo,192.168.1.2,infinite
Der MAC 00:07:95:26:2B:C9 wird die IP 192.168.1.2 auf unbestimmte Zeit (infinite) zugewiesen und der Name neo vergeben.

Gateway

dhcp-option=3,192.168.1.1
vergibt an alle Clients das Gateway 192.168.1.1

NTP

dhcp-option=42,130.133.1.10
Der Zeitserver mit der IP 130.133.1.10 wird verbreitet

PXE

PXE Server hosten Images um PCs darüber im Netzwerk booten zu können

dhcp-boot=/pxelinux.0,zeus,192.168.1.11

Weitere Oprionen

# general DHCP stuff (see RFC 2132)
   #
   # 1:  subnet masq
   # 3:  default router
   # 6:  DNS server
   # 12: hostname
   # 15: DNS domain (unneeded with option 'domain')
   # 28: broadcast address
   # 42: time server
   #
   dhcp-authoritative
   dhcp-leasefile=/var/lib/misc/dnsmasq.leases
   dhcp-option=1,255.255.255.0
   dhcp-option=3,192.168.1.254
   dhcp-option=6,192.168.1.254
   dhcp-option=28,192.168.1.255
Die Datei /var/lib/misc/dnsmasq.leases stellt hierbei eine DHCP-Lease Datenbank dar. In ihr können Gruppen mit verschiedenen Leasezeiten definiert werden:
   # dynamic DHCP range with a 2 hour lease
   #
   dhcp-range=192.168.1.101,192.168.1.110,2h

   # static DHCP hosts with a 6 hour lease
   #
   dhcp-host=00:11:09:b9:e8:7c,fixed01,6h
   dhcp-host=00:50:bf:54:e7:16,fixed02,6h
   dhcp-host=00:08:02:d4:a4:00,fixed03,6h
   dhcp-host=08:00:20:80:7b:1b,fixed04,6h
   dhcp-host=00:00:6b:77:9f:7c,router,6h
Klienten mit einer unbekannten MAC müssen ihre von dnsmasq erhaltene IP und Hostnamen nach 2 Stunden, Klienten mit bekannter MAC brauchen die Angaben erst nach 6 Stunden zu re-leasen.

Clients testen

cat /var/lib/misc/dnsmasq.leases 

Links