I'm trying to do DDNS. I have two Apple products: an Airport Extreme and a Macbook Air, and I want to update my DDNS server via the "Dynamic Global Hostname" feature.
I setup DDNS in the cloud (BIND), and via my local Ubuntu machine (nsupdate version is, apparently, "nsupdate: illegal option -- V", I can simply say:
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
and it correctly sends an update to the authoritative nameserver ns1.ddns.mydomain.com
.
However, on my OS X laptop (the one I want to update via Dynamic Global Hostname, nsupdate version 9.10.1-P1), it insists on sending it to my "main" DNS server (unless I specify the NS), rather than the authoritative 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 does not resolve to 8.8.8.8.) This fails with:
; 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
This might be why the Dynamic Global Hostname (occasionally, but not reproducibly) prints the following error:
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
I'm not familiar with BIND or Dynamic Global Hostname. Is this a bug? How could I look into this problem? Any suggestions?