Bind

如何配置多級子域 DNS 記錄

  • May 11, 2016

我已經為我的應用程序的階段伺服器配置了 DNS 記錄,以便當有人訪問stage.example.comwww.stage.example.com工作時。(實際上,如果他訪問第一個,網路伺服器會將他重定向到第二個。)

我的這個設置的區域配置文件是:

@         10800 IN A     1.2.3.4
stage     10800 IN CNAME example.com.
www.stage 10800 IN CNAME example.com.

它有效。

現在我想用相同的行為(同時允許www.example.comexample.com)配置我的實時伺服器,同時保持有關階段子域的現有功能,但我無法找出正確的方法 - 或者它是否可能。

我所有的搜尋最終都出現在為一級子域配置它的範例中,所以我在這裡有點迷失了。

例如以下配置是我認為我想要的,但它不起作用

example.com           10800 IN A 5.6.7.8
stage.example.com     10800 IN A 1.2.3.4
www                   10800 IN CNAME example.com.
www.stage.example.com 10800 IN CNAME stage.example.com.

任何想法/建議都是最受歡迎的。

先感謝您。

Tedwin 的回答第一個搜尋結果開始,並將它們與幾個digs 結合起來,我解決了我的主要困惑點:

配置左側的名稱將父域附加到它們 - 除非已經包含。

所以,這個配置

live      10800 IN A 5.6.7.8
stage     10800 IN A 1.2.3.4
www       10800 IN CNAME live
www.stage 10800 IN CNAME stage

產生這些探勘結果:

$ dig www.example.com

;; ANSWER SECTION:
www.example.com.        375 IN  CNAME   live.example.com.
live.example.com.       375 IN  A       5.6.7.8

$ dig www.stage.example.com

;; ANSWER SECTION:
www.stage.example.com.      375 IN  CNAME   stage.example.com.
stage.example.com.          375 IN  A       1.2.3.4

所以為了讓我讓它按我的意願工作,我所要做的就是更換

live 10800 IN A 5.6.7.8

@ 10800 IN A 5.6.7.8

我認為您不需要將 .example.com 附加到配置的第二行和最後一行。您的 DNS 伺服器已經知道您正在處理 .example.com,因為它是父域。

所以我相信你需要改變:

example.com           10800 IN A 5.6.7.8
stage.example.com     10800 IN A 1.2.3.4
www                   10800 IN CNAME example.com.
www.stage.example.com 10800 IN CNAME stage.example.com.

到:

example.com           10800 IN A 5.6.7.8
stage                 10800 IN A 1.2.3.4
www                   10800 IN CNAME example.com.
www.stage             10800 IN CNAME stage.example.com.

因此,您將擁有一個解析為 5.6.7.8 的 www.example.com 的 CNAME 和一個解析為 1.2.3.4 的 www.stage.example.com 的 CNAME。

似乎您還需要域的 @ 記錄,就像您在問題的第一個程式碼片段中顯示的那樣。

引用自:https://serverfault.com/questions/775939