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

BIND9: отправлять уведомления по определенному IP-адресу

Я пытался реализовать настройку bind master-> slave между двумя машинами, но у меня проблема с IP-адресом BIND, используемым на главном устройстве для уведомления моей подчиненной машины.

Вот моя установка:

Master: master.site.com - 10.0.0.2
Slave: slave.site.com - 10.0.0.10

У Мастера есть авторитетная зона для site.com и он настроен на уведомление всех ведомых устройств при изменении зоны. Зона работает исправно. Он отлично отвечает на запросы и dig @10.0.0.2 -t SOA site.com

Итак, на мастере есть это named.conf.options:

options {
    directory "/var/cache/bind";

    dnssec-validation auto;
    auth-nxdomain no;

    listen-on { 10.0.0.2; };
    listen-on-v6 { any; };
    allow-query     { any; };
    recursion yes;
    allow-recursion { localhost; };
    allow-notify { localhost; };
    allow-transfer { localhost; 10.0.0.10; };
    version none;

    notify yes;
    also-notify { 10.0.0.10; };

};

На раб:

options {
    directory "/var/cache/bind";

    dnssec-validation auto;
    auth-nxdomain no;

    listen-on { 10.0.0.10; };
    listen-on-v6 { any; };
    allow-query     { any; };
    recursion yes;
    allow-recursion { localhost; };
    allow-notify { localhost; 10.0.0.2; };
    allow-transfer { localhost; 10.0.0.2; };
    version none;
};

Для начала, уведомления не работают, используя tcpdump на ведомой машине я получил это сообщение:

02:32:50.269377 IP 10.0.0.1.15271 > 10.0.0.10.53: 64103 notify [b2&3=0x2400] [1a] SOA? site.com. (85)
02:32:50.269662 IP 10.0.0.10.53 > 10.0.0.1.15271: 64103 notify Refused- 0/0/0 (27)

Как видите, хотя мастер настроен на прослушивание 10.0.0.2 при отправке уведомлений он отправляет их, используя свой основной IP-адрес 10.0.0.1 и по логике мой раб отказался от уведомления ...

Почему мастер не отправляет уведомления 10.0.0.2? Есть ли какая-нибудь конфигурация, где я могу это заставить? У машины 3 IP-адреса, один для веб-сайта, другой для электронной почты и еще один для DNS ... Мне нужно это сделать ТОЛЬКО использовать 10.0.0.2 для DNS, но видимо listen-on похоже не работает с исходящим трафиком ...

Как я могу это исправить?

Вы ищете notify-source вариант. Из BIND ARM:

уведомить источник

notify-source определяет, какой локальный адрес источника и необязательно порт UDP будет использоваться для отправки сообщений NOTIFY. Этот адрес должен присутствовать в разделе зоны master подчиненного сервера или в разделе allow-notify. Этот оператор устанавливает источник уведомления для всех зон, но его можно переопределить для каждой зоны или каждого представления, включив оператор notify-source в блок зоны или представления в файл конфигурации.

Что касается того, почему BIND ведет себя именно так, то это довольно типично для большинства приложений. По умолчанию в качестве IP-адреса источника локально инициированного трафика используется основной IP-адрес интерфейса, связанного с маршрутом. В системе Linux вы можете просмотреть исходный IP-адрес, связанный с каждым маршрутом, набрав ip route show и глядя на значения, следующие за src ключевое слово.