Краткое описание моей проблемы заключается в том, что мы начали обновление DNS-сервера здесь, на моем предприятии.
В настоящее время у нас есть 2 внутренних DNS-сервера и 2 внешних DNS-сервера. Мы обновляем оборудование и объединяем наши серверы, так что у нас есть 1 главный и 1 подчиненный, которые будут заботиться как о внутренних, так и о внешних DNS. Оба сервера имеют два сетевых адаптера, которые были подключены к IP: один адрес находится во внешней сети общего пользования, а другой - во внутренней. На моем мастере я установил внутреннее представление, которое доступно только из диапазонов нашей внутренней сети, и внешнее представление, которое может запрашивать кто угодно. У меня все настроено, и разрешение DNS работает нормально. Проблема, с которой я сталкиваюсь, заключается в том, что когда я настроил подчиненное устройство и установил его, подчиненное устройство будет наследовать обновления только для зон, перечисленных во внутреннем представлении. Все зоны внешнего обзора выдают ошибку
;<<>> DiG 9.8.2rc1-RedHat-9.8.2-0.30.rc1.el6_6.2 <<>> IN AXFR 43.96.32.in-addr.arpa @129.yy.yy.10
;; global options: +cmd
; Transfer failed.
Я искал в Google как сумасшедший и не могу найти решение, надеюсь, кто-то здесь может понять, почему это происходит.
Ниже я приведу образцы моих файлов master / slave named.conf. Моя система в настоящее время работает под управлением RHEL 6.6 и Bind DNS 9.8.2.
Мастер - Named.conf
acl internal_hosts { 10.101.0.0/16; 172.21.0.0/16;
10.2.0.0/16; 169.254.0.0/16;
172.23.0.0/16; 32.0.0.0/8;
12.109.164.0/24; 12.109.165.0/24;
63.79.18.0/24; 63.88.0.0/16;
129.42.0.0/16; 4.30.26.0/24;
4.28.188.0/24; 172.21.131.248/29;};
acl internal_slave { 10.xx.xx.2; };
acl external_slave { 129.yy.yy.11; };
acl internal_master { 10.xx.xx.1; };
acl external_master { 129.yy.yy.10; };
options {
directory "/etc";
pid-file "/var/run/named/named.pid";
dnssec-enable no;
query-source port 53;
forward only;
notify yes;
allow-query { any; };
listen-on {
10.xx.xx.1;
127.0.0.1;
129.yy.yy.10;
};
forwarders {
129.34.20.80;
198.4.83.35;
4.2.2.2;
8.8.8.8;
};
allow-transfer {127.0.0.1; };
};
server 10.xx.xx.2 {
transfer-format many-answers;
transfers 10000;
};
server 129.yy.yy.11 {
transfer-format many-answers;
transfers 10000;
};
view "Internal" {
match-clients { internal_hosts; !external_slave; internal_slave; };
also-notify { 10.xx.xx.2; };
allow-transfer { internal_slave; };
recursion yes;
allow-recursion { internal_hosts; };
transfer-source 10.xx.xx.1;
zone "64.2.10.in-addr.arpa" {
type master;
also-notify { 10.xx.xx.2; };
notify yes;
allow-transfer { internal_slave; };
file "/var/named/10.2.64.rev";
};
view "External" {
match-clients { !internal_slave; external_slave; any; };
recursion no;
allow-transfer { external_slave; };
also-notify { 129.yy.yy.11; };
transfer-source 129.yy.yy.10;
zone "50.146.204.in-addr.arpa" {
type master;
notify yes;
also-notify {129.yy.yy.11;};
allow-transfer {external_slave;};
file "/var/named/204.146.50.rev";
};
Подчиненный - Named.conf
acl internal_hosts { 10.101.0.0/16; 172.21.0.0/16;
10.2.0.0/16; 169.254.0.0/16;
172.23.0.0/16; 32.0.0.0/8;
12.109.164.0/24; 12.109.165.0/24;
63.79.18.0/24; 63.88.0.0/16;
129.42.0.0/16; 4.30.26.0/24;
4.28.188.0/24; 172.21.131.248/29;
};
acl internal_slave { 10.xx.xx.2; };
acl external_slave { 129.yy.yy.11; };
acl internal_master { 10.xx.xx.1; };
acl external_master { 129.yy.yy.10; };
options {
directory "/etc";
pid-file "/var/run/named/named.pid";
dnssec-enable no;
query-source port 53;
forward only;
allow-query { any; };
listen-on port 53 {
127.0.0.1;
10.xx.xx.2;
129.yy.yy.11;
};
forwarders {
129.34.20.80;
198.4.83.35;
4.2.2.2;
8.8.8.8;
};
allow-transfer {127.0.0.1; };
};
server 10.xx.xx.1 {
transfer-format many-answers;
transfers 10000;
};
server 129.yy.yy.10 {
transfer-format many-answers;
transfers 10000;
};
view "Internal" {
match-clients { internal_hosts; !external_master; internal_master; };
recursion yes;
allow-recursion {internal_hosts;};
allow-transfer { internal_master; };
transfer-source 10.xx.xx.2;
allow-notify {10.xx.xx.1;};
zone "64.2.10.in-addr.arpa" {
type slave;
masters {10.xx.xx.1;};
allow-transfer {internal_master;};
allow-update {internal_master;};
file "/var/named/slaves/10.2.64.Internal.rev";
};
view "External" {
allow-transfer {external_master;};
allow-notify {129.yy.yy.10;};
transfer-source 129.yy.yy.11;
match-clients {!internal_master; external_master; internal_hosts; any;};
recursion no;
zone "50.146.204.in-addr.arpa" {
type slave;
masters {129.yy.yy.10;};
allow-transfer {external_master;};
allow-update {external_master;};
file "/var/named/slaves/204.146.50.External.rev";
};
Вот вывод из моего / var / log / messages, запрошенных о DIG моему Мастеру. DIG для brsbld.ihost.com - это ошибка во внешнем представлении, тогда как DIG для bldbcrs.net находится во внутреннем представлении и проходит нормально.
Apr 17 09:32:31 bbridns01 named[1717]: client 10.101.8.2#55756: view Internal: transfer of 'bldbcrs.net/IN': AXFR started
Apr 17 09:32:31 bbridns01 named[1717]: client 10.101.8.2#55756: view Internal: transfer of 'bldbcrs.net/IN': AXFR started
Apr 17 09:32:31 bbridns01 named[1717]: client 10.101.8.2#55756: view Internal: transfer of 'bldbcrs.net/IN': AXFR ended
Apr 17 09:32:31 bbridns01 named[1717]: client 10.101.8.2#55756: view Internal: transfer of 'bldbcrs.net/IN': AXFR ended
Apr 17 09:32:56 bbridns01 named[1717]: client 129.42.206.11#41783: view Internal: bad zone transfer request: 'brsbld.ihost.com/IN': non-authoritative zone (NOTAUTH)
Apr 17 09:32:56 bbridns01 named[1717]: client 129.42.206.11#41783: view Internal: bad zone transfer request: 'brsbld.ihost.com/IN': non-authoritative zone (NOTAUTH)
Он, ребята, просто хотел обновить это, чтобы вы знали, что я нашел для решения. С моей внутренней точки зрения аргумент о совпадении клиентов приводил меня в замешательство.
match-clients { internal_hosts; !external_slave; internal_slave; };
ACL internal_hosts включает диапазон 129.42.0.0/16. Он был указан перед! External_slave; аргумент, поэтому он сначала взял это, потому что подчиненный сервер - 129.42.206.11, и поместил его во внутреннее представление. Я изменил его так, чтобы он сначала исключал external_slave, а затем его правильно подбирал внешний вид.
match-clients { !external_slave; internal_hosts; internal_slave; };
Я предполагаю, что эта строка в ваших основных параметрах конфигурации не позволяет другим получить зоны:
allow-transfer {127.0.0.1; };
Я бы попробовал удалить эту строку или обновить ее, чтобы включить ваш external_master.
Возможно, это связано с тем, что у вас есть несколько представлений в вашей конфигурации, представление по умолчанию получает эту ограниченную директиву разрешения-передачи из параметров.
http://docs.freebsd.org/doc/8.3-RELEASE/usr/share/doc/bind9/arm/Bv9ARM.ch06.html