Linux
Linux不斷重試失敗的DNS伺服器
每當其中一台伺服器
/etc/resolv.conf
無法訪問時,Linux/glibc/whatever 都不夠聰明,不會重試一段時間。這會導致許多服務變得不可用,因為其中許多服務對所有傳入連接(如 SSH)進行反向查找,這將在第一個 DNS 伺服器查詢超時時掛起。我怎樣才能讓我的 Ubuntu 機器對它使用的 DNS 伺服器變得聰明?我可以破解一個每分鐘執行的 bash 腳本,該腳本將 REJECT 規則插入到不響應探勘查詢的伺服器的 iptables 中,但我不想那樣做……
有人告訴我,Windows 可以正確執行此操作,順便說一句。
編輯:我通過將其放入
/etc/resolv.conf
(或/etc/resolvconf/resolv.conf.d/base
)中來解決它:options timeout:2 rotate
仍然不完美,但更可行。
為什麼 DNS 伺服器變得不可用?這是我們應該重點解決的問題…
rotate
如果你想要一個確定的重試順序,你應該省略該指令。rotate
基本上為您提供循環查找,這可能會在您的情況下產生不良結果。我的 DNS
/etc/resolv.conf
看起來像:search blah.net client.blah.net options timeout 1 nameserver 172.16.2.14 nameserver 172.16.2.18
除此之外,您可以選擇在本地電腦上使用記憶體 DNS 服務,甚至啟用名稱伺服器記憶體守護程序(nscd)。這將有助於緩沖不可靠的 DNS 解析器帶來的延遲。