Назад | Перейти на главную страницу

Скрытый DNS-мастер отправляет уведомление только одному ведомому

Мой скрытый 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.

исправьте эту проблему (хотя я понимаю, что это может вызвать другие)