Мой скрытый DNS-мастер отправляет уведомления только на один из серверов имен для зоны. У меня есть 3 именованных сервера ns0, ns1 и ns2, на всех запущенных bind 9.7.3.dfsg-1ubuntu4.1.
Когда обновление обрабатывается, мастер (ns0), кажется, ведет себя нормально.
нс0 (192.168.2.50)
zone domain.org/IN: sending notifies (serial 2012060703)
client 192.168.2.52#42892: transfer of 'domain.org/IN': AXFR-style IXFR started: TSIG rndc-key
client 192.168.2.52#42892: transfer of 'domain.org/IN': AXFR-style IXFR ended
нс2 (192.168.2.52)
client 192.168.2.50#3762: received notify for zone 'domain.org': TSIG 'rndc-key'
zone domain.org/IN: Transfer started.
transfer of 'domain.org/IN' from 192.168.2.50#53: connected using 192.168.2.52#55747
zone domain.org/IN: transferred serial 2012060704: TSIG 'rndc-key'
transfer of 'domain.org/IN' from 192.168.2.50#53: Transfer completed: 1 messages, 34 records, 1028 bytes, 0.001 secs (1028000 bytes/sec)
На ns1 ничего не происходит. Я включил уровень ведения журнала, но в системном журнале нет информации о фактических серверах имен, которым привязка отправляла уведомления, так что я предполагаю, что это то, что он не регистрирует.
Я также пробовал смотреть tcpdump, он никогда не пытается уведомить ns1 только ns2
192.168.2.50.56278 > 192.168.2.52.53: [udp sum ok] 56418 notify [b2&3=0x2400] [1a] [1au]
↵ SOA? domain.org. domain.org. [0s] SOA ns1.domain.net. dnsmaster.domain.net.
↵ 2012060801 10800 3600 604800 3600 ar: rndc-key. ANY [0s] TSIG hmac-md5.sig-alg.reg.int. fudge=300 maclen=16 origid=56418 error=0 otherlen=0 (174)
в авторитетной зоне есть записи как ns1, так и ns2
$ORIGIN domain.org.
$TTL 3h
@ IN SOA ns1.domain.net. dnsmaster.domain.net. (
2012060801 ; Serial yyyymmddnn
3h ; Refresh After 3 hours
1h ; Retry Retry after 1 hour
1w ; Expire after 1 week
1h ) ; Minimum negative caching of 1 hour
@ 3600 IN NS ns1.domain.net.
@ 3600 IN NS ns2.domain.net.
// Редактировать
я добавил also-notify {192.168.2.51;192.168.2.52;};
явно в файл зоны, и все работает нормально, и ns1, и ns2 получают сообщения уведомления, и передача выполняется успешно.
У меня создалось впечатление, что привязка автоматически отправляет уведомления всем записям NS в зоне, может быть, это ошибка?
Вы пробовали это установить?
notify-to-soa yes;
Из справочника по конфигурации BIND 9:
уведомить Soa
Если да, не проверяйте серверы имен в NS RRset на соответствие SOA MNAME. Обычно сообщение NOTIFY не отправляется на SOA MNAME (SOA ORIGIN), поскольку оно должно содержать имя конечного мастера. Иногда, однако, ведомое устройство указано как SOA MNAME в скрытых основных конфигурациях, и в этом случае вы хотите, чтобы конечный ведущий по-прежнему отправлял сообщения NOTIFY на все серверы имен, перечисленные в NS RRset.
Не зная об этом много, может ли установка SOA на ns1 сбить с толку ns0 настолько, чтобы он не отправлял ему обновления?
@ IN SOA ns1.domain.net.
т.е. устанавливает его на,
@ IN SOA ns0.domain.net.
исправьте эту проблему (хотя я понимаю, что это может вызвать другие)