
Ich habe den DNS-Nameserver der Box in /etc/network/interfaces fest codiert mit
dns-nameservers 8.8.8.8
(Ich muss beim Testen einfach DNS googeln und dabei einen anderen DNS live verwenden.)
Und dann lasse ich dnsmasq auf der Box laufen, als DNS-Cache, aber auch, um einige DNS-Einträge so umzuschreiben, dass sie auf Apache als Proxy verweisen.
Aus irgendeinem Grund konnte ich nicht herausfinden, dass die Box dnsmasq als DNS-Server verwendet, wenn dnsmasq ausgeführt wird, unabhängig davon, wie der DNS-Nameserver eingestellt ist. Wenn ich dnsmasq so eingestellt habe, dass es auf allen Schnittstellen und 127.0.0.1 lauscht, laufen alle Suchvorgänge einfach über dnsmasq, einschließlich derjenigen, die per Proxy gesendet werden sollen, sodass es einfach in einer Schleife gefangen ist, anstatt per Proxy gesendet zu werden. Wenn ich „don't use lo“ verwende und das Lauschen auf 127.0.0.1 auskommentiere, erhalte ich überhaupt kein DNS.
except-interface=lo
#listen-address=127.0.0.1
Es gibt keine iptables-Regel oder etwas, das den gesamten DNS-Verkehr umleitet, sondern nur den Zugriff auf unseren IP-Bereich erlaubt.
Irgendetwas muss mir entgangen sein, aber ich komme nicht darauf.
Wenn DNSMASQ deaktiviert ist, werden Digs über den eingestellten DNS geleitet, wenn DNSMASQ aktiviert ist, werden sie über 127.0.0.1 geleitet.
Irgendwelche Ideen?
Antwort1
Das Startskript in Ubuntu und Debian für dnsmasq fügt die Nameserver beim Starten oder Beenden des Dienstes explizit zu /etc/resolv.conf hinzu.
Um dies zu verhindern, müssen Sie /etc/default/dnsmasq (nicht /etc/dnsmasq.conf) bearbeiten und die Zeile hinzufügen
DNSMASQ_EXCEPT=lo
Dadurch wird verhindert, dass sich dnsmasq automatisch als Nameserver in resolv.conf einstellt. Allerdings werden weiterhin Änderungen vorgenommen, die resolv.conf so einstellen, dass es
nameserver (your nameserver)
nameserver 127.0.0.1