Ivanovo Linux Users Group - Not logged in
Forum Help Search Login
Previous Next Up Topic Администрирование / Общее администрирование / DNS bind 9.6.2 не передает некоторые зоны (28982 hits)
- By hawk Date 18.11.10 06:33 Edited 18.11.10 06:42
Приветствую всех!
Бинд весь мозг взорвал. Делаю три зоны, фактически под копирку, пробел в конце есть все проверено не однократно, зоны в норме. В конфе бинда все однотипно. Одну зону передает на вторичный, две нет. Что имеем:
# rndc status
version: 9.6.2-P2 (DNS)
CPUs found: 4
worker threads: 4
number of zones: 16
debug level: 0
xfers running: 0
xfers deferred: 0
soa queries in progress: 0
query logging is ON
recursive clients: 0/0/1000
tcp clients: 0/100
server is up and running

named.conf описание зон:
zone "1.com"       {
                        type master;
                        file "1.com.hosts";
                        allow-query     { any; };
                        notify yes;
                        also-notify     { xxx.xxx.xxx.xxx; };
                        };
zone "2.ru"   {
                        type master;
                        file "2.ru.hosts";
                        allow-query     { any; };
                        notify yes;
                        also-notify     { xxx.xxx.xxx.xxx; };
                        };
zone "3.org.ru"        {
                        type master;
                        file "3.org.ru.hosts";
                        allow-query     { any; };
                        notify yes;
                        also-notify     { xxx.xxx.xxx.xxx; };
                        };

В options -  allow-transfer  { trusted; };
ACL  trusted - доверенные IP. Добавлял allow-transfer { xxx.xxx.xxx.xxx; }; в описание зон, один фиг.
Теперь файлы самих зон:
1.com:
$ORIGIN .
$ttl 3600
1.com.             IN SOA  ns1.1.su. administrator.1.su. (
                        2010111802
                        900
                        600
                        86400
                        3600 )

                IN  NS  ns1.1.su.
                IN  NS  ns2.2.net.
                A       xxx.xxx.xxx.xxx
$ORIGIN 1.com.
wap             A       xxx.xxx.xxx.xxx
www           CNAME     1.com.

2.ru
$ORIGIN .
$ttl 3600
2.ru.         IN SOA  ns1.1.su. administrator.1.su. (
                        2010111801
                        900
                        600
                        86400
                        3600 )
                IN  NS  ns1.1.su.
                IN  NS  ns2.2.net.
                     A  xxx.xxx.xxx.xxx
$ORIGIN 2.ru.
www              CNAME  2.ru.

3.org.ru
$ORIGIN .
$TTL 3600       ; 1 hour
3.org.ru               IN SOA  ns1.1.su. administrator.1.su. (
                                2010111802 ; serial
                                900        ; refresh (15 minutes)
                                600        ; retry (10 minutes)
                                86400      ; expire (1 day)
                                3600       ; minimum (1 hour)
                                )
                        NS      ns1.1.su.
                IN      NS      ns2.2.net.
                        A       xxx.xxx.xxx.xxx
$ORIGIN 3.org.ru.
www                     A       xxx.xxx.xxx.xxx

Еще раз, в зонах пустая строка учтена везде, все запятые и прочие вплодь до количества пробелов - пересчитаны :-), что в зонах, что в конфе бинда. Как видно из конфа бинда в зонах я явно указываю also-notify. Теперь обновляем у всех трех зон серийники и делаем рестар бинда, что в логе:
18-Nov-2010 09:31:02.809 notify: info: zone 1.com/IN: sending notifies (serial 2010111803)
18-Nov-2010 09:31:02.809 notify: info: zone 2.ru/IN: sending notifies (serial 2010111803)
18-Nov-2010 09:31:02.810 notify: info: zone 3.org.ru/IN: sending notifies (serial 2010111803)
18-Nov-2010 09:31:02.810 general: notice: running
18-Nov-2010 09:31:03.512 queries: info: client xxx.xx.xxx.xxx#59949: query: 1.com IN SOA -E
18-Nov-2010 09:31:03.774 queries: info: client xxx.xx.xxx.xxx#49291: query: 1.com IN IXFR -
18-Nov-2010 09:31:03.774 xfer-out: info: client xxx.xx.xxx.xxx#49291: transfer of '1.com/IN': AXFR-style IXFR started
18-Nov-2010 09:31:03.774 xfer-out: info: client xxx.xx.xxx.xxx#49291: transfer of '1.com/IN': AXFR-style IXFR ended
...
xxx.xx.xxx.xxx - в логе это вторичный DNS

Как видно из лога, все зоны прочитались без ошибок, серийник сменился, но только зона 1.com послала уведомление об изменении на вторчный. И на вторичном соответственно все поменялось. По двум другим зонам - передачи нет.

Все тесты dig на сервере проходят, трансфер на локалхост дигом делал, и по внешнему опять же на сервере делал. Со вторичного телнетом к серверу подключается не проблема. Вобщем перепробовал вроде все. Сами домены пингуются с любого хоста так как allow-query     { any; }; в зонах, глобально
allow-transfer  { trusted; };
        allow-query     { trusted; };
        allow-recursion { trusted; };
        blackhole       { deny; };
только доверенным вобщем.

Что еще делал, в опциях убирал все запреты на трасты и прочее, делал уже открыто всем все, результат тот же :-(. Одна зона норма, две другие не хотят.
echo "good..." | perl -e '$??s:;s:s;;$?::s;;=]=>%-{<-|}<&|`{;;y; -/:-@[-`{-};`-{/" -;;s;;$_;see'
Parent - By hawk Date 18.11.10 06:54 Edited 18.11.10 07:00
Вот такие проверочки проходят
# dig @localhost axfr 2.ru
dig @localhost axfr 3.org.ru
Ну и по другим ИП, которые бинд слушает. С вторичного нет возможности проверить, пока временно он бесплатный: ns2.trifle.net. Когда организую сеть DNS своих (вторичный в DMZ, первичный в Европейском Дата-Центре) будет более полноценная картина, пока так.

Забыл написать, права на файлы зон одинаковые.
echo "good..." | perl -e '$??s:;s:s;;$?::s;;=]=>%-{<-|}<&|`{;;y; -/:-@[-`{-};`-{/" -;;s;;$_;see'
Parent - By hawk Date 18.11.10 07:14
Все! Заработало наконец то ))) (вроде как) ! :-)
echo "good..." | perl -e '$??s:;s:s;;$?::s;;=]=>%-{<-|}<&|`{;;y; -/:-@[-`{-};`-{/" -;;s;;$_;see'
Parent - By hawk Date 18.11.10 07:51
Кому интересно в чем была причина.
Сам master DNS (bind) зоны видит без ошибок. Зоны резольвятся, с любого хоста интернет при обращении к master DNS, теперь о проблемах передачи. В качестве secondary DNS был выбран ns2.trifle.net - там простая веб форма, адрес и хост master DNS, так вот при передаче я думаю скрипту важно сколько там пробельных символов между IN NS имя.ру к примеру. Если брать master и slave DNS - свои (например для nix машины в разных сетях), то все будет работать и работало вобщем-то. Вот такие штуки бывают :-). Всему виной ns2.trifle.net, описания к требованию зон нет, пример зон нет, инфы нет, приходится догадываться.
echo "good..." | perl -e '$??s:;s:s;;$?::s;;=]=>%-{<-|}<&|`{;;y; -/:-@[-`{-};`-{/" -;;s;;$_;see'
Parent By LOE (Site/forum admin) Date 18.11.10 16:48

> так вот при передаче я думаю скрипту важно сколько там пробельных символов между IN NS имя.ру к примеру.


Какая разница, сколько пробелов?
Бинд считывает файлы зон, парсит и хранит в своем формате. При обмене данными передает так, как он хранит. Не думаешь же, что он передает именно содержимое файла? ;-)

Думаю, дело в другом, а не в пробелах.
Может там ограничения на количество обновлений в единицу времени?
Или не перечитывает, пока не прошло время жизни зоны...
"No! Try not! Do. Or do not. There is no try." -- Yoda
Parent - By LOE (Site/forum admin) Date 18.11.10 16:44
Я бы еще про-tcpdump-ил поток, как именно проходят уведомления об обновлении и, соответственно, что идет с той стороны.

PS. после смены серийников, надеюсь, релоадил командой rndc reload? Полностью рестартовать бинд не надо.
"No! Try not! Do. Or do not. There is no try." -- Yoda
Parent - By hawk Date 18.11.10 17:34 Edited 18.11.10 17:48

>> PS. после смены серийников, надеюсь, релоадил командой rndc reload? Полностью рестартовать бинд не надо.


LOE обижаешь :-)
Делал и
rndc reload зона
и 
named-checkconf
и
named-checkzone
возвращает серийник обновленный, статус OK. Про пробельные символы сморозил, но реально не пойму почему ns2.trifle.net в одном случае зону не захватывает, после махинаций с пробелами - захватил. При этом, под не захватывает подразумевается - ждал пару дней! нет зоны и все. Что еще делал, есть ДНС второй на нем делал Slave, туда норма. В общем у меня подозрение на сервис ns2.trifle.net.

>> Я бы еще про-tcpdump-ил поток, как именно проходят уведомления об обновлении и, соответственно, что идет с той стороны.


Это последнее, что можно сделать. Кстати все три зоны заработали, добавил сегодня еще одну, добавил простым копированием работающей зоны, просто поменял там имя и все, и пол дня опять танцев с ns2.trifle.net, после всех dig @localhost axfr ..... , named-checkconf, named-checkzone, и прочих тестов, махинаций с пробелами точками и прочей хренью от уже не понимания, что ему надо, каким то чудом и эта заработала. При этом что особо интересно, мастер зону я удалял с одного сервера, делал и перечитывал на новом мастере, после чего на ns2.trifle.net добавлял имя зоны и ИП нового мастера, смотрю, а он зараза отображает зону со старого мастера, хотя ее там 100% нет. У регистратора тоже все сменено на новые ДНС. В логах пустота, при этом если nslookup подцепляться к серверу   ns2.trifle.net  и пробовать резольвить эту зону, ведь повторюсь старую то каким то макаром отображает, он ее не резольвит.
Понятно, что выглядит это все так, как будто надо выждать определенный период, НО одижал пару дней (повторяюсь), если ns2.trifle.net не зацепил, то не фига не работает.
Подытожив, что могу сказать, чтобы не дергать гвозди одним местом, нужно свой Slave подымать, это будет позже, как будет оборудование и поменяю структуру сети. На своем Slave можно хоть dig @IP-naster axfr zona.... сделать, поглядеть что к чему, не запрещает ли трансфер. А так не ясно, чем вообще ns2.trifle.net занят, проверяет зону или нет, может он перегружен напроч, может еще что, ни лога, ни простого веб тестика там.
echo "good..." | perl -e '$??s:;s:s;;$?::s;;=]=>%-{<-|}<&|`{;;y; -/:-@[-`{-};`-{/" -;;s;;$_;see'
Parent - By hawk Date 18.11.10 17:55
Добавлю еще, как только ns2.trifle.net зону захватит, при каждой смене серийника на мастер ДНС, на ns2.trifle.net  зона отображается мгновенно, т.е. без всех ожиданий связанных с "время жизни зоны". Т.е. параметр
notify yes;
also-notify     { xxx.xxx.xxx.xxx; };
в named.conf свою работу делает как надо.
echo "good..." | perl -e '$??s:;s:s;;$?::s;;=]=>%-{<-|}<&|`{;;y; -/:-@[-`{-};`-{/" -;;s;;$_;see'
Parent By hawk Date 18.11.10 18:31 Edited 18.11.10 18:33
Упустил, надо было еще tests.nettools.ru потестировать, а именно "DNS Record:" и "Domain Test:". При добавлении следующих зон, воспользуюсь, хороший ресурс.
echo "good..." | perl -e '$??s:;s:s;;$?::s;;=]=>%-{<-|}<&|`{;;y; -/:-@[-`{-};`-{/" -;;s;;$_;see'
Parent By LOE (Site/forum admin) Date 18.11.10 19:29 Edited 18.11.10 19:31
Попробуй другую службу dns, пишут что free.
notes (прочитал где-то):
Кто будет пользоваться - важно у регистратора домена указать все 4 dns сервера ns1.mydomain.com, ns2.mydomain.com, ns3.mydomain.com, ns4.mydomain.com иначе ничего не получится.


Ну и поискать другие бесплатные dns-secondary. На trifle свет клином не сошелся.
"No! Try not! Do. Or do not. There is no try." -- Yoda
Previous Next Up Topic Администрирование / Общее администрирование / DNS bind 9.6.2 не передает некоторые зоны (28982 hits)

Powered by mwForum 2.12.0 © 1999-2007 Markus Wichitill

Page created in 0.140s with 11 database queries.