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.demuss 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: 58Hier 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-hostsDamit ist die Grundkonfiguration geschaffen.
Bereich festlegen
dhcp-range=192.168.0.100,192.168.0.254,12hDies 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,infiniteDer 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.1vergibt an alle Clients das Gateway 192.168.1.1
NTP
dhcp-option=42,130.133.1.10Der 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.255Die 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,6hKlienten 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
http://wiki.ubuntuusers.de/Dnsmasq
http://wiki.ubuntuusers.de/Router#Portweiterleitung
http://wiki.ubuntuusers.de/OpenVPN#OpenVPN-als-Default-Gateway \
route add -net 204.54.144.0/24 eth0