DNSMASQ не стартует при перезагрузке

Автор peterer, 02 декабря 2018, 12:52:08

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

peterer

У меня сеть 4G, подключение через роутер с адресом 198.162.10.1
Установил dnsmasq, dnsutils
Настроил файл dnsmasq.conf:
dhcp-authoritative
listen-address=127.0.0.1
dhcp-range=192.168.10.10,192.168.10.250,255.255.255.0,2h           
dhcp-option=option:ntp-server,192.168.10.1                       

resolv-file=/etc/resolv.conf

interface=eth0

domain=peterer.ya                                                   
domain-needed                                                       
bogus-priv                                                           
strict-order                                                   
address=/gate.local/192.168.10.1                                       
local=/home/                                                           
#log-queries 
stop-dns-rebind   
cache-size=1000                                         


Когда вводишь в терминале /etc/init.d/dnsmasq - все работает, кеш сохраняется.
Но при перезагрузке dnsmasq не стартует.

При попытке включить в systemctl включается
systemctl enable dnsmasq
Synchronizing state for dnsmasq.service with sysvinit using update-rc.d...
Executing /usr/sbin/update-rc.d dnsmasq defaults
insserv: warning: script 'K01hdparm_park' missing LSB tags and overrides
insserv: warning: script 'K01trim' missing LSB tags and overrides
insserv: warning: script 'hdparm_park' missing LSB tags and overrides
insserv: warning: script 'trim' missing LSB tags and overrides
Executing /usr/sbin/update-rc.d dnsmasq enable
insserv: warning: script 'K01hdparm_park' missing LSB tags and overrides
insserv: warning: script 'K01trim' missing LSB tags and overrides
insserv: warning: script 'hdparm_park' missing LSB tags and overrides
insserv: warning: script 'trim' missing LSB tags and overrides
root@d:/home/p# systemctl start dnsmasq


НО при перезагрузке опять выключено и опять нужно включать вручную..

Делал юнит в etc/systemd/system - бесполезно

В чем дело?

И как сделать, чтобы dnsmasq сохранял навсегда таблицы сопоставления адресов и IP?
В интернете одна бредятина - одни и теже ГС выкидываются. Искал в течении нескольких часов - одна неработающая, переписанная друг у друга бредятина..

Помогите пжлста

ecc83

Цитата: peterer от 02 декабря 2018, 12:52:08при перезагрузке dnsmasq не стартует.

Я никогда не пользовался dnsmasq, поэтому как его настраивать незнаю.
Ну а заставить его автоматически стартовать, это легко.

Цитата: peterer от 02 декабря 2018, 12:52:08Делал юнит в etc/systemd/system - бесполезно
В чем дело?

Вот тут нужно подробнее. Как делали юнит, с каким содержимым. Возможно дело в том, что неправильно его создали.

Покажите содержимое созданого юнита и ещё, сразу после перезагрузки, покажите вывод:

systemctl status dnsmasq



peterer

Я же написал - при перезагрузке сразу НЕ активный он, dnsmasq/
А на данный сеанс, когда вручную запускаешь, все работает и статус актив
root@d:/home/p# systemctl status dnsmasq
● dnsmasq.service - dnsmasq - A lightweight DHCP and caching DNS server
   Loaded: loaded (/lib/systemd/system/dnsmasq.service; enabled)
  Drop-In: /run/systemd/generator/dnsmasq.service.d
           └─50-dnsmasq-$named.conf, 50-insserv.conf-$named.conf
   Active: active (running) since Вс 2018-12-02 15:39:29 +07; 1h 27min ago
Main PID: 1089 (dnsmasq)
   CGroup: /system.slice/dnsmasq.service
           └─1089 /usr/sbin/dnsmasq -x /var/run/dnsmasq/dnsmasq.pid -u dnsmas...

дек 02 15:39:29 d dnsmasq[1089]: started, version 2.72 cachesize 1000
дек 02 15:39:29 d dnsmasq[1089]: compile time options: IPv6 GNU-getopt D...ct
дек 02 15:39:29 d dnsmasq[1089]: warning: ignoring resolv-file flag beca...et
дек 02 15:39:29 d dnsmasq-dhcp[1089]: DHCP, IP range 192.168.10.10 -- 192...h
дек 02 15:39:29 d dnsmasq-dhcp[1089]: DHCP, sockets bound exclusively to ...0
дек 02 15:39:29 d dnsmasq[1089]: using local addresses only for domain home
дек 02 15:39:29 d dnsmasq[1089]: using nameserver 192.168.10.1#53
дек 02 15:39:29 d dnsmasq[1089]: cleared cache
дек 02 15:39:29 d systemd[1]: Started dnsmasq - A lightweight DHCP and c...r.
дек 02 16:49:21 d systemd[1]: Started dnsmasq - A lightweight DHCP and c...r.
Hint: Some lines were ellipsized, use -l to show in full.
root@d:/home/p#


НЕ СТАРТУЕТ ПРИ ПЕРЕЗАГРУЗКЕ
ни в какую

ecc83

#3
Цитата: peterer от 02 декабря 2018, 13:07:58Я же написал - на данный сеанс, когда вручную запускаешь, все работает и статус актив

Пожалуйста протрите салфеткой монитор и перечитайте мой предыдущее сообщение. Я просил показать содержимое созданого вами юнита.


Цитата: peterer от 02 декабря 2018, 13:07:58НЕ СТАРТУЕТ ПРИ ПЕРЕЗАГРУЗКЕ ни в какую

И не нужно повышать голос, Вам тут никто ничего не должен.
Хотите помощь, извольте давать информацию которую просят в полном объёме.


peterer

Юнит я удалил. Можете помочь в моем вопросе?
1. Меня интересует почему не стартует служба если она внесена в systemctl: systemctl enable dnsmasq
2. Как сделать, чтобы таблицы dnsmasq  - соответствие адресов сайтов сохранялись навсегда?




ecc83

Цитата: peterer от 02 декабря 2018, 13:16:25
1. Меня интересует почему не стартует служба если она внесена в systemctl: systemctl enable dnsmasq

Вероятнее всего потому что ваш сервис стартует ДО того как "поднят" сетевой интерфейс.
Вот поэтому, когда система полностью загружена и вы вручную его стартуете, всё загружается нормально.
Решение: Заставить его при загрузке стартовать позже.

Цитата: peterer от 02 декабря 2018, 13:16:25
2. Как сделать, чтобы таблицы dnsmasq  - соответствие адресов сайтов сохранялись навсегда?

Незнаю. Никогда не настраивал это приложение. Самый очивидный выход, прочтите документацию.

peterer

Спасибо за ответ! Скажите, а как заставить стартовать dnsmasq позже сетевого интерфейса?
Сейчас у меня /etc/network/interfaces такой:

allow-hotplug eth0
iface eth0 inet dhcp

auto lo
iface lo inet loopback

ecc83

Для начала выполните по очереди команды:


update-rc.d dnsmasq defaults
update-rc.d dnsmasq enable
/etc/init.d/dnsmasq start


Если после перезагрузки само не стартует, покажите вывод:

cat /lib/systemd/system/dnsmasq.service

peterer

#8
Не стартует...

root@d:/home/p# cat /lib/systemd/system/dnsmasq.service
[Unit]
Description=dnsmasq - A lightweight DHCP and caching DNS server

[Service]
Type=forking
PIDFile=/var/run/dnsmasq/dnsmasq.pid

# Test the config file and refuse starting if it is not valid.
ExecStartPre=/usr/sbin/dnsmasq --test

# We run dnsmasq via the /etc/init.d/dnsmasq script which acts as a
# wrapper picking up extra configuration files and then execs dnsmasq
# itself, when called with the "systemd-exec" function.
ExecStart=/etc/init.d/dnsmasq systemd-exec

# The systemd-*-resolvconf functions configure (and deconfigure)
# resolvconf to work with the dnsmasq DNS server. They're called liek
# this to get correct error handling (ie don't start-resolvconf if the
# dnsmasq daemon fails to start.
ExecStartPost=/etc/init.d/dnsmasq systemd-start-resolvconf
ExecStop=/etc/init.d/dnsmasq systemd-stop-resolvconf


ExecReload=/bin/kill -HUP $MAINPID

[Install]
WantedBy=multi-user.target
root@d:/home/p#

ecc83

Выполните по-очереди в терминале:


sudo systemctl stop dnsmasq.service
sudo systemctl disable dnsmasq.service
sudo nano /etc/systemd/system/dnsmasq.service


Внутрь редактора вставьте такой текст:


[Unit]
Description=dnsmasq - A lightweight DHCP and caching DNS server
Requires=network.target
After=network.target network-online.target

[Service]
Type=forking
PIDFile=/var/run/dnsmasq/dnsmasq.pid

# Test the config file and refuse starting if it is not valid.
ExecStartPre=/usr/sbin/dnsmasq --test

# We run dnsmasq via the /etc/init.d/dnsmasq script which acts as a
# wrapper picking up extra configuration files and then execs dnsmasq
# itself, when called with the "systemd-exec" function.
ExecStart=/etc/init.d/dnsmasq systemd-exec

# The systemd-*-resolvconf functions configure (and deconfigure)
# resolvconf to work with the dnsmasq DNS server. They're called liek
# this to get correct error handling (ie don't start-resolvconf if the
# dnsmasq daemon fails to start.
ExecStartPost=/etc/init.d/dnsmasq systemd-start-resolvconf
ExecStop=/etc/init.d/dnsmasq systemd-stop-resolvconf


ExecReload=/bin/kill -HUP $MAINPID

[Install]
WantedBy=multi-user.target


Сохраняетесь и выходите. Затем:

sudo systemctl enable dnsmasq.service
sudo systemctl start dnsmasq.service

Перезагрузка и проверяете.

peterer

#10
Спасибо! Но к сожалению, не работает..
root@d:/home/p# systemctl status dnsmasq
● dnsmasq.service - dnsmasq - A lightweight DHCP and caching DNS server
   Loaded: loaded (/etc/systemd/system/dnsmasq.service; enabled)
  Drop-In: /run/systemd/generator/dnsmasq.service.d
           └─50-dnsmasq-$named.conf, 50-insserv.conf-$named.conf
   Active: failed (Result: exit-code) since Вс 2018-12-02 17:54:52 +07; 25s ago
  Process: 652 ExecStart=/etc/init.d/dnsmasq systemd-exec (code=exited, status=2)
  Process: 612 ExecStartPre=/usr/sbin/dnsmasq --test (code=exited, status=0/SUCCESS)

дек 02 17:54:51 d dnsmasq[612]: dnsmasq: syntax check OK.
дек 02 17:54:52 d dnsmasq[652]: unknown interface eth0
дек 02 17:54:52 d dnsmasq[652]: dnsmasq: unknown interface eth0
дек 02 17:54:52 d systemd[1]: dnsmasq.service: control process exited, c...=2
дек 02 17:54:52 d systemd[1]: Failed to start dnsmasq - A lightweight DH...r.
дек 02 17:54:52 d systemd[1]: Unit dnsmasq.service entered failed state.
Hint: Some lines were ellipsized, use -l to show in full.




root@d:/home/p# systemctl status dnsmasq.service
● dnsmasq.service - dnsmasq - A lightweight DHCP and caching DNS server
   Loaded: loaded (/etc/systemd/system/dnsmasq.service; enabled)
  Drop-In: /run/systemd/generator/dnsmasq.service.d
           └─50-dnsmasq-$named.conf, 50-insserv.conf-$named.conf
   Active: failed (Result: exit-code) since Вс 2018-12-02 17:54:52 +07; 38s ago
  Process: 652 ExecStart=/etc/init.d/dnsmasq systemd-exec (code=exited, status=2)
  Process: 612 ExecStartPre=/usr/sbin/dnsmasq --test (code=exited, status=0/SUCCESS)

дек 02 17:54:51 d dnsmasq[612]: dnsmasq: syntax check OK.
дек 02 17:54:52 d dnsmasq[652]: unknown interface eth0
дек 02 17:54:52 d dnsmasq[652]: dnsmasq: unknown interface eth0
дек 02 17:54:52 d systemd[1]: dnsmasq.service: control process exited, c...=2
дек 02 17:54:52 d systemd[1]: Failed to start dnsmasq - A lightweight DH...r.
дек 02 17:54:52 d systemd[1]: Unit dnsmasq.service entered failed state.
Hint: Some lines were ellipsized, use -l to show in full.
root@d:/home/p#



root@d:/home/p# cat /lib/systemd/system/dnsmasq.service
[Unit]
Description=dnsmasq - A lightweight DHCP and caching DNS server

[Service]
Type=forking
PIDFile=/var/run/dnsmasq/dnsmasq.pid

# Test the config file and refuse starting if it is not valid.
ExecStartPre=/usr/sbin/dnsmasq --test

# We run dnsmasq via the /etc/init.d/dnsmasq script which acts as a
# wrapper picking up extra configuration files and then execs dnsmasq
# itself, when called with the "systemd-exec" function.
ExecStart=/etc/init.d/dnsmasq systemd-exec

# The systemd-*-resolvconf functions configure (and deconfigure)
# resolvconf to work with the dnsmasq DNS server. They're called liek
# this to get correct error handling (ie don't start-resolvconf if the
# dnsmasq daemon fails to start.
ExecStartPost=/etc/init.d/dnsmasq systemd-start-resolvconf
ExecStop=/etc/init.d/dnsmasq systemd-stop-resolvconf


ExecReload=/bin/kill -HUP $MAINPID

[Install]
WantedBy=multi-user.target



ecc83

echo "@reboot    root    /bin/sh -c 'sleep 10 && /etc/init.d/dnsmasq restart' >/dev/null 2>&1" | sudo tee -a /etc/crontab

sudo reboot

peterer

Оооо!
Спасибо, добрый человек! Вроде бы заработало!

ecc83