Amazon-Route53

如何將子域委託給 Route53

  • July 22, 2016

我在我自己的 linode 上託管了一個域,在bind9下我在 AWS 中也有一個 VPC,我想在 Route53 下維護一個 DNS 子域。我嘗試按照以下說明操作: http: //docs.aws.amazon.com/Route53/latest/DeveloperGuide/MigratingSubdomain.html

對我的/etc/bind9/named.conf進行了以下更改:

 zone "aws.starshine.org" {
     type slave;
     file "/var/lib/bind/aws.starshine.org";
     masters { 205.251.197.214;
               205.251.195.5;
               205.251.198.215;
               205.251.192.111;
       };
 };

那裡的 IP 地址是從這裡收集的:

for i in "ns-1494.awsdns-58.org" "ns-773.awsdns-32.net" "ns-1751.awsdns-26.co.uk" "ns-111.awsdns-13.com"; do
    echo -en "$i\t"; dig +short "$i";
    done

…這些名稱是從該命令的輸出中粘貼的:

aws route53 get-hosted-zone --id /hostedzone/Z24Z8xxxxxxxIN

如果我執行如下命令:dig aws.starshine.org。@ns-111.awsdns-13.com我看到了 SOA 記錄。如果我添加ns,我會看到 Amazon NS 記錄。但是,如果我通過普通 NDS 或通過我自己的權威 DNS 伺服器查詢 starshine.org,我看不到委託。

這是我從幾個dig命令中得到的:

dig aws.starshine.org @ns.starshine.org.

; <<>> DiG 9.8.4-rpz2+rl005.12-P1 <<>> aws.starshine.org @ns.starshine.org.
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 49466
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;aws.starshine.org.             IN      A

apogee:/var/lib/bind# dig aws.starshine.org

;; ...
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 41291
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0

;; QUESTION SECTION:
;aws.starshine.org.             IN      A

;; AUTHORITY SECTION:
starshine.org.          200     IN      SOA     ns1.starshine.org. hostmaster.starshine.org. 2014091602 2000 1000 691200 600

我不明白為什麼在這些情況下我會得到 NXDOMAIN 和 SERVFAIL。我已經完全重新啟動了我的 BIND 伺服器程序(/etc/init.d/bind9 restart)。

我在日誌中看到以下內容:

Nov 23 05:26:26 apogee named[1438]: zone aws.starshine.org/IN/internal-in: Transfer started.
Nov 23 05:26:27 apogee last message repeated 2 times

那麼,我在代表團中做錯了什麼?我是否需要在 AWS Route53 端啟用某些功能?它向我展示了 SOA 和 NS 記錄(以及我添加的一條 A 記錄,可以查詢只是找到。

(將我的resolv.conf(例如在 VPC 中的節點上)設置為指向 AWS DNS 名稱伺服器確實可以讓我看到預期的子域。(但是,這會破壞所有其他 DNS 並顯示以下消息:狀態:拒絕警告:遞歸請求但不可用

我忘了在我之前的文章中提到它,但我的 starshine.org 區域文件中也確實有 IN NS“膠水”記錄,如下所示:

;; GLUE for aws.starshine.org hosted in AWS:
aws.starshine.org.      IN  NS  ns-1494.awsdns-58.org.
                       IN  NS  ns-773.awsdns-32.net.
                       IN  NS  ns-1751.awsdns-26.co.uk.
                       IN  NS  ns-111.awsdns-13.com.

ns-1494.awsdns-58.org.      IN A   205.251.197.214
ns-773.awsdns-32.net.       IN A   205.251.195.5
ns-1751.awsdns-26.co.uk.    IN A   205.251.198.215
ns-111.awsdns-13.com.       IN A   205.251.192.111

我還嘗試將轉發器列表添加到我的named.conf

zone "aws.starshine.org" {
   type forward;
   forwarders { 205.251.197.214;
                205.251.195.5;
                205.251.198.215;
                205.251.192.111;
       };
   };

看來我的 starshine.org 區域文件中有一些其他錯誤導致我的 starshine.org 名稱伺服器向我提供 SERVFAIL 響應。我猜它還從輔助節點提供記憶體響應,並且錯誤在我的日誌中並不明顯。

起作用的是安裝nslint包(Debian)……執行它並遍歷每個錯誤,修復它,直到錯誤消失。

在這種情況下,委派只使用我的區域文件中的“膠水”記錄……而且我沒有嘗試從屬,甚至沒有在我的named.conf中定義轉發器。

正如 ChrisV 所說,您似乎正在嘗試設置您無法執行的區域轉移。

要為子域進行委派,您只需NS在父區域中為子域創建記錄。

所以在starshine.org’s zonefile 中:

aws    IN  NS    ns-1494.awsdns-58.org.
aws    IN  NS    ns-773.awsdns-32.net.
aws    IN  NS    ns-1751.awsdns-26.co.uk.
aws    IN  NS    ns-111.awsdns-13.com.

aws.starshine.org.然後在路由 53 名稱伺服器中定義區域的所有記錄。

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