Linux
帶綁定的 DNS 層次結構
我正在做一個類項目,我想在其中模擬一個作為全球網際網路 dns 層次結構的 dns 層次結構。結構是這樣的:
因此,所有請求都將發送到根伺服器,根伺服器將返回 edu 伺服器的 ip,並且根伺服器將根據請求返回 kevin 或 bech 伺服器的 ip。
我使用 bind 手動配置了所有伺服器,如下所示:
$TTL 604800 @ IN SOA kevin.edu. root.kevin.edu. ( 1 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL ; IN NS dns.kevin.edu. www IN A 1.1.1.7 kgs IN A 1.1.1.8 dns IN A 1.1.1.5
我現在的問題是我想遞歸解決這個問題,主機只會知道根 dns 伺服器的 ip,當他想知道 www.kevin.edu 的 ip 時,首先會向根詢問 edu ip,然後kevin.edu 到 edu,最後 www.kevin.edu 到 kevin。
知道我該怎麼做嗎?
編輯:
根 dns 伺服器的配置文件:
$TTL 604800 @ IN SOA . root.kevin.edu. ( 1 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL ; IN NS dns. edu IN A 1.1.1.4 dns IN A 1.1.1.3
如問題所示,您的根區域不包含任何授權資訊
edu
,僅包含一條A
記錄。根據這個定義edu
,它不是一個單獨的區域,而只是一個名稱,它是根區域的一部分。為了匹配您對您想要的內容的描述,
edu
A
記錄不應該在根區,而是應該有委託NS
記錄+粘合A
/AAAA
記錄,以便可以跟隨委託。例如這樣的:
edu. IN NS ns.edu. ; delegation ns.edu. IN A 1.1.1.4 ; glue
匹配記錄也應該存在於權威區域(
edu
本例中的區域)中。在確保所有不同區域之間確實存在委派之後,讓解析器伺服器與您的自定義 DNS 樹一起工作應該非常簡單。這應該只是為您的自定義根區域提供根提示(
NS
+膠水A
/AAAA
記錄),並可能禁用/覆蓋與真實根區域的簽名方式相關的任何 dnssec 設置。