Я пытался реализовать настройку 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
ключевое слово.