Вопрос netplan: nameservers в netplan yaml. Какой эффект?


Каков эффект поля nameservers / адресов в файле конфигурации yaml?

Любое приложение, которое я пробовал, использует серверы имен /etc/resolv.conf. Это происходит даже при остановленном resolvconf.

Это использует systemd как resolver. Нет ошибок при создании или применении.

РАЗРЕШАЮЩАЯ СПОСОБНОСТЬ

Спасибо всем, кто ответил. Конфигурация netplan yaml настраивает серверы имен после этого:

  1. Очистить resolvconf;
  2. Поместите мой LAN DNS в качестве пересылки в /etc/bind/named.conf.options;
  3. Замените ссылку /etc/resolv.conf со статическим файлом как

    поиск nameserver 127.0.0.53

И это работает. Я нахожу, что должен включать поиск в resolv.conf, хотя у меня есть поле поиска в моем netplan config yaml. Головоломка на другой день.


2
2018-05-11 13:03


происхождения


Что непонятно мне из вашего вопроса, есть ли у вас проблема с поиском имен или если вы просите только лучше понять систему. - slangasek
@slangesk Поймите систему и надейтесь правильно ее настроить. DNS работает. У меня есть DNS-сервер, который пересылает серверы google, и все в порядке, но я подозреваю, что что-то не так, потому что серверы имен в конфигурации netplan, похоже, игнорируются. - Stephen Boston
Что заставляет вас думать, что серверы имен игнорируются? Они должны отображаться в выводе «systemd-resolve -status». - slangasek
@slangasek dig не использовал netplan, настроенный NS. Думаю, это из-за запуска resolvconf? Этот процесс написал /etc/resolv.conf, взяв его содержимое из файлов шаблонов в директории configvconf. Из того, что Чили говорит, я думаю, что меня сначала смутили некоторые кешированные значения. Все это происходит из-за того, что я недавно создал DNS-сервер LAN, и я блуждаю по новой территории для меня. Я не верю, что мои анекдоты являются хорошей основой для значимого открытия на этом этапе. Мне нужно запутаться еще кое-что. - Stephen Boston
«Копать не использовали» - я не совсем понимаю, что вы имеете в виду здесь. В стандартной конфигурации будет выполняться systemd-resolved, а /etc/resolv.conf укажет на локальный преобразователь на 127.0.0.53, поэтому запуск «dig» без указания сервера имен будет использовать этот локальный преобразователь. В свою очередь, локальный преобразователь должен быть настроен так, чтобы он смотрел на серверы имен, настроенные netplan, в качестве своих восходящих преобразователей. Может быть, это отвечает на ваш вопрос? Обратите внимание, что resolvconf может присутствовать, но дизайн здесь совпадает с или без resolvconf (который больше не устанавливается по умолчанию в 18.04 новых установках). - slangasek


ответы:


ПРИМЕЧАНИЕ. Это может дублировать информацию из chili555, однако при обсуждении с ними вышеупомянутый человек предложил опубликовать «авторитетный» ответ, поскольку я работал с этой точной проблемой / вопросом раньше.

Поведение, наблюдаемое в вашей среде, - это systemd-resolved эквивалент того, что dnsmasq до 18.04. netplan обновления влияют на серверы имен, которые systemd-resolved использовать для поиска. Это подробно описано в последнем разделе ответа.

Но сначала для любопытной истории о таком поведении и о том, как она отличается от «более старых» версий Ubuntu, которые используют Network Manager и dnsmasq, (Не стесняйтесь пропустить следующий раздел этого ответа, если вам нужны только материалы, связанные с 18.04)


До 18.04: dnsmasq как локальный распознаватель кэширования

До 18.04, когда вы использовали GUI Ubuntu, он установил dnsmasq наряду с Network Manager. Интеграция с сетевым менеджером с dnsmasq будет обновлять dnsmasq список серверов «next hop» (восходящие DNS-серверы) для отправки запроса.

Таким образом, запрос DNS для google.com будет передаваться из любого приложения, запрашивающего разрешение, в dnsmasq, и если dnsmasq не знает IP-адрес или истекает срок действия кэшированной записи, затем передаст DNS-запрос на любой DNS-сервер восходящего потока (для этого примера, 8.8.8.8 или 8.8.4.4). Затем вам нужно будет проверить Network Manager или dnsmasq config, чтобы увидеть, где находятся «восходящие» DNS-серверы.

Это типичное поведение в графическом Ubuntu, установленном из ISO.

Установленная по умолчанию установка с ИБС сервера, наоборот, сопровождалась традиционным «обновлением» /etc/resolv.conf"посредством resolvconf упаковки и использования /etc/resolv.conf напрямую, а не через dnsmasq,


18,04: netplan, а также systemd-resolved

С 18.04 система DNS по умолчанию systemd-resolved, Это работает как dnsmasq из старого делает, за исключением того, что он делает это как для настольных, так и для серверных ISO-установок в настоящее время. Он также может интегрироваться с Network Manager (используется в среде графического интерфейса для управления Wi-Fi и т. Д.) И с Netplan (который лучше обрабатывает ethernets)

systemd-resolved передается из netplanсписок DNS-серверов для отправки запросов. Поэтому, используя тот же пример выше, DNS-запрос для google.com будет проходить через systemd-resolvedкоторый либо вернет значение кэшированного поиска, либо передаст его на восходящие DNS-серверы.

Это эмулирует поведение по умолчанию dnsmasq, но также добавляет некоторую дополнительную обработку поиска для того, как «localhost» и другие локальные адреса могут быть запрошены.

С NetPlan или Network Manager вы можете получить список восходящих DNS-серверов через systemd-resolved с помощью следующей команды:

systemd-resolve --status

который даст вам кучу выхода. Соответствующий раздел будет выглядеть так (взятый из chili555ответ для целесообразности):

DNS Servers: 8.8.8.8
             8.8.4.4
             2600:1700:5aa0:830::1

3
2018-05-11 16:27



Я использую 18.04. Я что-то упускаю. С вашего поста я понимаю, что с netplan разрешение имен выполняется с помощью systemd-разрешен с использованием конфигурации в конфигурации netplan (файл yaml, используемый netplan, генерирует и применяет). Используя это понимание, я отключил resolvconf и перезагрузился. Думаю, я должен избавиться от пути. (Я установил resolvconf, потому что он не стал стандартным в 18.04.) Systemd-resolve --status отображает некоторые IP-адреса add-arpa, но не имеет поля DNS-сервера или домена. Итак ... Нужен ли нам resolvconf? Или что-то? - Stephen Boston
@StephenBoston. Не видя конкретной конфигурации в вашей системе и конкретного systemd-resolve --status о котором вы говорите, я не могу дать вам ответ. Рассматривать этот пример вывода хотя из одного из моих контейнеров LXD - DNS-серверы имен основаны на ссылках - строка 36 этого вывода - это то, где запускаются DNS-серверы имен ... - Thomas Ward♦
Есть еще одна проблема, о которой я расскажу здесь, но которая, я думаю, должна, вероятно, быть другим вопросом. Однако, возможно, у вас есть понимание. Это означает, что поле поиска в netplan yaml не имеет эффекта. Я должен ввести это в resolv.conf. - Stephen Boston
Конфигурируемые серверы имен Netplan отображаются на выходе systemd-resol с отключенным resolvconf. У меня есть доступ через эти серверы имен. Однако я обнаружил, что мне нужно создать /etc/resolv.conf и поставить nameserver 127.0.0.53. Я подозреваю, что это неправильно. Файл должен быть сгенерирован, правда? - Stephen Boston


Отказ от ответственности: это хорошо продуманная догадка, а не канонический, документированный ответ.

Любое приложение, которое я пробовал, использует серверы имен /etc/resolv.conf.

В моей системе 18.04, незакомментированный, то есть фактически действующий раздел /etc/resolv.conf говорит:

nameserver 127.0.0.53

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

Но локальный кеш не будет содержать информацию о сервере имен, которая никогда ранее не посещалась. В этом случае система использует объявленные внешние DNS-серверы имен. Они могут быть объявлены в / etc / network / interfaces в старых системах; в /etc/netplan/*.yaml в новых системах или почти во всех настольных установках в Network Manager.

Фактически, /etc/resolv.conf сообщает нам, как можно найти внешние серверы имен.

Запустите «systemd-resolve -status», чтобы просмотреть подробную информацию о DNS-серверах восходящей линии связи, которые в настоящее время используются.

В моей системе в докладе говорится, в частности:

DNS Servers: 8.8.8.8
             8.8.4.4
             2600:1700:5aa0:830::1

Короче говоря, я считаю, что DNS-серверы имен объявлены в netplan, чтобы сообщить системе, где посмотреть, не содержится ли информация DNS в локальном кеше.


2
2018-05-11 14:33



systemd-resolved, а не dnsmasq, systemd-resolved запускает «заглушку» DNS-резольвера, которая делает большую часть того, что dnsmasq сделал до 18.04 для разрешений DNS как «промежуточный» сервер, который затем передает запросы на восходящие DNS-серверы, определенные в сетевых конфигурациях или из DHCP. Помимо этого, остальная часть этой информации является более точной / точечной. (У меня есть несколько серверов 18.04 и выкопали это довольно сильно) - Thomas Ward♦