LINUX.ORG.RU
ФорумAdmin

Bind from ISC & /dev/ass


0

0

в общем, как всегда: два ns сервера, один мастер, другой слейв.
буду писать много, так как этот bind уже заебал.

трабл вот в чем: после запуска серверов на слейве в notify.log находим 
такие вот строки:
-------------8<---------------------------------------------------------
Aug 11 16:30:40.005 notify: received notify for zone 'abc': not authoritative
Aug 11 16:30:40.512 notify: received notify for zone 'xyz'
-------------8<---------------------------------------------------------

эти сообщения выливаютстя в то, что зона abc на слейве не обновляется 
когда мастер ее обновил. теперь смотрите конфиги, а дальше я покажу 
забавную вещь.

конфиг мастера:
-------------8<---------------------------------------------------------
options {
        version "my_own_version";
        directory "/var/named";

        forward first;
        forwarders {
                192.168.0.13;
                192.168.0.8;
        };

        listen-on-v6 { none; };
        listen-on { 127.0.0.1; 192.168.0.199; };

        pid-file "/var/run/named/named.pid";
};

logging {
        channel notify_ch {
                file "/var/log/bind/notify" versions 3 size 10000k;
                severity debug;
                print-time yes;
                print-category yes;
        };
        category notify { notify_ch; };
};

view "aaa" {
        zone "abc" IN {
                type master;
                file "master/abc.zone";

                allow-transfer { any; };
                allow-update { any; };

                notify explicit;
                notify-source 192.168.0.199;
                also-notify { 192.168.0.113; };
        };
};

view "bbb" {
        zone "xyz" IN {
                type master;
                file "master/xyz.zone";

                allow-transfer { any; };
                allow-update { any; };

                notify explicit;
                notify-source 192.168.0.199;
                also-notify { 192.168.0.113; };
        };
};
-------------8<---------------------------------------------------------

зоны на мастере:
-------------8<---------------------------------------------------------
# cat abc.zone
$TTL 3600       ; 1 hour
@       IN      SOA     abc.    bindmaster.abc. (
                                        2006081055 ; serial
                                        2H       ; refresh (2 hours)
                                        15M      ; retry (15 minutes)
                                        2H       ; expire (2 hours)
                                        15M       ; negative-caching (15 minutes)
                                )
                IN      A       192.168.0.199
                IN      NS      ns.abc.
                IN      NS      ns2.abc.
$ORIGIN abc.
ns              IN      A       192.168.0.199
ns2             IN      A       192.168.0.133

# cat xyz.zone
$TTL 3600       ; 1 hour
@       IN      SOA     xyz.    bindmaster.xyz. (
                                        2006081044 ; serial
                                        2H       ; refresh (2 hours)
                                        15M      ; retry (15 minutes)
                                        2H       ; expire (2 hours)
                                        15M       ; negative-caching (15 minutes)
                                )
                IN      A       192.168.0.199
                IN      NS      ns.xyz.
                IN      NS      ns2.xyz.
$ORIGIN xyz.
ns              IN      A       192.168.0.199
ns2             IN      A       192.168.0.133
-------------8<---------------------------------------------------------

конфиг слейва:
-------------8<---------------------------------------------------------
options {
        version "my_own_version";
        directory "/var/named";

        forward first;
        forwarders {
                192.168.0.13;
                192.168.0.8;
        };

        listen-on-v6 { none; };
        listen-on { 127.0.0.1; 192.168.0.113; };

        pid-file "/var/run/named/named.pid";
};

logging {
        channel notify_ch {
                file "/var/log/bind/notify" versions 3 size 10000k;
                severity debug;
                print-time yes;
                print-category yes;
        };
        category notify { notify_ch; };
};

view "first" {
        zone "abc" IN {
                type slave;
                file "slave/abc.zone";
                masters { 192.168.0.199; };

                # transfer mechanism
                transfer-source 192.168.0.113;
        };
};

view "second" {
        zone "xyz" IN {
                type slave;
                file "slave/xyz.zone";
                masters { 192.168.0.199; };

                # transfer mechanism
                transfer-source 192.168.0.113;
        };
};
-------------8<---------------------------------------------------------

вот такие конфиги.
а теперь фокус: меняем местами порядок view на слейве, чтобы получилось вот так:

-------------8<---------------------------------------------------------
view "second" {
        zone "xyz" IN {
                type slave;
                file "slave/xyz.zone";
                masters { 192.168.0.199; };

                # transfer mechanism
                transfer-source 192.168.0.113;
        };
};

view "first" {
        zone "abc" IN {
                type slave;
                file "slave/abc.zone";
                masters { 192.168.0.199; };

                # transfer mechanism
                transfer-source 192.168.0.113;
        };
};
-------------8<---------------------------------------------------------

и получаем другие сообщения в логах слейва:
-------------8<---------------------------------------------------------
Aug 11 16:30:40.005 notify: received notify for zone 'abc'
Aug 11 16:30:40.512 notify: received notify for zone 'xyz':  not authoritative
-------------8<---------------------------------------------------------

теперь зона abc обновилась, а зона xyz не обновилась с мастера.

чудеса ?

в общем, это надо как-то решить.
конфиги раньше были сложные, с TSIG и так далее, епростил как можно
сильнее - никаких прав, и все равно такая зараза. 
да, еще забавный момент: если обе зоны перевести в первый view, то они
обновятся обое:


-------------8<---------------------------------------------------------
view "second" {
        zone "xyz" IN {
                type slave;
                file "slave/xyz.zone";
                masters { 192.168.0.199; };

                # transfer mechanism
                transfer-source 192.168.0.113;
        };

        zone "abc" IN {
                type slave;
                file "slave/abc.zone";
                masters { 192.168.0.199; };

                # transfer mechanism
                transfer-source 192.168.0.113;
        };
};

view "first" {

};
-------------8<---------------------------------------------------------

логи:
-------------8<---------------------------------------------------------
Aug 11 16:30:40.005 notify: received notify for zone 'abc'
Aug 11 16:30:40.512 notify: received notify for zone 'xyz'
-------------8<---------------------------------------------------------
все ok.

как это побороть, есть идеи ?
спасибо.

да, забыл:
bind-9.2.4-2

nial
() автор топика

На сколько я помню, view для каждого клиента может быть только 1. Поэтому, если, исходя из match-clients { ... } каждого view, данный клиент был определен в такой-то view, то он может видеть зоны находящиеся ТОЛЬКО в этом view. У вас же они находятся в разных, поэтому и не работает: master просто не находит нужной зоны в соответствующем view и говорит "я такой зоны не знаю", поэтому slave считает его "not authoritative".

spirit ★★★★★
()

Совет: либо пропишите все зоны (нужные их модификации) в каждом из view (зоны, к которым обращается slave), либо создайте для slave отдельный view и пропишите туда все, что он должен видеть.

spirit ★★★★★
()
Ответ на: комментарий от spirit

я эту тему (http://marc.theaimsgroup.com/?l=bind-users&m=115533258421829&w=2) также поддерживаю и на bind-users@isc.org, и чтобы не писать одно и тоже несколько раз, вот мой вопрос из мейл листи:


I have two NS servers (the same situation). Both they have connected to Internet and local networks.
I want to support two domain zones: 'abc' and 'xyz'. Also I want NS servers run with split-DNS technology: both servers will use views to resolve domain names into different IP addresses: local and internet addresses. I setup "internal" views on both NS servers, so they match network 192.168.0.0/24 (master NS server hav IP address 192.168.0.199, slave - 192.168.0.113 - so, they are in one network), and "external" view - any one hosts. Also, I declare at master server in "external" view in both zones that slave NS server for this zones should be updated by using IP address 192.168.0.113:


notify explicit;
notify-source 192.168.0.199;
also-notify { 192.168.0.113; };

And here I confused with a problem: domain zones, which I declared at slave NS server in "external" view did not updates from master server: as you said, master matches slave's notify requests to "internal" view, where such zone did not declare. Now, please, answer to me: can I avoid this problem, but with updating slave's zones through internal network.

Thanks.

nial
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.