Пытаюсь сделать DDNS. У меня есть два продукта Apple: Airport Extreme и Macbook Air, и я хочу обновить свой сервер DDNS с помощью функции «Динамическое глобальное имя хоста».
Я устанавливаю DDNS в облаке (BIND) и через мою локальную машину 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), а не авторитетный НС:
> 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 или Dynamic Global Hostname. Это ошибка? Как я мог разобраться в этой проблеме? Какие-либо предложения?
Да, похоже, это связано с этой ошибкой.
Кроме того, я думаю, что тип ключа должен быть HOST, а не ZONE (по умолчанию для dnssec-keygen) или USER.