避免替换 DHCP 发现的 DNS 解析器?

避免替换 DHCP 发现的 DNS 解析器?

我在 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包含 DCHP 收到的网络 DNS 服务器:

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

使用上述配置更改重新启动 NetworkManager 后,它将用 127.0.0.1 取代我的网络 DNS 服务器:

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

由于 dnsmasq 使用来/etc/resolv.conf检测本地解析器,因此我想保留解析器,/etc/resolv.conf以便 dnsmasq 可以发现它们。

有没有办法实现以前的功能,即让 NetworkManager 只添加本地解析器?

答案1

显然,即使 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

相关内容