我已经通过 rndc 在本地添加了区域 test.net,并且运行正常。接下来,我想通过 nsupdate 更新它,但在本地,我的区域配置是,
zone test.net {type master; file "zones-remote/masters/test.net" ; allow-update{localhost;};};
当我这样做的时候,
nsupdate
server localhost
zone sample.test.net
update add sample.test.net 86400 A 134.23.32.4
send
它给出错误“更新失败:NOTAUTH”
在发送之前通过节目检查,
Outgoing update query:
;; ->>HEADER<<- opcode: UPDATE, status: NOERROR, id: 0
;; flags:; ZONE: 0, PREREQ: 0, UPDATE: 0, ADDITIONAL: 0
;; ZONE SECTION:
;test.net. IN SOA
;; UPDATE SECTION:
sample.test.net. 86400 IN A 134.23.32.4
当我尝试的时候,
nsupdate
server localhost
zone test.net # Actual zone name
update add sample.test.net 86400 A 134.23.32.4
send
然后出现错误“SERVFAIL”。
我的区域文件如下所示,
@ 86400 IN SOA test.net. sampling.gmail.com. (
2014101001
3h
1h
1w
30m86400s)
@ 84600 NS ns1.test.net.
@ 84600 IN A 42.42.42.42
ns1 84600 IN A 42.42.42.42
该区域文件是正确的,它可以解析针对其域的查询。
答案1
当您指定 时zone
,您将定义所有后续交易的“来源”。除非存在尾随点,否则您指定的记录名称将被视为相对于此来源。
- 其中
zone sample.test.net
,记录应该是@
或sample.test.net.
。 - 其中
zone test.net
,记录应该是sample
或sample.test.net.
。
发生 SERVFAIL 的原因是,您请求的记录映射到了sample.test.net.test.net.
,而该记录超出了您定义的sample.test.net.
区域。
sample.test.net.sample.test.net.
我不太清楚为什么您在第一个请求(在 范围内)时收到 NOTAUTH sample.test.net.
,但当您运行不受支持的 BIND 版本时,我无法花大量时间推测那里发生了什么。确保您的nsupdate
客户端和服务器都运行受支持的版本,如果问题仍然存在,请更新您的问题。