Überprüfen Sie die DNSMASQ-Konfiguration

Überprüfen Sie die DNSMASQ-Konfiguration

Wie überprüfe ich dnsmasqdie Konfiguration?

dnsmasqkonnte 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

dnsmasqdruckt Fehler auf dem Terminal aus, wenn Sie es direkt ausführen, z. B. dnsmasq --no-daemonoder mit allen Protokollierungsoptionen:

$ dnsmasq --no-daemon --log-queries=extra --log-dhcp --log-debug -C /path/to/dnsmasq.conf

dnsmasqversucht selbstständig, dnsmasq zu starten, und gibt eine Zeilennummer in der Konfiguration aus, wenn es dort Probleme findet.

--prüfen

dnsmasq --testfü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 sudodiese 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 killden 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

  1. Schritte zur Überprüfung: Aktivieren Sie die Debug-Protokollierung unter /etc/dnsmasq.conf:

Protokollabfragen
Protokoll-DHCP

  1. 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.

verwandte Informationen