[[Vorlage(Getestet, general)]] {{{#!vorlage Wissen [:Pakete_installieren: Installation von Programmen] [:Paketquellen_freischalten: Bearbeiten von Paketquellen] [:Editor: Einen Editor öffnen] }}} [[Inhaltsverzeichnis()]] [http://thekelleys.org.uk/dnsmasq/doc.html Dnsmasq] {en} ist ein einfacher DNS- und DHCP-Server für kleine Netzwerke. Es werden die Namen aus dem lokalen Netz entsprechend der Datei [:hosts: /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 = Das Programm ist in den Paketquellen von Ubuntu vorhanden. Es kann über das Paket * '''dnsmasq''' (''universe'', [2]) installiert werden [1]. = Konfiguration als DNS-Server = Dnsmasq greift zur lokalen Namensauflösung auf die '''[:hosts: /etc/hosts]''' zurück. Daher sollte man diese Datei mit einem Editor mit Root-Rechten bearbeiteten [3] und Zeilen in dieser Art hinzufügen. {{{## 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 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 }}} Als Beispiel-Domain wird ''"foo.bar"'' genutzt. Üblicherweise besitzt man in einem LAN keine echte Domain, man kann hier also irgendeine Bezeichnung nutzen, die nicht im Internet vorkommt. Damit alle DNS-Anfragen über Dnsmasq verarbeitet und bei Bedarf an externe DNS-Server weitergereicht werden, ist der einfachste Weg die Datei '''/etc/resolv.conf''' zu bearbeiten. Dabei ist sicher zu stellen, dass der lokale DNS-Server (Dnsmasq) als erste Zeile eingetragen wird (127.0.0.1), danach muss mindestens ein weiterer DNS-Server festgelegt werden, damit Dnsmasq die Anfrage weiter reichen kann. Beispiel mit Weiterleitung an DNS-Cache der Fritz-Box: {{{ nameserver 127.0.0.1 nameserver 192.168.178.1 }}} Achtung: Bei der Verwendung von WICD wird '''resolv.conf''' automatisch verwaltet/überschrieben, daher muss man statische DNS in ebendieser Reihenfolge festlegen. Soll Dnsmasq wirklich nur als DNS-Server arbeiten, muss man nichts mehr konfigurieren. Rechner im LAN, die diesen DNS-Server nutzen müssen, sollten danach so konfiguriert werden, dass sie den Server auch nutzen. Bei Windows-Systemen geht dies in den Netzwerkeinstellungen und auch bei Linux-Clients lässt sich der zu nutzende DNS-Server leicht [:IP-Adresse_wechseln:einstellen]. = Konfiguration als DHCP-Server = Soll Dnsmasq zusätzlich noch als DHCP-Server fungieren, so muss man noch die Datei '''/etc/dnsmasq.conf''' entsprechend bearbeiten [3]. Üblicherweise muss hier nicht viel eingestellt werden. Die wichtigsten Optionen werden im folgenden vorgestellt. == IP-Bereich == {{{# Uncomment this to enable the integrated DHCP server, you need # to supply the range of addresses available for lease and optionally # a lease time. If you have more than one network, you will need to # repeat this for each network on which you want to supply DHCP # service. dhcp-range=192.168.0.100,192.168.0.255,12h ## 12h ist die Lease-Time }}} In diesem Abschnitt wird festgelegt, aus welchem Bereich der DHCP-Server Adressen vergibt. Üblicherweise kann man hier IP-Bereiche eintragen, die für [http://de.wikipedia.org/wiki/Private_Netze Private Netze] {de} vorgesehen sind. Im angegebenen Beispiel würde der DHCP-Server Adressen aus dem Bereich ''"192.168.0.100"'' bis ''"192.168.0.255"'' vergeben und die Zuordnung Rechner <-> IP für jeweils 12 Stunden beibehalten. == Feste IPs zuordnen == === Beispiel 1 === Für manche Anwendungen ist es praktisch, wenn ein Rechner immer unter der selben IP zu erreichen ist. Wenn man dies möchte, so kann man der [wikipedia:MAC-Adresse:] der Netzwerkkarte des betroffenen Rechners eine feste IP zuordnen. {{{dhcp-host=00:07:95:26:2B:C9,neo,192.168.1.2,infinite }}} In diesem Beispiel würde also der Netzwerkkarte mit der MAC-Adresse ''"00:07:95:26:2B:C9"'' immer der Name ''"neo"'' und die IP ''"192.168.1.2"'' für eine unbestimmte Zeit zugewiesen. === Beispiel 2 === Benutzt man zum Beispiel ein Notebook, was im Wechsel mal per Kabelnetzwerk, mal via WLAN vernetzt ist, wird dies anhand der MAC-Adresse erkannt und eine freie IP-Adresse vergeben. {{{dhcp-host=00:00:0E:D2:DA:BE,link,infinite dhcp-host=00:02:2d:a9:55:92,link,infinite }}} Zahlreiche weitere Beispiele und Konfigurationsmöglichkeiten sind in der '''/etc/dnsmasq.conf''' selber aufgeführt. == DHCP-Server Optionen == Der DHCP-Server kann seinen Client-Rechnern nicht nur IPs zuweisen, sondern auch alle notwendigen Netzwerkinformationen übermitteln. Diese und noch weitere Einstellungen lassen sich ebenfalls in der '''/etc/dnsmasq.conf''' setzen. === Gateway === {{{## Syntax: erst die Option, dann die entsprechende Adresse dhcp-option=3,192.168.1.1 }}} Die IP-Adresse des [wikipedia:Gateway_(Computer):Gateways], um Daten in das Internet schicken zu können. Läuft Dnsmasq auf dem selben Rechner, der sich auch in das Internet einwählt, so ist das die lokale IP des Rechners. === NTP-Server === {{{dhcp-option=42,130.133.1.10 # Timeserver time.fu-berlin.de }}} Der zu nutzende [wikipedia:Network_Time_Protocol:NTP] Zeitserver, um die exakte Uhrzeit aus dem Internet zu beziehen. === PXE-Server === {{{dhcp-boot=/pxelinux.0,zeus,192.168.1.11 }}} Eine lokaler Rechner mit [wikipedia:Preboot_Execution_Environment:PXE-Boot-Images], um über das Netzwerk den Rechner booten zu können === Loglevel === {{{log-queries }}} Für Tests kann man den Loglevel erhöhen. Also die Menge der Informationen, die [:Logdateien:mitgeloggt] wird. So kann man bei Fehlern oder Problemen schnell auf die Lösung kommen. Welche IP-Adressen Dnsmasq gerade vergeben hat kann man in der Datei '''/var/lib/misc/dnsmasq.leases''' nachlesen. === Weitere DNS-Server === {{{server=/localnet/IP-Adresse_des_MasterDNS }}} Sollten sich im Netzwerk noch weitere DNS-Server befinden, so kann man diese hier noch zusätzlich angeben. = Links = * [http://wiki.debian.org/HowTo/dnsmasq] ---- # tag: Netzwerk, Server, dhcp, dns