DNS-Server fragt sich selbst

Ich betreibe einen Linux-Router, auf dem dnsmasq als DHCP- und DNS-Server läuft. Wenn PCs im LAN nach internen Hosts fragen, antwortet dnsmasq mit der richtigen IP-Adresse aus /etc/hosts. Doch wenn ein Prozess auf dem Server eine Adresse wissen will, fragt er über /etc/resolv.conf beim externen DNS-Server meines Providers an und bekommt für interne Hosts logischerweise die Antwort „unbekannt“. Wie kriege ich lokale Prozesse auf dem Server dazu, dnsmasq zu fragen?

vorlesen Druckansicht
Lesezeit: 1 Min.

Ich betreibe einen Linux-Router, auf dem dnsmasq als DHCP- und DNS-Server läuft. Wenn PCs im LAN nach internen Hosts fragen, antwortet dnsmasq mit der richtigen IP-Adresse aus /etc/hosts. Doch wenn ein Prozess auf dem Server eine Adresse wissen will, fragt er über /etc/resolv.conf beim externen DNS-Server meines Providers an und bekommt für interne Hosts logischerweise die Antwort „unbekannt“. Wie kriege ich lokale Prozesse auf dem Server dazu, dnsmasq zu fragen?

Tragen Sie 127.0.0.1 als einzigen Nameserver in /etc/resolv.conf ein. Dann fĂĽgen Sie in der Konfigurationsdatei /etc/dnsmasq.conf die neue Zeile

resolv-file=/etc/ppp/resolv.conf

ein (alle Beispiele fĂĽr OpenSuse 11.0). Legt der PPP-Daemon Ihrer Distribution die bei der Anwahl vom Provider ĂĽbermittelten Nameserver in einer anderen Datei ab, nehmen Sie deren kompletten Pfad. Ferner muss bei der listen-address in dnsmasq.conf auch 127.0.0.1 eingetragen sein. Nun starten Sie den dnsmasq-Daemon mit

sudo rcdnsmasq restart

neu.

Damit die geänderte /etc/resolv.conf beim Neuaufbau der DSL-Verbindung nicht überschrieben wird, ändern Sie in der Konfigurationsdatei für den Provider (meist /etc/sysconfig/network/providers/provider0) die Zeile MODIFYDNS=’yes’ auf ’no’. Alternativ bearbeiten Sie die DSL-Einstellungen mit Yast und schalten dort die Option „DNS automatisch abrufen“ ab. (ea)