根名稱伺服器的目的是什麼?

根名稱伺服器的目的是什麼?

https://www.cloudflare.com/en-au/learning/dns/dns-server-types/

每個遞歸解析器都知道這 13 個 DNS 根名稱伺服器,它們是遞歸解析器尋求 DNS 記錄的第一站。根伺服器接受包含網域名稱的遞歸解析器的查詢,根網域伺服器根據該網域的副檔名(.com、.net、.org 等),透過將遞歸解析器定向到 TLD 網域伺服器來回應。

但為什麼遞歸解析器不能直接查詢 TLD 伺服器呢?據我了解,只有大約 1500 個 TLD 伺服器,可以輕鬆分發到所有解析伺服器。

需要像根伺服器這樣的東西來將所有 TLD 伺服器分發給解析器。但他們只應接受一次投票來初始化 TLD 清單。根據我的理解,每個 DNS 請求都會詢問根伺服器,例如“.com 的 TLD 伺服器在哪裡?”這看起來效率很低?

答案1

但為什麼遞歸解析器不能直接查詢 TLD 伺服器呢?據我了解,只有大約 1500 個 TLD 伺服器,可以輕鬆分發到所有解析伺服器。

因為當您擁有 1500 個伺服器的清單時,您需要更頻繁地分發更新 - 並且避免需要將這樣的清單分發給所有使用者(即使只是那些運行解析器的使用者),這就是內建 DNS 的原因第一名。

是的,這是可以做到的(在某些情況下它實際上已經完成了),但你仍然需要那些 X 根伺服器用於分發列表無論如何,所以使用現有的機制更容易——很可能它們是更多的比每次啟動時檢索整個清單更有效。

需要像根伺服器這樣的東西來將所有 TLD 伺服器分發給解析器。但他們只應接受一次投票來初始化 TLD 清單。根據我的理解,每個 DNS 請求都會詢問根伺服器,例如“.com 的 TLD 伺服器在哪裡?”這看起來效率很低?

是的,每個 DNS 請求都需要這樣的查詢,但大多數時候,只要其 TTL 允許,它將直接從解析器的快取中完成。在這方面,根查詢沒有什麼特別之處——它們像鏈中的所有其他查詢一樣被快取(當然還有最終查詢)。

由於每個 TLD 都是單獨快取的,這可能比檢索整個清單更有效 - 對於使用者主要需要 10 個 TLD 的解析器來說,它只需大約每天一次向根伺服器進行 10 次查詢。對於包含 1500 台伺服器的大型列表,以相同頻率刷新整個列表將消耗根伺服器上的大量資源,並且即使您使用增量傳輸,您仍然會收到許多更改不需要

答案2

正如@gantendo 指出的,緩存是存在的。

https://en.m.wikipedia.org/wiki/Domain_Name_System

如果網路上的每個解析都需要從根開始,那麼這種機制會給根伺服器帶來很大的流量負擔。實際上,DNS 伺服器中使用快取來減輕根伺服器的負載,因此,根名稱伺服器實際上只涉及所有請求中相對較小的一部分。

換句話說,根伺服器僅偶爾會被輪詢以初始化 TLD 列表

相關內容