Dhcp
避免替換 DHCP 發現的 DNS 解析器?
我在 CentOS 7.4 上嘗試為 DNS 記憶體配置 dnsmasq 和為執行 Consul 配置每個區域的 DNS 伺服器。本質上,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 只是預先添加本地解析器的先前功能?
顯然即使 CentOS 7.4 沒有附帶 upstream
/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