Установка systemd-resolved убивает поиск DNS

Вопрос или проблема

Обновление
После удаления и повторной установки systemd-resolved проблема, похоже, сама собой исчезла. Я не понимаю, почему так произошло, но заметил, что /etc/resolv.conf не изменяется после второй установки systemd-resolved, хотя он изменился при первой установке пакета.

Проблема:

Я пытаюсь следовать инструкциям по установке Home Assistant с контролем здесь на своем Orange Pi Zero с установленной Debian. Это было настроено из образа для загрузки по сети. После установки пакета systemd-resolved система больше не может находить адреса веб-сайтов. Удаление пакета решает проблему. Это ошибка:

Временная ошибка разрешения 'deb.debian.org'

Наблюдения:

Этого не происходило, когда я использовал образ Armbian для моего устройства, но Home Assistant не поддерживает Armbian, поэтому я пробую с Debian.

Я не могу пинговать веб-адреса (или .locals в моей сети), но могу пинговать IP-адреса.

Работающее против ожидаемого результата:

Ожидаемое (работало до установки systemd-resolved)

jodie@orangePiZero:~$ wget -O homeassistant-supervised.deb https://github.com/home-assistant/supervised-installer/releases/latest/download/homeassistant-supervised.deb
--2023-11-22 00:00:49--  https://github.com/home-assistant/supervised-installer/releases/latest/download/homeassistant-supervised.deb
Разрешение github.com (github.com)... 20.87.245.0
Подключение к github.com (github.com)|20.87.245.0|:443... подключено.
HTTP-запрос отправлен, ожидание ответа... 302 Найдено
Местоположение: https://github.com/home-assistant/supervised-installer/releases/download/1.5.0/homeassistant-supervised.deb [следующее]
--2023-11-22 00:00:50--  https://github.com/home-assistant/supervised-installer/releases/download/1.5.0/homeassistant-supervised.deb
Повторное использование существующего подключения к github.com:443.
HTTP-запрос отправлен, ожидание ответа... 302 Найдено
Местоположение: https://objects.githubusercontent.com/github-production-release-asset-2e65be/183216119/905cc380-f350-4a95-ac33-a2749b7858fa?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20231121%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20231121T220050Z&X-Amz-Expires=300&X-Amz-Signature=21a10eb8987bbe62d3a2826be9ba66ed9476dbbe6015990ad0fb53b46db6224f&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=183216119&response-content-disposition=attachment%3B%20filename%3Dhomeassistant-supervised.deb&response-content-type=application%2Foctet-stream [следующее]
--2023-11-22 00:00:50--  https://objects.githubusercontent.com/github-production-release-asset-2e65be/183216119/905cc380-f350-4a95-ac33-a2749b7858fa?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20231121%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20231121T220050Z&X-Amz-Expires=300&X-Amz-Signature=21a10eb8987bbe62d3a2826be9ba66ed9476dbbe6015990ad0fb53b46db6224f&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=183216119&response-content-disposition=attachment%3B%20filename%3Dhomeassistant-supervised.deb&response-content-type=application%2Foctet-stream
Разрешение objects.githubusercontent.com (objects.githubusercontent.com)... 185.199.108.133, 185.199.109.133, 185.199.110.133, ...
Подключение к objects.githubusercontent.com (objects.githubusercontent.com)|185.199.108.133|:443... подключено.
HTTP-запрос отправлен, ожидание ответа... 200 ОК
Объем: 6504 (6.4K) [application/octet-stream]
Сохранение в: ‘homeassistant-supervised.deb’

homeassistant-supervised.d 100%[=======================================>]   6.35K  --.-KB/s    за 0.002с

2023-11-22 00:00:51 (2.50 MB/s) - ‘homeassistant-supervised.deb’ сохранён [6504/6504]

Не работает:

jodie@orangePiZero:~$ wget -O homeassistant-supervised.deb https://github.com/home-assistant/supervised-installer/releases/latest/download/homeassistant-supervised.deb
--2023-11-22 17:11:35--  https://github.com/home-assistant/supervised-installer/releases/latest/download/homeassistant-supervised.deb
Разрешение github.com (github.com)... не удалось: Временная ошибка разрешения имени.
wget: невозможно разрешить адрес хоста ‘github.com’

Настройка сети:

У меня есть домашний маршрутизатор tp-link, настроенный с резервированием DHCP для MAC-адреса этого устройства. Он находится в той же подсети, что и другие устройства, и не указывает другой DNS-сервер. Я все еще могу подключаться к устройству по ssh (именно так я его в основном настраиваю)

Вопрос:

Существует ли конфигурация, которую мне нужно установить для работы DNS с systemd-resolved?

Запрашиваемая информация:

Содержимое /etc/resolv.conf до установки systemd-resolved:

nameserver 192.168.0.1
nameserver 0.0.0.0

Содержимое после первой установки:

# Это /run/systemd/resolve/stub-resolv.conf управляется man:systemd-resolved(8).
# Не редактируйте.
#
# Этот файл может быть символической ссылкой на /etc/resolv.conf. Если вы смотрите на
# /etc/resolv.conf и видите этот текст, вы следовали символической ссылке.
#
# Это динамический файл resolv.conf для подключения локальных клиентов к
# внутреннему DNS-Stub-разрешателю systemd-resolved. Этот файл перечисляет все
# настроенные домены поиска.
#
# Запустите "resolvectl status", чтобы увидеть детали об используемых в данный момент DNS-серверах uplink.
#
# Третьи программы обычно не должны обращаться к этому файлу напрямую, а только
# через символическую ссылку в /etc/resolv.conf. Чтобы управлять man:resolv.conf(5) другим
# способом, замените эту символическую ссылку на статический файл или другую символическую ссылку.
#
# См. man:systemd-resolved.service(8) для деталей о поддерживаемых режимах
# работы для /etc/resolv.conf.

nameserver 127.0.0.53
options edns0 trust-ad
search .

Содержимое после удаления и повторной установки:

nameserver 192.168.0.1
nameserver 0.0.0.0

Содержимое /etc/nsswitch.conf до установки systemd-resolved:

# /etc/nsswitch.conf
#
# Пример конфигурации функциональности переключателя имен GNU.
# Если у вас установлены пакеты `glibc-doc-reference` и `info`, попробуйте:
# `info libc "Name Service Switch"` для получения информации об этом файле.

passwd:         files systemd
group:          files systemd
shadow:         files systemd
gshadow:        files systemd

hosts:          files dns
networks:       files

protocols:      db files
services:       db files
ethers:         db files
rpc:            db files

netgroup:       nis

Содержимое после первой установки systemd-resolved:

# /etc/nsswitch.conf
#
# Пример конфигурации функциональности переключателя имен GNU.
# Если у вас установлены пакеты `glibc-doc-reference` и `info`, попробуйте:
# `info libc "Name Service Switch"` для получения информации об этом файле.

passwd:         files systemd
group:          files systemd
shadow:         files systemd
gshadow:        files systemd

hosts:          files resolve [!UNAVAIL=return] dns myhostname
networks:       files

protocols:      db files
services:       db files
ethers:         db files
rpc:            db files

netgroup:       nis

Содержимое после удаления и повторной установки systemd-resolved:

# /etc/nsswitch.conf
#
# Пример конфигурации функциональности переключателя имен GNU.
# Если у вас установлены пакеты `glibc-doc-reference` и `info`, попробуйте:
# `info libc "Name Service Switch"` для получения информации об этом файле.

passwd:         files systemd
group:          files systemd
shadow:         files systemd
gshadow:        files systemd

hosts:          files resolve [!UNAVAIL=return] dns myhostname
networks:       files

protocols:      db files
services:       db files
ethers:         db files
rpc:            db files

netgroup:       nis

Прочая информация

Это результат выполнения resolvectl status:

jodie@orangePiZero:~$ resolvectl status
Не удалось получить глобальные данные: время соединения истекло

Это вывод systemctl status systemd-resolved:

jodie@orangePiZero:~$ systemctl status systemd-resolved
● systemd-resolved.service - Разрешение сетевых имен
     Загружено: загружено (/lib/systemd/system/systemd-resolved.service; включено; предустановка: включено)
     Активно: активно (работает) с Вт 2023-11-21 23:09:21 SAST; 24 мин. назад
       Документы: man:systemd-resolved.service(8)
             man:org.freedesktop.resolve1(5)
             https://www.freedesktop.org/wiki/Software/systemd/writing-network-configuration-managers
             https://www.freedesktop.org/wiki/Software/systemd/writing-resolver-clients
   Основной PID: 577 (systemd-resolve)
     Статус: "Обработка запросов..."
      Задачи: 1 (лимит: 1075)
     Память: 2.3M
        CPU: 847ms
     CГруппа: /system.slice/systemd-resolved.service
             └─577 /lib/systemd/systemd-resolved

Кажется, что systemd-resolved как-то устанавливает настройки network-manager в ручной режим, но сохраняет правильный IP-адрес. Чтобы исправить это, вы можете запустить nmtui (интерфейс терминала для управления сетями) из терминала и вернуть настройки сети в автоматический режим (dhcp).

После установки Home Assistant Supervisor и его корректной работы настройки стали управляться Home Assistant Supervisor.

Ответ или решение

Установка systemd-resolved может привести к проблемам с разрешением DNS, особенно если он неправильно настроен или если у вас уже есть активные сетевые услуги, такие как NetworkManager. Давайте разберемся, как вы можете решить эту проблему, на основе описанной вами ситуации.

Анализ проблемы

Судя по вашему описанию, после окончания установки systemd-resolved ваше устройство не может разрешать доменные имена, хотя IP-адреса обрабатываются корректно. Это может быть связано с тем, что /etc/resolv.conf был изменен на конфигурацию systemd-resolved, которая указывает на локальный DNS-стаб (127.0.0.53). В этом случае необходимо убедиться, что служба правильно настроена и активна.

Правильная настройка systemd-resolved

  1. Проверка статуса службы: Убедитесь, что systemd-resolved запущен и активен. Используйте команду:

    systemctl status systemd-resolved
  2. Проверка состояния DNS: Выполните команду:

    resolvectl status

    Если оно выдаёт ошибку подключения, это может указывать на проблемы с самой службой или неправильную конфигурацию.

  3. Настройка /etc/resolv.conf: Убедитесь, что /etc/resolv.conf правильно настроен. После установки systemd-resolved, этот файл должен быть симлинком на /run/systemd/resolve/stub-resolv.conf. Проверьте это с помощью команд:

    ls -l /etc/resolv.conf

    Если он не является симлинком, создайте его:

    sudo ln -sf /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf

Взаимодействие с NetworkManager

Если ваша сеть управляется NetworkManager, то есть вероятность, что его настройки могут конфликтовать с systemd-resolved.

  1. Проверка настроек NetworkManager: Запустите nmtui или используйте nmcli для проверки конфигурации IP:

    nmtui

    Убедитесь, что ваши сетевые настройки выставлены на автоматическое (DHCP).

  2. Если настройки были сбиты: Убедитесь, что у вас включен systemd-resolved и он взаимодействует с NetworkManager правильно:

    sudo nmcli general reload

Рекомендуемые действия

  • Убедитесь, что systemd-resolved активно работает и настроен правильно.
  • Проверьте, корректны ли настройки DNS на вашем маршрутизаторе.
  • После успешной настройки, перезапустите сетевые службы:
    sudo systemctl restart NetworkManager

Заключение

Если перечисленные шаги не устранили вашу проблему, то как временное решение вы также можете рассмотреть возможность временного удаления systemd-resolved и возвращения к стандартной конфигурации DNS, пока вы не найдете устойчивое решение для работы с systemd-resolved. Однако, по вашему последнему обновлению, переустановка systemd-resolved вроде бы разрешила проблему.

Если у вас возникнут дополнительные вопросы или нужна помощь, не стесняйтесь обращаться за советом.

Оцените материал
Добавить комментарий

Капча загружается...