动态全局主机名和 nsupdate 不会向权威名称服务器发送更新

动态全局主机名和 nsupdate 不会向权威名称服务器发送更新

我正在尝试使用 DDNS。我有两台 Apple 产品:一台 Airport Extreme 和一台 Macbook Air,我想通过“动态全局主机名”功能更新我的 DDNS 服务器。

我在云(BIND)中设置了 DDNS,并通过我的本地 Ubuntu 机器(nsupdate 版本显然是“nsupdate:非法选项--V”,我可以简单地说:

nsupdate -D -k [TSIG key path]
> update add jeff-laptop-2013.ddns.mydomain.com 86400 A [my IP]
> send
Found zone name: ddns.mydomain.com
The master is: ns1.ddns.mydomain.com
send_update()
Sending update to [IP address of cloud DNS server]#53

并正确地向权威名称服务器发送更新ns1.ddns.mydomain.com

但是,在我的 OS X 笔记本电脑(我想通过动态全局主机名、nsupdate 版本 9.10.1-P1 进行更新的笔记本电脑)上,它坚持将其发送到我的“主”DNS 服务器(除非我指定 NS),而不是权威 NS:

> send
Found zone name: ddns.mydomain.com
The master is: ns1.ddns.mydomain.com
send_update()
Sending update to 8.8.8.8#53

(ns1.ddns.mydomain.com 无法解析为 8.8.8.8。)此操作失败,并显示:

; TSIG error with server: expected a TSIG or SIG(0)
show_message()

Reply from update query:
;; ->>HEADER<<- opcode: UPDATE, status: SERVFAIL, id:   3677
;; flags: qr ra; ZONE: 1, PREREQ: 0, UPDATE: 0, ADDITIONAL: 0
;; ZONE SECTION:
;ddns.mydomain.com.         IN  SOA

这可能是动态全局主机名(偶尔,但不可重现)打印以下错误的原因:

2/7/15 10:55:43.623 AM discoveryd[27932]: Basic DNSResolver UDNS Send(): UDP Sendto() failed to DNSNameServer 8.8.8.8 Port 53 errno 49, fd 42, ErrLogCount 2 ResolverIntf:0

我不熟悉 BIND 或动态全局主机名。这是一个错误吗?我该如何查找这个问题?有什么建议吗?

答案1

是的,它看起来与这个错误有关。

https://kb.isc.org/article/AA-01220/0/nsupdate-in-BIND-9.9.6-9.10.0-and-9.10.1-fail-to-resolve-the-SOA-MNAME-in-some-cases.html

另外,我认为密钥类型必须是 HOST,而不是 ZONE(dnssec-keygen 的默认设置)或 USER。

相关内容