DNS в НАЙС.ОС: systemd-resolved¶
В НАЙС.ОС CLOUD разрешением имён управляет компонент systemd-resolved. Он получает DNS-серверы из статической конфигурации systemd-networkd, DHCP и, в некоторых профилях, настроек уровня системы. Итоговый список нужно смотреть на работающем экземпляре, а не предполагать по файлу /etc/resolv.conf.
Состояние DNS¶
systemctl status systemd-resolved --no-pager
resolvectl status
resolvectl dns
resolvectl domain
ls -l /etc/resolv.conf
cat /etc/resolv.conf
Запись nameserver 127.0.0.53 указывает на локальный stub-resolver systemd и не означает, что внешний DNS-сервер имеет адрес 127.0.0.53. Реальные серверы отображаются через resolvectl.
Установка DNS на конкретном интерфейсе¶
В /etc/systemd/network/10-ens3.network добавьте (или измените) значения в [Network]:
Этот фрагмент не является полным файлом: сохраните действующую секцию [Match] и остальные сетевые параметры. DNS-адреса и домен условные; используйте свою инфраструктуру.
При использовании DHCP уточните, должны ли приниматься DNS-серверы DHCP. Это задаётся в секции [DHCPv4]:
Включайте UseDNS=no только если вы осознанно переходите на ручные DNS-серверы. Иначе сервер может перестать разрешать имена в сетях, где DNS предоставляется исключительно DHCP.
Применение — через консоль или при гарантированном резервном доступе:
Проверка разрешения имён¶
resolvectl query проверяет путь через resolved; getent — путь разрешения имён в системной библиотеке с учётом nsswitch.conf. Они могут давать разный результат, если NSS настроен не на использование resolved.
Системные настройки¶
Файл /etc/systemd/resolved.conf содержит глобальные настройки. Для собственных изменений удобны drop-in файлы под /etc/systemd/resolved.conf.d/, если эта схема подтверждена в установленном пакете. Не заменяйте /etc/resolv.conf вручную, не поняв, кто формирует его содержимое.
В SPEC systemd есть сборочные параметры DNS по умолчанию 77.88.8.8 и 77.88.8.1, а также включение возможности DNS-over-TLS. Это не доказывает, что в каждом облачном экземпляре используются именно эти серверы: DHCP и профиль интерфейса могут задавать свои DNS.
Типичные ошибки¶
| Симптом | Проверка | Возможное объяснение |
|---|---|---|
| По IP соединение есть, по имени нет | resolvectl status, getent |
неверный DNS либо ограничения OUTPUT |
| DNS виден, но запрос истекает | iptables -L OUTPUT -n -v |
запрещены UDP/TCP 53 до выбранного DNS |
В resolv.conf локальный адрес |
resolvectl status |
это нормальный stub-resolver |
| После перезагрузки DNS изменился | networkctl status, cloud-init status |
DHCP/cloud-init восстановил настройки |
| Работает только часть доменов | resolvectl domain |
маршрутизация DNS по доменам или поисковые суффиксы |
Откат: верните исходный .network-профиль и перезагрузите сетевую конфигурацию. Для изменения resolved.conf верните прежнее значение, затем после проверки выполните systemctl restart systemd-resolved и повторите диагностику.