dnsmasq не может разрешить запросы и перезапустить после спящего режима

Я еще один пользователь, пытающийся развернуть systemd-resolved, NetowrkManager и dnsmasq horror с добавлением проприетарного vpn, который мешает с /etc/resolve.conf.

хочу, чтобы dnsmasq был моим единственным преобразователем. Поэтому я отключил конфигурацию dns как systemd-resolved, так и NetworkManager:

● systemd-resolved.service - Network Name Resolution
     Loaded: loaded (/usr/lib/systemd/system/systemd-resolved.service; disabled; vendor preset: enabled)
     Active: inactive (dead)
# Configuration file for NetworkManager.
# See "man 5 NetworkManager.conf" for details.

[main]
dns = none

dnsmasq, очевидно, включен в systemd:

● dnsmasq.service - dnsmasq - A lightweight DHCP and caching DNS server
     Loaded: loaded (/usr/lib/systemd/system/dnsmasq.service; enabled; vendor preset: disabled)

Проблема в том, что dnsmasq работает только до того момента, когда я переведу свой ноутбук в режим сна. После этого процесс dnsmasq все еще присутствует в списке процессов, время ожидания всех запросов истекает (я не уверен, принимает ли их dnsmasq вообще), и его нельзя перезапустить до полной перезагрузки по непонятной причине:

Sep 27 10:59:05 varmint systemd[1]: dnsmasq.service: Scheduled restart job, restart counter is at 4.
Sep 27 10:59:05 varmint systemd[1]: Stopped dnsmasq - A lightweight DHCP and caching DNS server.
Sep 27 10:59:05 varmint systemd[1]: Starting dnsmasq - A lightweight DHCP and caching DNS server...
Sep 27 10:59:05 varmint dnsmasq[9896]: dnsmasq: syntax check OK.
Sep 27 10:59:05 varmint dnsmasq[9897]: dnsmasq: failed to create listening socket for 127.0.0.1: Cannot assign requested address
Sep 27 10:59:05 varmint dnsmasq[9897]: failed to create listening socket for 127.0.0.1: Cannot assign requested address
Sep 27 10:59:05 varmint dnsmasq[9897]: FAILED to start up
Sep 27 10:59:05 varmint systemd[1]: dnsmasq.service: Main process exited, code=exited, status=2/INVALIDARGUMENT
Sep 27 10:59:05 varmint systemd[1]: dnsmasq.service: Failed with result 'exit-code'.
Sep 27 10:59:05 varmint systemd[1]: Failed to start dnsmasq - A lightweight DHCP and caching DNS server.
Sep 27 10:59:05 varmint systemd[1]: dnsmasq.service: Scheduled restart job, restart counter is at 5.
Sep 27 10:59:05 varmint systemd[1]: Stopped dnsmasq - A lightweight DHCP and caching DNS server.
Sep 27 10:59:05 varmint systemd[1]: dnsmasq.service: Start request repeated too quickly.
Sep 27 10:59:05 varmint systemd[1]: dnsmasq.service: Failed with result 'exit-code'.
Sep 27 10:59:05 varmint systemd[1]: Failed to start dnsmasq - A lightweight DHCP and caching DNS server.

Согласно netstat и ss, 127.0.0.1:53 ничего не слушает, что и ожидается, поскольку процесс dnsmasq в данный момент не запущен. Я не могу найти ничего, связанного с выводом journalctl. Я наблюдаю такое же поведение, если переключаюсь на dnsmasq, управляемый NetworkManager.

update: я пробовал выполнить привязку, чтобы посмотреть, является ли проблема шире, чем просто dnsmasq. вот что я вижу после пробуждения:

Sep 27 12:16:44 varmint named[6605]: no longer listening on 127.0.0.1#53
Sep 27 12:16:44 varmint named[6605]: no longer listening on ::1#53

думаю, это может быть ключом ко всему

Что не так? Как я могу это отладить? Кто-нибудь видел что-то подобное и имел какие-нибудь подсказки?

Дополнительная информация:

Операционная система: Manjaro 20 KDE
Ядро: 5.8.6-1-MANJARO
dnsmasq установлен как официальный пакет 2.82-2
dnsmasq systemd unit:

[Unit]
Description=dnsmasq - A lightweight DHCP and caching DNS server
Documentation=man:dnsmasq(8)
After=network.target
Before=network-online.target nss-lookup.target
Wants=nss-lookup.target

[Service]
Type=dbus
BusName=uk.org.thekelleys.dnsmasq
ExecStartPre=/usr/bin/dnsmasq --test
ExecStart=/usr/bin/dnsmasq -k --enable-dbus --user=dnsmasq --pid-file
ExecReload=/bin/kill -HUP $MAINPID
Restart=on-failure
PrivateDevices=true
ProtectSystem=full

[Install]
WantedBy=multi-user.target
1
задан 27 September 2020 в 12:19
1 ответ

Похоже, это был ад, вызванный самим собой. Вся настройка нужна только для работы с какой-то средой, требующей отлова специальных имен и разрешения их в предопределенные локальные адреса в 172, которые тоже приходится привязывать вручную. Последнее было сделано через systemd-networkd через пользовательский файл в /etc/systemd/network/; после удаления все начинает нормально работать.

0
ответ дан 27 September 2020 в 09:40

Теги

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