Я пытаюсь реализовать настройку привязки главный->подчиненный между двумя машинами, но у меня возникла проблема с 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
не работает с исходящим трафиком...
Как я могу это исправить?
решение1
Вы ищете notify-source
вариант. ИзСВЯЗАТЬ РУКУ:
уведомить-источник
notify-source определяет, какой локальный адрес источника и, опционально, порт UDP будут использоваться для отправки сообщений NOTIFY. Этот адрес должен быть указан в пункте masters zone подчиненного сервера или в пункте allow-notify. Этот оператор устанавливает notify-source для всех зон, но может быть переопределен на основе зоны или представления путем включения оператора notify-source в блок зоны или представления в файле конфигурации.
Что касается того, почему BIND ведет себя таким образом, то это довольно типично для большинства приложений. Исходный IP-адрес локально инициированного трафика по умолчанию соответствует основному IP-адресу интерфейса, связанного с маршрутом. В системе Linux вы можете просмотреть исходный IP-адрес, связанный с каждым маршрутом, введя ip route show
и посмотрев на значения после src
ключевого слова.