Dhcp

避免替換 DHCP 發現的 DNS 解析器?

  • September 27, 2017

我在 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

引用自:https://serverfault.com/questions/875833