systemd запускает dnsmasq прежде, чем запустить администратора сети?

Смотрит на меня, что мой systemd запускает dnsmasq прежде, чем запустить администратора сети. Как я могу подтвердить это? То, как я могу вызвать systemd, запускает dnsmasq после запуска администратора сети?

Причина позади этого, как объяснено в NetworkManager, не обновляющем/var/run/networkmanager/resolv.conf,

  • Я использую dnsmasq в качестве своего сервера DNS LAN, и
  • Я определил свои два IP-адреса в NetworkManager.

То, когда моя система запустилась, мой dnsmasq не работает, и я нашел, что причина - это, не слушает мои два IP-адреса вообще. Только после перезапуска его, он начал слушать мои два IP-адреса:

$ lsof -i tcp:53
COMMAND   PID            USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
systemd-r 544 systemd-resolve   13u  IPv4  18667      0t0  TCP 127.0.0.53:domain (LISTEN)
dnsmasq   793         dnsmasq    5u  IPv4  23719      0t0  TCP localhost.my.box.name:domain (LISTEN)
dnsmasq   793         dnsmasq    7u  IPv6  23721      0t0  TCP ip6-localhost:domain (LISTEN)

/etc/init.d/dnsmasq restart
[ ok ] Restarting dnsmasq (via systemctl): dnsmasq.service.

$ lsof -i tcp:53
COMMAND     PID            USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
systemd-r   544 systemd-resolve   13u  IPv4  18667      0t0  TCP 127.0.0.53:domain (LISTEN)
dnsmasq   17895         dnsmasq    5u  IPv4 601091      0t0  TCP 192.168.0.10:domain (LISTEN)
dnsmasq   17895         dnsmasq    7u  IPv4 601093      0t0  TCP 192.168.0.11:domain (LISTEN)
dnsmasq   17895         dnsmasq    9u  IPv4 601095      0t0  TCP localhost...

$ lsb_release -a 
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 18.04.1 LTS
Release:        18.04
Codename:       bionic

# my systemd is not the latest but I think that shouldn't matter:
$ apt-cache policy systemd
systemd:
  Installed: 237-3ubuntu10
  Candidate: 237-3ubuntu10.9
  Version table:
     237-3ubuntu10.9 500
        500 http://security.ubuntu.com/ubuntu bionic-security/main amd64 Packages
        500 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 Packages
 *** 237-3ubuntu10 500
        500 http://archive.ubuntu.com/ubuntu bionic/main amd64 Packages
        100 /var/lib/dpkg/status

Обновление:

@heynnema, спасибо за systemd-analyze --no-pager blame, Я подтвердил, что порядок запуска как ожидалось

NetworkManager-> systemd-разрешенный-> dnsmasq.

Так действительно это - о dnsmasq и systemd-разрешенном продвижении на каждого пальцы ног других. Я добавил DNSStubListener=no с тех пор. У меня есть два вопроса о развитии теперь.

  • Почему это хорошо для dnsmasq restart работать просто великолепно? То, что это хорошо работало произвело мне впечатление, что нормально иметь их обоих работа.
  • На самом деле я использовал systemctl stop systemd-resolved и systemctl disable systemd-resolved полностью отключить systemd-разрешенный, вместо того, чтобы просто остановить его слушателя ранее. Я не знаю, почему это не сохраняется по перезагрузке.
2
задан 11 March 2019 в 00:06

2 ответа

У меня была та же проблема, но только в 16,04 системах, обновленных к 18,04. Я также использую dnsmasq в качестве своего DNS LAN и сервера DHCP.
На недавно установленных 18.04 это работает из поля, не имея необходимость изменять /etc/systemd/resolved.conf (DNSStubListener).

0
ответ дан 2 December 2019 в 06:28

Неразрешенная ошибка в Ubuntu 18.04. Я покажу Вам, как я работал вокруг этого. Возможно, у других есть более изящное решение, но я начну дело со своим собственным.

Проблема живет в разделе [Unit] в After= директива, которая должна быть изменена следующим образом для повышения dnsmasq.service, неповрежденного на начальной загрузке:

sed -i 's/After=network.target/After=NetworkManager-wait-online.service/' /lib/systemd/system/dnsmasq.service

При тестировании я первоначально попробовал After=NetworkManager.service который казался разумным выбором. Но после перезагрузки dnsmasq все еще повышался поврежденный на начальную загрузку. Таким образом, я сделал:

systemd-analyze critical-chain

И найденный NetworkManager-wait-online.service запущенный еще позже. Это - то, как я нашел соответствующий относительный порядок, в котором можно повысить dnsmasq.service. HTH Вы, если Вы споткнулись на эту проблему -

0
ответ дан 2 December 2019 в 06:28

Другие вопросы по тегам:

Похожие вопросы: