Вопрос или проблема
У меня есть система с Ubuntu 18.04, и, похоже, произошли некоторые радикальные изменения в том, как обрабатываются DHCP-клиент и DNS.
После изучения документации по systemd-resolved я выяснил, что по какой-то причине:
- Dhclient не запущен и, по всей видимости, больше не является демоном, ответственным за получение IP-адреса по DHCP?
- То, что обрабатывает получение DHCP (systemd.networkd?), игнорирует информацию о домене поиска, передаваемую моим DHCP-сервером
- Запуск “dhclient” решает эту проблему
Смотрите скриншот ниже, извините за мелкий шрифт:
Обратите внимание, что “dhclient” запросил (и получил) другой IP, который был перезаписан systemd-networkd в какой-то момент, поскольку система без предупреждения вернулась к 25.207.
Наконец, перезапуск сетевых служб с помощью systemctl restart networkd-systemd
и перезапуск resolved с systemctl restart systemd-resolved
оставляет строку поиска на месте в символьной ссылке в /etc/resolv.conf
после ввода “dhclient”.
Может кто-нибудь указать мне на документацию о том, что сейчас обрабатывает DHCP для ubuntu 18.04, и почему это может не извлекать информацию о домене поиска и правильно не настраивать ее в systemd-resolved?
Если вы не используете dhclient, /etc/resolv.conf
является символической ссылкой на /run/resolv/resolv.conf
. Тем не менее, конфигурационный файл, используемый systemctl
для установки DNS-серверов, находится в /run/systemd/resolve/resolv.conf
.
Обновление /etc/resolv.conf
, чтобы указать на файл, созданный systemd, решает эту проблему.
Ответ или решение
Вопрос, касающийся получения домена поиска через DHCP на Ubuntu 18.04, затрагивает изменения в архитектуре управления сетевыми протоколами, в частности, в работе с клиентом DHCP и системой разрешения DNS. Давайте рассмотрим эту тему детально.
Проблема получения домена поиска
На Ubuntu 18.04 произошли значительные изменения в системе управления сетью. Основной инструмент для работы с DHCP – dhclient
– больше не является обязательным элементом для получения сетевых настроек, что вызвало путаницу для пользователей, привыкших к старым версиям Ubuntu, где dhclient
играл центральную роль.
-
Что отвечает за получение DHCP:
- В новой системе управления сетью, которая включает в себя
systemd-networkd
иsystemd-resolved
, DHCP-запросы обрабатываются именноsystemd-networkd
. Это означает, чтоdhclient
по умолчанию не активен и даже не требуется для получения IP-адресов и параметров сетевых конфигураций от DHCP-сервера.
- В новой системе управления сетью, которая включает в себя
-
Игнорирование информации о домене поиска:
- Проблема заключается в том, что
systemd-networkd
может не получать или не обрабатывать информацию о домене поиска, который передает DHCP-сервер. Это означает, что, хотя IP-адрес может быть правильно получен, строка с доменом поиска может отсутствовать в файле/etc/resolv.conf
.
- Проблема заключается в том, что
-
Использование
dhclient
как временное решение:- Как вы уже заметили, запуск
dhclient
вручную может временно решить проблему за счет того, что он обновляет содержимое файла/etc/resolv.conf
, добавляя необходимый домен поиска. Однако это является временным обходным решением, посколькуsystemd-networkd
может вновь перезаписать это значение после получения новой сетевой конфигурации.
- Как вы уже заметили, запуск
Рекомендации для решения проблемы
Вот несколько шагов, которые вы можете предпринять для стабильного решения этой проблемы:
-
Конфигурация
systemd-networkd
:- Убедитесь, что ваши файлы конфигурации
systemd-networkd
правильно настроены. Например, в файле/etc/systemd/network/10-netplan-en.network
добавьте следующие строки:[Network] DHCP=yes
Это гарантирует, что
systemd-networkd
будет получать DNS-серверы и домен поиска через DHCP. - Убедитесь, что ваши файлы конфигурации
-
Настройка поиска домена через
systemd-resolved
:- Если полученные параметры DHCP не включают домен поиска, вы можете вручную настроить
systemd-resolved
с помощью:sudo systemd-resolve --set-domain <your_domain>
Замените
<your_domain>
на нужное значение.
- Если полученные параметры DHCP не включают домен поиска, вы можете вручную настроить
-
Проверка конфигурации
/etc/resolv.conf
:- Убедитесь, что файл
/etc/resolv.conf
корректно ссылается на/run/systemd/resolve/resolv.conf
. Вы можете установить эту ссылку с помощью команды:sudo ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf
- Убедитесь, что файл
-
Альтернативные подходы:
- Рассмотрите возможность использования
NetworkManager
, который также активно управляет сетевой конфигурацией и может помочь в более удобном управлении сетевыми настройками, включая DHCP и DNS.
- Рассмотрите возможность использования
Заключение
Следуя данным рекомендациям и приведенным настройкам, вы можете наладить стабильное получение информации о домене поиска через DHCP на Ubuntu 18.04. Помните, что изменения в архитектуре сетевого взаимодействия могут требовать новых подходов и методов, чтобы обеспечить оптимальное функционирование систем. Всегда полезно ознакомиться с официальной документацией, чтобы быть в курсе последних изменений и рекомендаций по конфигурации.