LINUX.ORG.RU
ФорумAdmin

bind9 трансфер не проходит после настройки view. failed while receiving responses: REFUSED

 


0

1

Доброго времени суток. Тестовая схема мастер и 2 слэйва. До внедрения view трансфер и нотифаи проходили нормально, после внедрения - нет. На сколько я знаю, view влияет только на ответы на запросы, а не на трансфер или я не прав?
named.local на мастере:

acl "localnet" { 194.135.107.0/24; };

view "internal" {
        match-clients { "localnet"; };
        match-destinations { 194.135.107.163; };
        match-recursive-only no;
        zone "test.ru" {
                type master;
                file "internal.test.ru";
                allow-transfer { 10.0.1.1; 10.0.2.2; };
                notify explicit;
                also-notify { 10.0.1.1; 10.0.2.2; };
        };
};

view "external" {
        match-clients { "any"; };
        match-destinations { 194.135.107.163; };
        match-recursive-only no;
        zone "test.ru" {
                type master;
                file "external.test.ru";
                allow-transfer { 10.0.1.1; 10.0.2.2; };
                notify explicit;
                also-notify { 10.0.1.1; 10.0.2.2; };
        };
};
Мастер не будет назначаться в кабинете для делегирования зоны, поэтому view такие, А вот такие view на слэйве:
acl "localnet" { 194.135.107.0/24; };

view "internal" {
        match-clients { "localnet"; };
        match-destinations { 194.135.107.162; };
        match-recursive-only no;
        zone "test.ru" {
                type slave;
                file "internal.test.ru";
                masters { 10.0.2.3; };
                allow-notify { 10.0.2.3; };
                notify no;
                transfer-source 10.0.2.2;
        };
};

view "external" {
        match-clients { "any"; };
        match-destinations { 8.8.8.8; };
        match-recursive-only no;
        zone "test.ru" {
                type slave;
                file "external.test.ru";
                masters { 10.0.2.3; };
                allow-notify { 10.0.2.3; };
                notify no;
                transfer-source 10.0.2.2;
        };
};
Этот слэйв - гипотетически один из тех, которые будут указаны в личном кабинете для делегирования домена, 8.8.8.8 - интерфейс для внешних запросов, 194.135.107.162 - для внутренних.
И вот такое я теперь получаю в журнале bind на слэйве:
............
25-Mar-2015 10:33:23.895 general: notice: running
25-Mar-2015 10:33:23.896 general: info: zone test.ru/IN/internal: refresh: unexpected rcode (REFUSED) from master 10.0.2.3#53 (source 10.0.2.2#0)
25-Mar-2015 10:33:23.896 general: info: zone test.ru/IN/internal: Transfer started.
25-Mar-2015 10:33:23.897 xfer-in: info: transfer of 'test.ru/IN/internal' from 10.0.2.3#53: connected using 10.0.2.2#42426
25-Mar-2015 10:33:23.897 xfer-in: error: transfer of 'test.ru/IN/internal' from 10.0.2.3#53: failed while receiving responses: REFUSED
25-Mar-2015 10:33:23.897 xfer-in: info: transfer of 'test.ru/IN/internal' from 10.0.2.3#53: Transfer completed: 0 messages, 0 records, 0 bytes, 0.001 secs (0 bytes/sec)
25-Mar-2015 10:33:24.396 general: info: zone test.ru/IN/external: refresh: unexpected rcode (REFUSED) from master 10.0.2.3#53 (source 10.0.2.2#0)
25-Mar-2015 10:33:24.396 general: info: zone test.ru/IN/external: Transfer started.
25-Mar-2015 10:33:24.397 xfer-in: info: transfer of 'test.ru/IN/external' from 10.0.2.3#53: connected using 10.0.2.2#58400
25-Mar-2015 10:33:24.398 xfer-in: error: transfer of 'test.ru/IN/external' from 10.0.2.3#53: failed while receiving responses: REFUSED
25-Mar-2015 10:33:24.398 xfer-in: info: transfer of 'test.ru/IN/external' from 10.0.2.3#53: Transfer completed: 0 messages, 0 records, 0 bytes, 0.001 secs (0 bytes/sec)

Хм, добавил в match-clients адреса 10.0.1.1 и 10.0.2.2 на которые должен производиться трансфер, добавил нужные адреса в match-destinations, трансфер работает, НО нотифаи не шлются и в логах слэйвов не видно что какие-либо нотифаи приходили. Т.е. если сделать например rndc refresh test.ru IN internal, то трансфер происходит, но почему перестали работать нотифаи не понятно.

nokogerra ()

Если для разных view мастер имеет 1 адрес из localnet, то нужно применять ключи.

В internal делаем

match-clients { !key "xxxxx"; localnet; };

В external делаем

match-clients { key "xxxxx"; any; };
server ip_master { key "xxxxx"; }

Можно на мастере слушать 2 адреса, один из localnet, а другой - не из него и для разных view указывать адрес мастера из соответствующего view.

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

Здравствуйте, спасибо за ответ.
Честно говоря, совершенно не понял что означает

Если для разных view мастер имеет 1 адрес из localnet, то нужно применять ключи.

Что за 1 адрес и зачем ключи? Почему нельзя обойтись без них?
Вообще схема такая: 194.135.107.163 - мастер, 194.135.107.161 - слэйв1, 194.135.107.162 - слэйв2. Трансфер и нотифаи ходят через gre-туннели:
мастер(10.0.1.3) - слэйв1 (10.0.1.1)
мастер(10.0.2.3) - слэйв2 (10.0.2.2)
До внедрения view работали и нотифаи и трансфер (чтобы работали нотифаи я воспользовался оператором server, который мне подсказали вчера здесь же и указал для каждого слэйва свой notify-source, для слэв1 - 10.0.1.3, для слэйв2 - 10.0.2.3).
Почему теперь трансфер работает, а нотифаи - нет, вообще не могу понять, нотифаи польностью пропали из логов слэйвов, а на мастере только такое:

25-Mar-2015 13:55:11.123 notify: info: zone test.ru/IN/external: sending notifies (serial 2015032507)
т.е. даже не понятно кому и куда послан нотифай.

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

Если на то пошло, мне по идее и не нужны view для мастера, у него только один интерфейс и он смотрит в локальную сеть, а вот у слэйвов по 2 - один в локальную, другой - белый для запросов извне. Но я не знаю другого способа иметь и трансферить 2 файла зоны с мастера на эти слэйвы не делая при этом на мастере view.

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

Так, до меня дошло зачем ключ. Только пара вопросов:
1. Есть разница чем генерировать? Я делал подобное для удаленного управления rndc с помощью rndc-confgen - можно воспользоваться этой утилитой?
2. Не существует ли способа иметь на мастере 2 файла для зоны и трансферить их на слэйвы (а на слэйвах уже иметь view, которые будут оперировать этими файлами), при этом не имея view на мастере?

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

Кажется пора посыпать голову пеплом. Я запутался окончательно.
Чтобы оба файла трансферились на слэйвы и слались нотифаи, интерфейсы этих слэйвов должны быть в match-clients, при чем и для internal, и для external, или нужно указать tsig-ключи, НО оба слэйва тем или иным образом (интерфейсами или ключами) попадут в первый вид, и до второго не дойдут.

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