Как проверить dnsmasq
конфигурацию?
dnsmasq
раньше мог давать подробную информацию о себе в /var/log/daemon.log
, как объяснено вТестирование DNSmasq.
Однако, когда я перезапустил службу dnsmasq, в журнале ничего не зарегистрировано /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 ***
Это Ubuntu 13.10 Saucy.
решение1
--no-демон
dnsmasq
выведет ошибки на терминал, если вы запустите его напрямую, т.е. dnsmasq --no-daemon
или со всеми параметрами ведения журнала:
$ dnsmasq --no-daemon --log-queries=extra --log-dhcp --log-debug -C /path/to/dnsmasq.conf
dnsmasq
самостоятельно попытается запустить dnsmasq и выдаст номер строки в конфигурации, если обнаружит там какие-либо проблемы.
--тест
dnsmasq --test
выполнит базовые проверки синтаксиса в файлах конфигурации. В случае успеха должно быть выведено что-то вроде
$ dnsmasq --test
dnsmasq: syntax check OK.
Надуманный провал выглядит так
$ echo 'A-VERY-BAD-OPTION' > /tmp/tmp.conf
$ dnsmasq -C /tmp/tmp.conf --test
dnsmasq: bad option at line 1 of /tmp/tmp.conf
разрешения
Если вы проверите sudo
хорошую конфигурацию без этого, dnsmasq в конечном итоге достигнет стадии, на которой попытается начать прослушивание порта 53, но это не удастся из-за разрешений.
Если вы используете sudo
(или вы установили port=1024
или выше в конфигурации), то dnsmasq должен фактически начать работать, но тогда вам, возможно, придется kill
вручную запускать процесс. Если вы запускали с --no-daemon
, это легко сделать с Ctrl-C.
решение2
AFAIK dnsmasq обычно регистрируется в службе syslog. По умолчанию он использует facility DAEMON.
FWIW: «У меня это работает» (в Fedora 18 / 19).
Если вы не видите никаких сообщений, я бы посоветовал проверить конфигурацию syslog. Или, более эмпирический подход, попробуйте что-то вроде "grep -c dnsmasq /var/log/*".
Подробное описание процесса входа смотрите также на странице руководства здесь: http://www.thekelleys.org.uk/dnsmasq/docs/dnsmasq-man.html
Там упоминаются и другие возможности ведения журнала, которые могут повлиять на его поведение, например, если facility содержит символ «/».
Правильно ли ведутся другие подсистемы (sys-)журналирования? Можно ли заставить syslog записать сообщение, используя команду 'logger'?
ХТН!
Робб.
решение3
DNSMASQ — одно из распространенных решений DNS/DHCP CACE в Linux/Unix, несколько хороших ссылок:
help.ubuntu.com/community/Dnsmasq manpages.ubuntu.com/manpages/lucid/man8/dnsmasq.8.html wiki.debian.org/HowTo/dnsmasq
- Шаги проверки: включите ведение журнала отладки в /etc/dnsmasq.conf:
log-queries
log-dhcp
- Затем перезапустите и следите за журналами, когда вы копаете имя хоста:
В вариантах Debian dnsmasq по умолчанию записывает журналы в /var/log/syslog.