У меня есть DN, который не имеет записи на DNS-сервере. Xxxx может быть разрешен только сервером yyyy, а некоторые DN будут неправильными в yyyy, но правильными в xxxx. В традиционном Linux я просто поместил 2 строки в /etc/resolv.conf .

x.x.x.x
y.y.y.y 

Таким образом, программа сначала отправит запрос на хххх Если у него нет этой записи, он вернется к yyyy Таким образом, все будет хорошо.

В современном дистрибутиве Linux обычно используется dnsmasq. Я все еще могу дать несколько DNS-серверов по сетевому менеджеру. nmcli dev list iface eth0 показать это:

IP4.DNS[1]:                             x.x.x.x
IP4.DNS[2]:                             y.y.y.y

Однако поиск DNS не соответствует порядку, который я даю. Поскольку yyyy является локальным сервером, он всегда реагирует быстрее, dnsmasq всегда использует ответ от yyyy и никогда не использует ответ от xxxx В любом случае я могу включить порядок поиска в dnsmasq?

Я знаю, что мог бы сделать что-то вроде strict-order в dnsmasq.conf. Однако в Ubuntu 14.04 такого файла нет и файл resolv.conf генерируется автоматически.

[Обновить]

Я добавляю «строгий порядок» в /etc/NetworkManager/dnsmasq.d/dnsorder.conf . Перезапустите сеть и NetworkManager, пока это не имеет никакого эффекта. команда dnsmasq, запускаемая networkmnager, выглядит следующим образом:

/usr/sbin/dnsmasq --no-resolv --keep-in-foreground --no-hosts --bind-interfaces --pid-file=/run/sendsigs.omit.d/network-manager.dnsmasq.pid --listen-address=127.0.1.1 --conf-file=/var/run/NetworkManager/dnsmasq.conf --cache-size=0 --proxy-dnssec --enable-dbus=org.freedesktop.NetworkManager.dnsmasq –conf-dir=/etc/NetworkManager/dnsmasq.d

/var/run/NetworkManager/dnsmasq.conf пусто. Не найти resolv.conf в /etc/NetworkManager .

1 ответ1

0

На мой взгляд, это неправильный способ мышления. Хотя библиотека libc несколько ограничена последовательными попытками использовать DNS-серверы, глобальный список DNS-серверов должен содержать все записи, которые равны, и поведение dnsmasq совершенно корректно.

Если вы хотите настроить определенные поддеревья DNS для обработки различными DNS-серверами в качестве исключения для корневого дерева, вам следует сделать именно это.

Насколько я знаю, вы можете настроить экземпляры dnsmasq, предоставленные NetworkManager, в /etc/NetworkManager/dnsmasq.d/ который уже есть ответы на другие вопросы.

Также dnsmasq не единственный вариант для современного дистрибутива. Вы по-прежнему можете использовать старый добрый файл конфигурации /etc/resolv.conf libc во всех дистрибутивах, где есть NetworkManager, включая Ubuntu. Или вы можете использовать Unbound в некоторых дистрибутивах. В современных дистрибутивах есть все виды подходов к локальной конфигурации DNS.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .