我最近遇到了 /etc/resolv.conf 的以下配置,該配置應該可以提高 DNS 解析的速度:
nameserver 1.1.1.1
nameserver 2.2.2.2
nameserver 3.3.3.3
option rotate
option timeout:1
除了在配置中使用 3 個 DNS 伺服器(通常只使用兩個)之外,我顯然還考慮了「選項」標誌。第一個應該在所有 3 個 DNS 伺服器上輪換/循環,最後一個應該將查找逾時設為 1 秒(預設值顯然是 5 秒)。我只是想知道你們中是否有人正在使用此配置以及您是否看到任何改進?有些人說這對改進根本沒有幫助,但我不太確定為什麼。
答案1
在任何情況下,這都會使事情變得更糟,但您的第一個名稱伺服器本身失敗的情況除外。這是一個如何讓事情變得更糟的例子:
假設您正在嘗試解析一個主名稱伺服器速度緩慢或損壞的網站。通常會發生這種情況。
您嘗試您的第一個名稱伺服器。
它嘗試該網站的主名稱伺服器。
主要超時。
您的第一個名稱伺服器會嘗試輔助名稱伺服器。
它得到回應。
你會得到回應。
但隨著你的改變,會發生這種情況:
您嘗試您的第一個 namserver。
您的第一個名稱伺服器嘗試該網站的主名稱伺服器。
你超時了。
您嘗試使用第二個名稱伺服器。
您的第二個名稱伺服器嘗試該網站的主名稱伺服器。
第一個名稱伺服器嘗試網站的輔助名稱伺服器並獲得答案。可惜你已經超時了。
您在第二個名稱伺服器上逾時。
您嘗試第三個名稱伺服器。
您的第三個名稱伺服器嘗試該網站的主名稱伺服器。
你的第二個網域伺服器已經有了答案,可惜你已經超時了。
您在第三個名稱伺服器上逾時。
您的第三個網域伺服器有答案,但您不再聽了。
你超時了方式太早了,很可能在 namserver 得到答案之前就放棄,只是重複這個過程。好的一面是,現在所有名稱伺服器的快取中都有結果。
答案2
答案3
IIRC,預設情況下,如果沒有回應,第一個嘗試的 DNS 伺服器會在兩秒內逾時,然後再嘗試清單中的下一個。因此,看起來最後一個選項會將超時減少到一秒,然後再嘗試清單中的下一個選項。
輪換首先嘗試的 DNS 伺服器的另一個選項只有在它們都彼此一樣快並且您正在嘗試負載平衡請求時才會有好處。
我會使用名稱庫,如奧利佛曾提過,找出每個的速度有多快,並將它們按速度順序放入列表中,並刪除旋轉選項,除非它們與彼此一樣快。