DNS 名稱構成一棵有根樹。網域是以某個名稱為根的子樹。區域 是由權威資料服務的該樹之一部分管理範圍。因此,網域與區域並非同義詞:區域 可以委派子樹,並不再包含其權威記錄。
委派與權威 #
父區域透過在 child.example. 該名稱發布 NS 記錄來進行委派。子區域發布自己的頂點 SOA 與 NS 記錄。解析器向父區域詢問該切點以下的資料時,會收到一則轉介,其 Authority 區段包含子區域的 NS RRset。
如果 NS 目標位於所委派的子區域內,父區域也會在 Additional 區段提供 glue A 或 AAAA 記錄。Glue 可打破在聯絡子區域名稱伺服器之前先解析該名稱伺服器的循環相依性。解析器必須將 glue 視為啟動用的位址資料,而非該目標位址的權威資料。
權威伺服器從其區域資料中回覆。遞迴解析器從其快取中回覆用戶端,或執行反覆查詢。Stub 解析器不會遍歷委派;它會要求已設定的遞迴解析器執行此操作。
回應語意 #
對於查詢,伺服器可以傳回答案、轉介或錯誤回應。
NXDOMAIN 表示查詢的名稱不存在。NOERROR 搭配空答案時,則可能表示該名稱存在,但沒有查詢類型的記錄,通常稱為 NODATA。
CNAME 將其擁有者識別為別名。該擁有者不得同時存在其他資料,因為別名不得同時擁有獨立的權威資料。持續追蹤 CNAME 目標,直到取得所要求的類型、另一個別名或錯誤。DNAME 不同:它會為整個子樹建立別名,並對其擁有者以下的名稱觸發合成 CNAME 處理。
快取與 DNSSEC #
解析器會依據 TTL 快取 RRset。負面答案會依據 SOA 資訊進行快取。DNSSEC 讓驗證中的解析器能透過從已設定信任錨點開始、由 DS 到 DNSKEY 的信任鏈,驗證正面與負面答案。NSEC 或 NSEC3 證明可驗證否定結果;單獨的 NXDOMAIN 回應則不行。
在區域檔案與協定文件的範例中,當與已設定的來源產生歧義會造成問題時,請使用結尾帶有句點的完整限定名稱。
如需封包編碼,請參閱 DNS Wire Format。如需伺服器的作業設定,請參閱 BIND 9 Authoritative and Recursive DNS。
評論
在 GitHub 上閱讀或評論(發表評論需要登入)