ОБНОВИТЬ:
Версия BIND:
[root@10.224.45.130] $ named -v
BIND 9.3.6-P1-RedHat-9.3.6-16.P1.el5
Операционная система:
CentOS release 5.6 (Final)
После запуска [root@10.224.45.131] $ dig @10.224.45.130 example.com. axfr
:
Раб:
; <<>> DiG 9.3.6-P1-RedHat-9.3.6-16.P1.el5 <<>> @10.224.45.130 example.com. axfr
; (1 server found)
;; global options: printcmd
; Transfer failed.
Мастер:
28-Aug-2011 12:29:01.384 client 10.224.45.131#60553: query: example.com IN AXFR -
28-Aug-2011 12:29:01.384 client 10.224.45.131#60553: zone transfer 'example.com/AXFR/IN' denied
То же сообщение об ошибке, что и раньше.
ОБНОВЛЕНИЕ 2:
[root@10.224.45.130 ~] # iptables -L -n -v
Chain INPUT (policy DROP 30235 packets, 1747K bytes)
pkts bytes target prot opt in out source destination
171K 23M ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0
0 0 ACCEPT all -- tun0 * 0.0.0.0/0 0.0.0.0/0
0 0 ACCEPT all -- tap0 * 0.0.0.0/0 0.0.0.0/0
57196 6930K ACCEPT all -- br0 * 0.0.0.0/0 0.0.0.0/0
688 57376 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0 icmp type 8
37869 6120K ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
392 21216 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:22
1 64 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:53
74 5275 ACCEPT udp -- * * 0.0.0.0/0 0.0.0.0/0 udp dpt:53
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:80
1 64 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:110
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:143
3 192 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:389
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:443
1 64 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:465
1 64 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:587
13 832 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:636
0 0 ACCEPT udp -- * * 0.0.0.0/0 0.0.0.0/0 udp dpt:694
1 64 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:843
1 64 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:873
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:953
119 7584 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:993
0 0 ACCEPT udp -- * * 0.0.0.0/0 0.0.0.0/0 udp dpt:993
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:1194
0 0 ACCEPT udp -- * * 0.0.0.0/0 0.0.0.0/0 udp dpt:1194
1 48 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:3306
1 64 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:5901
0 0 ACCEPT tcp -- * * 0.0.0.0/0 10.224.45.130 tcp dpt:10000
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:11211
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:11212
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:11213
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:11511
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:11512
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:11513
Chain FORWARD (policy DROP 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
2987 372K ACCEPT all -- br0 * 0.0.0.0/0 0.0.0.0/0
0 0 ACCEPT all -- * br0 0.0.0.0/0 0.0.0.0/0
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:80
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:443
Chain OUTPUT (policy ACCEPT 246K packets, 37M bytes)
pkts bytes target prot opt in out source destination
Я, наверное, просмотрел каждую страницу, посвященную настройке BIND master / slave, и я не могу, хоть убей, заставить работать передачу зоны.
Вот моя установка: (прокрутите вниз, чтобы увидеть описание проблемы)
Мастер: 10.224.45.130
/etc/ named.conf
options {
directory "/var/named";
version "unknown";
pid-file "/var/run/named/named.pid";
recursion yes;
allow-recursion { localhost; localnets; };
notify explicit;
allow-transfer {
10.224.45.131;
};
also-notify {
10.224.45.131;
};
};
zone "." {
type hint;
file "named.root";
};
zone "example.com" IN {
type master;
file "data/example.com.hosts";
};
Раб: 10.224.45.131
/etc/ named.conf
options {
directory "/var/named";
version "unknown";
pid-file "/var/run/named/named.pid";
recursion yes;
allow-recursion { localhost; localnets; };
notify yes;
allow-transfer { "none"; };
allow-notify {
10.224.45.130;
};
};
zone "." {
type hint;
file "named.root";
};
zone "example.com" IN {
type slave;
file "slaves/example.com.hosts";
masters {
10.224.45.130;
};
};
Вот в чем проблема. Когда я перезапускаю named на подчиненном сервере, он видит, что файлы зоны еще не существуют, и запрашивает передачу с главного сервера:
named.log (подчиненный)
[10.224.45.131] zone example.com/IN: no database exists yet, requesting AXFR of initial version from 10.224.45.130#53
... после чего мастер-сервер получает запрос на передачу:
named.log (Мастер)
[10.224.45.130] client 10.224.45.131#53467: query: example.com IN AXFR -
... и отвечает запросом на передачу, который отклоняется:
named.log (Мастер)
[10.224.45.130] client 10.224.45.131#53467: zone transfer 'example.com/AXFR/IN' denied
... на подчиненном сервере он отображается как ОТКАЗАННЫЙ:
named.log (подчиненный)
[10.224.45.131] transfer of 'example.com/IN' from 10.224.45.130#53: failed while receiving responses: REFUSED
Снова и снова просматривая все конфиги, я не могу найти ничего плохого в настройках. У меня есть IP-адрес главного сервера, указанный в masters
настройки конфигурации подчиненной зоны, у меня есть IP-адрес подчиненного сервера, указанный в allow-transfer
настройка основных опций.
Все IP-адреса такие, какими они должны быть, это не значит, что он пытается использовать общедоступный IP-адрес и получает отказ, потому что IP-адрес не совпадает. У меня есть настройка iptables, чтобы разрешить TCP / UDP-соединения на порте 53 (и 953) на обоих серверах. Я правильно настроил права доступа к файлам, чтобы каталог / slaves, в котором хранятся файлы подчиненной зоны, был доступен для записи named
пользователь.
Независимо от того, что я делаю, я всегда получаю одну и ту же ошибку. Если кто-нибудь может дать мне понять, чего мне не хватает, я был бы очень признателен!
Нашел проблему. Я использую chrooted BIND, но редактировал файлы conf в / etc, а не в / var / named / chroot / etc. Так что изменений, которые я делал, не было видно. Я скопировал файлы conf в каталог chroot, и теперь все работает нормально.
Для начала попробуйте проверить, работает ли передача зоны.
На подчиненном сервере выполните команду dig @master your-domain. Axfr
Какие версии BIND и какая ОС?
Может показаться, что это уже покрыто allow-transfer
заявление в options
, но попробуйте добавить явный allow-transfer
заявление под зону.
Я действительно не вижу ничего плохого в вашей конфигурации. Похоже на это должен работай. Привязка вообще слушает этот порт? (То есть делать любой запросы выполнены? Или все они терпят неудачу?)
Что ж, у меня есть еще две идеи, которые стоит попробовать.
Убедитесь, что ваши часы обновлены (по крайней мере, в разумных пределах) на обоих серверах.
Возможно, вам мешает SELinux. Попробуйте временно отключить его для проверки.