
Wie überprüfe ich dnsmasq
die Konfiguration?
dnsmasq
konnte früher ausführliche Informationen über sich selbst in geben /var/log/daemon.log
, wie in erläutertDNSMASQ-Test.
Als ich jedoch meinen DNSMASQ-Dienst neu gestartet habe, wurde nichts protokolliert /var/log/daemon.log
:
% echo " *** DEBUG `date --rfc-3339=seconds` DEBUG *** " >> /var/log/daemon.log
% service dnsmasq restart
* Restarting DNS forwarder and DHCP server dnsmasq [ OK ]
% tail /var/log/daemon.log
*** DEBUG 2013-11-27 23:04:08-05:00 DEBUG ***
Dies ist Ubuntu 13.10 Saucy.
Antwort1
--no-daemon
dnsmasq
druckt Fehler auf dem Terminal aus, wenn Sie es direkt ausführen, z. B. dnsmasq --no-daemon
oder mit allen Protokollierungsoptionen:
$ dnsmasq --no-daemon --log-queries=extra --log-dhcp --log-debug -C /path/to/dnsmasq.conf
dnsmasq
versucht selbstständig, dnsmasq zu starten, und gibt eine Zeilennummer in der Konfiguration aus, wenn es dort Probleme findet.
--prüfen
dnsmasq --test
führt grundlegende Syntaxprüfungen der Konfigurationsdateien durch. Bei erfolgreichem Abschluss sollte es etwa Folgendes ausgeben:
$ dnsmasq --test
dnsmasq: syntax check OK.
Ein vorgetäuschter Misserfolg sieht aus wie
$ echo 'A-VERY-BAD-OPTION' > /tmp/tmp.conf
$ dnsmasq -C /tmp/tmp.conf --test
dnsmasq: bad option at line 1 of /tmp/tmp.conf
Berechtigungen
Wenn Sie ohne sudo
diese Option eine gute Konfiguration testen, sollte dnsmasq schließlich den Punkt erreichen, an dem es versucht, mit dem Abhören auf Port 53 zu beginnen, was jedoch aufgrund von Berechtigungen fehlschlägt.
Wenn Sie verwenden sudo
(oder in der Konfiguration oder höher festlegen port=1024
), sollte dnsmasq tatsächlich gestartet werden, aber dann müssen Sie kill
den Vorgang möglicherweise manuell ausführen. Wenn Sie mit ausgeführt haben --no-daemon
, ist dies mit einfach Ctrl-C.
Antwort2
Soweit ich weiß, loggt sich dnsmasq normalerweise in den Syslog-Dienst ein. Standardmäßig wird die Einrichtung DAEMON verwendet.
FWIW: „Bei mir funktioniert es“ (in Fedora 18/19).
Wenn Sie keine Nachrichten sehen, empfehle ich Ihnen, Ihre Syslog-Konfiguration zu überprüfen. Oder versuchen Sie es empirischer mit etwas wie „grep -c dnsmasq /var/log/*“.
Siehe auch die detaillierte Beschreibung der Protokollierung auf dieser Manualpage: http://www.thekelleys.org.uk/dnsmasq/docs/dnsmasq-man.html
Dort werden einige andere Möglichkeiten zur Protokollierung erwähnt, die das Verhalten beeinflussen können, z. B. ob die Einrichtung das Zeichen „/“ enthält.
Führen andere Subsysteme das (Sys-)Logging korrekt durch? Können Sie mit dem Befehl „Logger“ das Logging einer Meldung durch Syslog veranlassen?
HTH!
Robb.
Antwort3
DNSMASQ ist eine der gängigen DNS/DHCP-Cace-Lösungen unter Linux/Unix, einige gute Links:
help.ubuntu.com/community/Dnsmasq manpages.ubuntu.com/manpages/lucid/man8/dnsmasq.8.html wiki.debian.org/HowTo/dnsmasq
- Schritte zur Überprüfung: Aktivieren Sie die Debug-Protokollierung unter /etc/dnsmasq.conf:
Protokollabfragen
Protokoll-DHCP
- Führen Sie dann einen Neustart durch und achten Sie auf Protokolle, wenn Sie den Hostnamen ausgraben:
Bei Debian-Varianten protokolliert dnsmasq standardmäßig in /var/log/syslog.