如何将子域名委托给 Route53

如何将子域名委托给 Route53

我在自己的 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

如果我运行如下命令:挖掘 aws.starshine.org。@ns-111.awsdns-13.com我看到了 SOA 记录。如果我添加纳秒我看到了 Amazon NS 记录。但如果我通过常规 NDS 或我自己的 starshine.org 权威 DNS 服务器进行查询,则看不到委派。

以下是我从其中几个中得到的结果命令:

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 重新启动)。

我在日志中看到以下内容:

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 记录,只需查询即可找到。

(设置我的解析配置文件(例如,在 VPC 中的节点上)指向 AWS DNS 名称服务器确实允许我按预期查看子域。(但是这会破坏所有其他 DNS,并显示以下消息:状态:已拒绝警告:请求递归但不可用

我忘了在之前的帖子中提到它,但我确实也有 IN NS“粘合”记录到我的 starshine.org 区域文件,如下所示:

;; 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

我还尝试将转发器列表添加到我的命名配置文件

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

答案1

正如 ChrisV 所说,看起来您正在尝试设置一个无法执行的区域传输。

要为子域进行委派,您只需要NS在父区域中为子域创建记录。

因此在starshine.org的区域文件中:

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 名称服务器中定义该区域的所有记录。

答案2

看来我的 starshine.org 区域文件中存在其他错误,导致我的 starshine.org 名称服务器向我发送 SERVFAIL 响应。我猜它也向我发送了来自辅助服务器的缓存响应,而这些错误在我的日志中并不明显。

真正起作用的是安装nslint包(Debian)...运行它并遍历每个错误,修复它,直到错误消失。

在这种情况下,委派仅与我的区域文件中的“粘合”记录一起工作……并且我并没有试图从属,甚至没有在我的命名配置文件

相关内容