:: Home :: Computing :: Downloads :: Scooter :: Links :: Music :: Nonsense :: Mail :: |
---|
Es ist eine nette Sache, im eigenen LAN
zu betreiben. Man erspart es sich dadurch weitestgehend, ziemlich identische Netzwerk-Konfigurationen auf allen Klienten vorzunehmen und ggfs. ändern zu müssen, sondern hält die Angaben zentral vor.
Die Standard-Programme hierfür sind BIND und DHCP vom ISC, die aber eine relativ komplexe Konfiguration mit sich bringen und für überschaubare LANs deutlich überdimensioniert sind.
Eine deutlich schlankere Alternative ist dnsmasq, der
Ich verwende dnsmasq jetzt schon seit geraumer Zeit auf meinem Router und bin mit dem Programm glücklich und zufrieden.
dnsmasq wird hier im wesentlichen durch die folgenden Dateien konfiguriert:
Eine relativ minimalistische Konfigurationsdatei von dnsmasq, die jedoch alle für mein LAN erforderliche DNS- und DHCP-Funktionalität bietet.
# /etc/dnsmasq.conf -- configuration for DHCP/DNS server dnsmasq # # $Id$ # domain name # domain=example.invalid
Die Domain, für die der DHCP-Teil von dnsmasq zuständig ist und die ggfs. auch anfragenden Hosts mitgeteilt wird.
# interfaces to listen on # interface=lo interface=eth0
Da dnsmasq auf meinem Router installiert ist, soll er nur Anfragen auf dem loopback-device und auf eth0 (der hier ins LAN zeigenden NIC) annehmen.
# general DNS stuff # bogus-priv domain-needed expand-hosts resolv-file=/etc/ppp/resolv.conf # return this host as the MX mail handler # mx-target=router.example.invalid localmx
Mit diesen Anweisungen wird dnsmasq daran gehindert, Anfragen nach privaten IP-Bereichen oder Hostnamen ohne Domain-Teil an seine forwarder weiterzugeben, Hostnamen ohne Domain-Teil aus der /etc/hosts bei Anfragen zu ergänzen und die in der /etc/ppp/resolv.conf eingetragenen DNS als forwarder zu verwenden. Ausserdem wird noch ein MX-Record (MailExchanger) gesetzt.
# 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
Hier wird dnsmasq als massgeblicher DHCP-Server mit einer Lease-Datenbank unterhalb von /var/lib/misc definiert. Ausserdem soll er anfragenden Klienten neben Hostname und IP bestimmte weitere Informationen übermitteln.
# 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.
Diese Datei, die normalerweise eine statische Tabelle zur Namensauflösung der libc darstellt, verwendet dnsmasq zur Auflösung und Übermittlung von lokalen Adressen und Namen.
# /etc/hosts -- hostname-to-address mappings for the TCP/IP subsystem # and zone file for DHCP/DNS daemon dnsmasq(8) # # $Id$ # Localhost # # IPv4 version 127.0.0.1 localhost # LAN (fixed adresses, IPv4 versions) # 192.168.1.1 fixed01.example.invalid fixed01 192.168.1.2 fixed02.example.invalid fixed02 192.168.1.3 fixed03.example.invalid fixed03 192.168.1.4 fixed04.example.invalid fixed04 192.168.1.254 router.example.invalid router # LAN (DHCP leases, IPv4 versions) # 192.168.1.101 dynamic01.example.invalid dynamic01 192.168.1.102 dynamic02.example.invalid dynamic02 192.168.1.103 dynamic03.example.invalid dynamic03 192.168.1.104 dynamic04.example.invalid dynamic04 192.168.1.105 dynamic05.example.invalid dynamic05 192.168.1.106 dynamic06.example.invalid dynamic06 192.168.1.107 dynamic07.example.invalid dynamic07 192.168.1.108 dynamic08.example.invalid dynamic08 192.168.1.109 dynamic09.example.invalid dynamic09 192.168.1.110 dynamic10.example.invalid dynamic10
Klienten, die eine dnsmasq unbekannte MAC haben und aus dem IP-Bereich 192.168.1.101 bis 192.168.1.110 bedient werden, sind hier auch schon als komplette Records einschliesslich Hostnamen erfasst, damit jedwede vorherige Konfiguration der Klienten überflüssig wird.
Mit dieser Datei wird die Namensauflösung der libc konfiguriert. Sie braucht bloss auf dem Rechner, auf dem dnsmasq läuft, angelegt zu werden, da sie über die DHCP-Mechanismen auf den Klienten bei Vergabe einer IP dynamisch vom DHCP-Clienten aus den vom DHCP-Server erhaltenen Informationen angelegt wird.
# /etc/resolv.conf -- resolver configuration # # $Id$ nameserver 127.0.0.1 domain example.invalid search example.invalid
Auf diese Datei greift bloss dnsmasq zu, um seine forwarder, also die DNS, die er wiederum zur Namensauflösung befragt, zu erfahren. In aller Regel werden hier also die DNS des Internet-Providers eingetragen.
# /etc/ppp/resolv.conf -- forwarders for dnsmasq(8) # # $Id$ # # use DNS in Hamburg and Hannover nameserver 217.237.150.225 nameserver 217.237.149.161 nameserver 194.25.0.61
Zurück zur Main-Site |