我正在尝试使用 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
是的,它看起来与这个错误有关。
另外,我认为密钥类型必须是 HOST,而不是 ZONE(dnssec-keygen 的默认设置)或 USER。