Domain-Name-System

如何在 CentOS 中保留 resolv.conf 選項,例如旋轉、超時?

  • October 29, 2020

CentOS 將/etc/resolv.conf定期清除任何手動更改。Linux 中的預設設置在合理時間內故障轉移方面很差(每次以相同的順序查詢名稱伺服器,超時 5 秒,重試 2 次)。

因此,您的第一個 DNSresolv.conf本質上是關鍵路徑。如果它失敗了,您可以在故障轉移之前查看 10 秒。

這些預設值是可以調整的(參見resolv.conf手冊頁),但是如何在 CentOS 中永久更改任何更改並通過重新啟動等保持不變?

答案可以在/sbin/dhclient-script

if [ -n "${RES_OPTIONS}" ]; then
   echo "options ${RES_OPTIONS}" >> ${rscf}
fi

RES_OPTIONS但是,您可以在哪裡設置以使腳本拾取它並不是很明顯- 可以在ifcfg-ethX文件中設置搜尋域等某些內容,但在其他地方設置解析器選項。您想要的文件實際上是/etc/sysconfig/network. 要設置相關選項,請在該文件中添加類似於此行的內容:

RES_OPTIONS="rotate timeout:1 retries:1"

這會將超時設置為 1 秒,使用一次重試並告訴客戶端每個請求輪換其解析器,而不是每次都按順序遍歷列表。

如果您想讓更改立即生效,請發出service network restart命令並檢查您的新功能/etc/resolv.conf。這是我在測試時的樣子:

# cat /etc/resolv.conf 
; generated by /sbin/dhclient-script
search example.com
options rotate timeout:1 retries:1
nameserver 10.1.1.2
nameserver 10.1.1.1

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