在BIND區域文件中新增CNAME記錄

在BIND區域文件中新增CNAME記錄

我已經使用 virtualbox 設定了一個虛擬專用網絡,其 DNS 伺服器名稱為:dns1.xyz1.com。我有一個名為: 的網頁伺服器xyz1.com

我想使用我的 DNS 伺服器來解析網站的 IP 位址。我將轉送區域檔案配置如下:

$TTL    604800

@       IN      SOA     dns1.xyz1.com. admin.xyz1.com. (
                              13         ; Serial
                         604820         ; Refresh
                          86600         ; Retry
                        2419600         ; Expire
                         604600 )       ; Negative Cache TTL

; name servers - NS records
    IN  NS  dns1.xyz1.com.
    IN  NS  dns2.xyz1.com.

; name servers - A records
dns1.xyz1.com.          IN      A       192.168.56.13
dns2.xyz1.com.          IN      A       192.168.56.15

; 192.168.56.0/24 - A records
host1.xyz1.com.         IN      A       192.168.56.17
xyz1.com.               IN      CNAME   host1.xyz1.com.
host1.xyz1.com.         IN      TXT     "some text"
host2.xyz1.com.         IN      A       192.168.56.18

在新增 CNAME 記錄之前,我可以輸入:https://host1.xyz1.com,瀏覽器會將我轉移到正確的 Web 伺服器。

在我新增 CNAME 記錄後(我希望瀏覽器也能翻譯https://xyz1.com到與 相同的網站https://host1.xyz1.com),但不幸的是,在新增 CNAME 行(如下所示)後,沒有任何位址開啟所需的 Web 伺服器:既不:https://xyz1.com也不 https://host1.xyz1.com

xyz1.com.               IN      CNAME   host1.xyz1.com.

僅供參考,這是named.conf.local文件內容:

zone "xyz1.com" {
    type master;
    file "/etc/bind/forward.xyz1.com";
};

zone "56.168.192.in-addr.arpa"{
    type master;
    file "/etc/bind/reverse.xyz1.com";
};

底線: 我想使用不同的名稱存取相同的網頁伺服器(相同的 IP):https://xyz1.comhttps://host1.xyz1.com。您能告訴我我的 CNAME 記錄有什麼問題嗎?我該如何修復它?

編輯:

感謝您的回答。但問題仍然存在。我無法解析此位址:xyz.com,並且我需要使用名稱:xyz.com和指向特定伺服器host1.xyz.com

根據一些答案,我更新了設定檔的這一部分:

; 192.168.56.0/24 - A records
@           IN  A   192.168.56.7
host1.xyz1.com.         IN      CNAME   xyz1.com.
host1.xyz1.com.         IN      TXT     "text here"

有一個可 ping 通的 Web 伺服器,其 IP:192.168.56.7我想要xyz1.comhost1.xyz1.com指向它。如何實現這項目標?

答案1

CNAME除少數例外情況外,記錄不能與任何其他記錄類型共存。在您的情況下,同一個網域已經擁有SOANS記錄(就像區域頂點總是擁有的那樣)。

因此,BIND 可能完全拒絕載入區域文件。 (但是您只有透過實際檢查 BIND 的錯誤日誌才能確定。)

換句話說,不允許有CNAMEat 區域頂點,並且您必須手動將 IP 位址複製為A/AAAA記錄。


將來,DNS 可能會標準化ANAME偽記錄,允許 IP 位址在沒有完整 CNAME 語義的情況下使用別名。 (這些目前由一些 DNS 託管服務作為自訂添加提供。)請參閱這裡,這裡, 或者這裡

答案2

你這是在倒退。不要將網域設定為子網域的 CNAME。將子網域 (host1) 設定為網域 (xyz1.com) 的 CNAME。

使用@表示根域(xyz1.com):

;192.168.56.0/24 - A records              
@               IN      A       192.168.56.17
host1.xyz1.com.         IN      CNAME   xyz1.com.
host2.xyz1.com.         IN      A       192.168.56.18

相關內容