Назад | Перейти на главную страницу

Избегайте замены DNS-преобразователей, обнаруженных DHCP?

Я использую CentOS 7.4, пытаюсь настроить dnsmasq для кэширования DNS и DNS-серверы для каждой зоны для работы Consul. По сути, конфигурация dnsmasq сводится к следующему:

# filter everything with consul in the name and send to local consul resolver
server=/consul/127.0.0.1#8600

Проблема, с которой я столкнулся, заключается в том, чтобы локальный преобразователь в /etc/resolv.conf без замены каких-либо других преобразователей в файле.

Раньше я мог делать это с помощью dhclient конфигурация такая:

prepend domain-name-servers 127.0.0.1;

Поскольку теперь все является NetworkManager, я обнаружил, что способ использования dnsmasq - это добавить следующую строку в [main] раздел /etc/NetworkManager/NetworkManager.conf:

dns=dnsmasq

Перед перезапуском NetworkManager я вижу, что мой /etc/resolv.conf содержит сетевой DNS-сервер, полученный DCHP:

# Generated by NetworkManager
search nowhere
nameserver 10.0.2.3
options single-request-reopen

После перезапуска NetworkManager с указанным выше изменением конфигурации он заменяет мой сетевой DNS-сервер на 127.0.0.1:

# Generated by NetworkManager
search nowhere
nameserver 127.0.0.1
options single-request-reopen

Поскольку dnsmasq использует /etc/resolv.conf для обнаружения локальных преобразователей я хотел бы оставить преобразователь (-ы) в /etc/resolv.conf чтобы dnsmasq мог их обнаружить.

Есть ли способ достичь предыдущей функциональности, если вместо этого NetworkManager просто добавит локальный преобразователь?

По-видимому, несмотря на то, что CentOS 7.4 не поставляется с апстримом /etc/dhclient.conf, это все еще действительный путь. Я просто создал этот файл со следующим содержанием:

prepend domain-name-servers 127.0.0.1;

И вуаля!

# Generated by NetworkManager
search nowhere
nameserver 127.0.0.1
nameserver 10.0.2.3
options single-request-reopen