Domain-Name-System
NS 記錄雞和蛋:NS 在它所服務的域中
我與 BIND 打交道多年,這一直困擾著我。
$ dig google.com ns ;; QUESTION SECTION: ;google.com. IN NS ;; ANSWER SECTION: google.com. 87046 IN NS ns3.google.com. etc... ;; ADDITIONAL SECTION: ns1.google.com. 87274 IN A 216.239.32.10 etc.
我知道,至少在概念上,根伺服器處理 .,並將 .com.、.gov. 等任何正確的伺服器移交給正確的伺服器(儘管實際上這都記憶體了幾個級別),但在某些時候,有人已經要知道向216.239.32.10的伺服器詢問whatever.google.com的A記錄。但是解析器首先是如何解決這個問題的,因為您需要知道 NS 的 A 才能做到這一點?(就此而言,既然我們知道它是網際網路 NS 而不是混沌之類的東西,為什麼您必須使用名稱而不是地址來記錄 NS?)
我的域名伺服器總是有一些上游的人可以找到的名字(例如,我在 foo.com 上為 bar.com 託管 DNS,而我的上游處理 foo.com),但我從來沒有完全理解像Google這樣的人是如何克服以 google.com 為名託管 google.com 的 DNS 的先有雞還是先有蛋的問題。
我認為您正在努力解決的概念是膠水記錄。
從上面連結的文章中:
例如,如果 example.org 的權威名稱伺服器是 ns1.example.org,則嘗試解析 www.example.org 的電腦首先解析 ns1.example.org。由於 ns1 包含在 example.org 中,因此需要先解析 example.org,這會呈現循環依賴關係。為了打破依賴關係,頂級域 org 的名稱伺服器包含膠水以及 example.org 的委託。粘合記錄是為 ns1.example.org 提供 IP 地址的地址記錄。解析器使用這些 IP 地址中的一個或多個來查詢域的權威伺服器之一,從而完成 DNS 查詢。