我在bind9下在自己的 linode 上托管了一个域,我在 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;
};
};
Run Code Online (Sandbox Code Playgroud)
那里的 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
Run Code Online (Sandbox Code Playgroud)
...这些名字是从这个命令的输出中粘贴出来的:
aws route53 get-hosted-zone --id /hostedzone/Z24Z8xxxxxxxIN
Run Code Online (Sandbox Code Playgroud)
如果我运行以下命令:dig aws.starshine.org。@ns-111.awsdns-13.com我看到了 SOA 记录。如果我添加ns,我会看到 Amazon NS 记录。但是,如果我通过普通 NDS 或通过我自己的 starshine.org 权威 DNS 服务器进行查询,我将看不到代表团。
这是我从几个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
Run Code Online (Sandbox Code Playgroud)
我不明白为什么在这些情况下我会收到 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
Run Code Online (Sandbox Code Playgroud)
那么,我的代表团做错了什么?我是否需要在 AWS Route53 端启用某些功能?它向我展示了一个 SOA 和 NS 记录(以及我添加的一个 A 记录,可以查询只是找到。
(将我的resolv.conf(例如,在 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
Run Code Online (Sandbox Code Playgroud)
我还尝试向我的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;
};
};
Run Code Online (Sandbox Code Playgroud)
正如 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.
Run Code Online (Sandbox Code Playgroud)
然后aws.starshine.org.
在路由 53 名称服务器中定义区域的所有记录。
我的 starshine.org 区域文件中似乎存在一些其他错误,导致我的 starshine.org 名称服务器向我提供 SERVFAIL 响应。我猜它还提供了来自辅助节点的缓存响应,并且错误在我的日志中并不明显。
真正起作用的是安装nslint软件包(Debian)...运行它并遍历每个错误,修复它,直到错误消失。
在这种情况下,委托仅使用我的区域文件中的“粘合”记录......并且我不会尝试在我的named.conf中奴役甚至定义转发器。
归档时间: |
|
查看次数: |
11224 次 |
最近记录: |