Передача зоны DNS (NSD) не работает
Я пытаюсь создать настройки master/slave с использованием NSD. У меня установлен NSD на двух серверах. Серверы работают отлично; когда я выполняю нормальные DNS-запросы, они возвращают информацию из файлов зоны. Тем не менее, когда я пытаюсь nsdc notify
на ведущем устройстве ведомый, кажется, не берет новую конфигурацию зоны.
Файл nsd.conf на мастере выглядит так:
## NSD authoritative only DNS
#
server:
logfile: "/var/log/nsd.log"
port: 53
server-count: 1
ip4-only: yes
hide-version: yes
identity: ""
zonesdir: "/etc/nsd3"
verbosity: 3
zone:
name: domain.com
zonefile: www.domain.com.forward
notify: <ip slave> NOKEY
provide-xfr: <ip slave> NOKEY
nsd.conf на подчиненном сервере выглядит так:
## NSD authoritative only DNS
#
server:
logfile: "/var/log/nsd.log"
port: 53
server-count: 1
ip4-only: yes
hide-version: yes
identity: ""
zonesdir: "/etc/nsd3"
verbosity: 3
zone:
name: domain.com
zonefile: www.domain.com.forward
allow-notify: <ip master> NOKEY
request-xfr: AXFR <ip master> NOKEY
Файл зонного файла на главном сервере выглядит следующим образом:
$ORIGIN domain.com.
$TTL 86400 ; default time to live
@ IN SOA ns1.domain.com. admin.domain.com. (
2011010203 ; serial number
28800 ; Refresh
7200 ; Retry
864000 ; Expire
86400 ; Min TTL
)
NS ns1.domain.com.
MX 10 mailfilter.hostingprovider.com.
mail IN A <ip mailserver hostingprovider>
www IN A <ip master>
ns1 IN A <ip master>
ns2 IN A <ip slave>
newvalue IN A 8.8.8.8
* IN A <ip master>
Файл пересылки на подчиненном сервере такой же, за исключением строки с "новым значением" (значением, которое я хочу передать).
Если я выполню nsdc notify
на главном сервере в журналах ведомого появляется следующее:
[1487507948] nsd[26038]: info: Notify received and accepted, forward to xfrd
[1487507948] nsd[26037]: info: Handle incoming notify for zone domain.com
Однако файлы зоны, похоже, не получают обновлений. После уведомления я выполняю nsdc patch; nsdc rebuild; nsdc reload; service nsd3 restart
на подчиненном сервере, просто чтобы быть уверенным. Но это также не меняет файлы зон.
Кроме того, если я выполню dig axfr @<master ip> domain.com
на подчиненном сервере я получаю хороший перевод зоны.
Почему подчиненный сервер не обновляет файлы зоны?
1 ответ
Серийный номер зоны должен быть увеличен после любых изменений
Ведомый сначала проверит, имеет ли он самую текущую зону перед попыткой передачи, в противном случае уведомление игнорируется. Обычной практикой является использование формы YYYYMMDDxx, где xx - это младший номер ревизии (если случайно установлен слишком большой, необходимо выполнить процесс, чтобы снова уменьшить число)
В более поздних версиях nsd где nsd-control
заменяет nsdc, команда transfer
может быть использован для попытки, или force_transfer
обновить независимо от серийного изменения.