URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 90597
[ Назад ]

Исходное сообщение
"BIND и резервирование каналов"

Отправлено leviafanovich , 22-Дек-10 19:57 
Сразу прошу прощения - не могу светить реальные IP, я думаю это делу не помешает.  :pardon:
Вообщем сейчас тружусь над подключением второго провайдера для резерва. И появился вопрос как сделать что бы при пропадании инета от первичного прова (пров А) все перелазило на прова вторичного (пров Б)

IP первый: 111.111.111.111
IP второй: 222.222.222.222
Имя домена: moy.domen.ru

Как перебросить defaultrouter я нашел скрипт, теперь думаю а как решить проблему с DNS.
Поставил я значит на регистраторе имен два DNS сервера


ns.moy.domen.ru    111.111.111.111
ns1.moy.domen.ru  222.222.222.222

Решил поднять все два DNS на одной тачке. Основной как всегда  :smile: , вторичный в Jail.
Конфига основного: (в нем для локалки я сделал свои view)

acl internal { 192.168.12.0/24; 127.0.0.1/32; };
   options {
          hostname "ns.moy.domen.ru ";
          directory "/etc/namedb";
          pid-file "/var/run/named/pid";
          dump-file "/var/dump/named_dump.db";
          statistics-file "/var/stats/named.stats";
          listen-on {
             127.0.0.1;
              192.168.12.1;
          111.111.111.111;
         };
          interface-interval 10;
          forward first;
          forwarders {
          8.8.8.8;
          };
          version "DNS";
   };
   logging {
          channel syslog {
          syslog daemon;
          severity info;
          print-category yes;
          print-severity yes;
       };
   category xfer-in { syslog; };
   category xfer-out { syslog; };
   category config { syslog; };
   category default { null; };
   };

  
########################################################################################
view internal {
    match-clients { internal; };
    recursion yes;
    allow-query { internal; };
    allow-transfer { none; };
    
    zone "." {
            type hint;
            file "named.root";
    };
    zone "localhost" {
            type master;
            allow-query { 127.0.0.1; };
            file "master/localhost";
    };
    zone "0.0.127.IN-ADDR.ARPA" {
            type master;
            allow-query { 127.0.0.1; };
            file "reverse/localhost.rev";
    };
    zone "12.168.192.IN-ADDR.ARPA" {
            type master;
            allow-query {
                     127.0.0.1;
                192.168.12.0/24;
            };
            file "reverse/in.12.168.192.rev";
    };
    zone "moy.domen.ru" {
            type master;
            file "master/moy.domen.ru_local";
            allow-query { any; };
    };  
};
########################################################################################

########################################################################################
view external {
    match-clients { any; };
    recursion no;
    allow-query { any; };
    
        zone "." {
            type hint;
            file "named.root";
        };
        zone "moy.domen.ru" {
            type master;
            file "master/moy.domen.ru";
                        allow-transfer { 222.222.222.222; 192.168.12.2; };
            allow-query { any; };
        };
};
########################################################################################

Зона moy.domen.ru

$TTL 320
moy.domen.ru.      IN      SOA     ns.moy.domen.ru. admin.moy.domen.ru. (
             2010122001 ; Serial
             28800      ; Refresh
             7200       ; Retry
             2419200    ; Expire
             86400)     ; Negative Cache TTL
;
             IN      NS      ns.moy.domen.ru.
             IN      NS      ns1.moy.domen.ru.
             IN      MX      10 mail.moy.domen.ru.
             IN      A       111.111.111.111

localhost    IN      A      127.0.0.1
ns           IN      A      111.111.111.111
ns1          IN      A      222.222.222.222
mail         IN      A      111.111.111.111
www          IN      CNAME   moy.domen.ru.

В rc.conf прописал

named_enable="YES"
named_flags="-u bind -c /etc/namedb/named.conf"

И на jail поставил второй DNS
Конфига вторичного:

acl internal { 192.168.12.0/24; 127.0.0.1/32; };
   options {
          hostname "ns1.moy.domen.ru ";
          directory "/etc/namedb";
          pid-file "/var/run/named/pid";
          dump-file "/var/dump/named_dump.db";
          statistics-file "/var/stats/named.stats";
          listen-on {
             127.0.0.1;
              192.168.12.2;
          222.222.222.222;
         };
          interface-interval 10;
          forward first;
          forwarders {
          8.8.8.8;
          };
          version "DNS";
   };
   logging {
          channel syslog {
          syslog daemon;
          severity info;
          print-category yes;
          print-severity yes;
       };
   category xfer-in { syslog; };
   category xfer-out { syslog; };
   category config { syslog; };
   category default { null; };
   };    
        zone "." {
            type hint;
            file "named.root";
        };
        zone "moy.domen.ru" {
            type slave;
            file "slave/moy.domen.ru";
                        masters { 192.168.12.1;};
            allow-query { any; };
        };
########################################################################################

Зона moy.domen.ru

$TTL 320
moy.domen.ru.      IN      SOA     ns.moy.domen.ru. admin.moy.domen.ru. (
             2010122001 ; Serial
             28800      ; Refresh
             7200       ; Retry
             2419200    ; Expire
             86400)     ; Negative Cache TTL
;
             IN      NS      ns.moy.domen.ru.
             IN      NS      ns1.moy.domen.ru.
             IN      MX      10 mail.moy.domen.ru.
             IN      A       222.222.222.222

localhost    IN      A      127.0.0.1
ns           IN      A      111.111.111.111
ns1          IN      A      222.222.222.222
mail         IN      A     222.222.222.222
www          IN      CNAME   moy.domen.ru.

В rc.conf прописал

named_enable="YES"
named_chrootdir=""
named_flags="-s"


Вообщем теперь как сделать что бы при отключении инета от первого провайдера все перебрасывалось на второго?
Т.е. что бы отрубается инет, DNS1 не доступен, должен включится DNS2 и там уже доменные имена перекатят на второго прова


Содержание

Сообщения в этом обсуждении
"BIND и резервирование каналов"
Отправлено Aquarius , 22-Дек-10 20:10 
> как сделать что бы при пропадании инета от первичного прова (пров
> А) все перелазило на прова вторичного (пров Б)
> IP первый: 111.111.111.111
> IP второй: 222.222.222.222
> Имя домена: moy.domen.ru
> Как перебросить defaultrouter я нашел скрипт, теперь думаю а как решить проблему
> с DNS.

а в чем проблема с DNS?

> Поставил я значит на регистраторе имен два DNS сервера
>

 
> ns.moy.domen.ru    111.111.111.111
> ns1.moy.domen.ru  222.222.222.222
>

я так понимаю, это твои IP у одного и другого провайдера?

> Решил поднять все два DNS на одной тачке. Основной как всегда  
> :smile: , вторичный в Jail.

зачем отдельно вторичный?
лучше так:
зачем вторичный отдельно?
а, кажется, понял: разные IP в ответах?

>[оверквотинг удален]
> www          IN  
>     CNAME   moy.domen.ru.

> В rc.conf прописал
>

named_enable="YES" 
> named_chrootdir=""
> named_flags="-s"

> Вообщем теперь как сделать что бы при отключении инета от первого провайдера
> все перебрасывалось на второго?

> Т.е. что бы отрубается инет, DNS1 не доступен, должен включится DNS2 и
> там уже доменные имена перекатят на второго прова

и все-таки, не понял, в чем вопрос:
если оба BIND'а висят на на разных IP и выдают по запросу разные IP, что еще надо?
разве только TTL поменьше для записей сделать (в разумных пределах) ...


"BIND и резервирование каналов"
Отправлено leviafanovich , 22-Дек-10 20:45 
нужно сделать именно что бы 2 разных IP в ответах было.
Т.е. когда ложится первый пров, то ложится естестенно и DNS1, тут надо что бы вступал в действие DNS2 и выдавал на доменное имя IP второго прова.
И тут вопрос правильно ли я настроил сами DNS зоны, а именно slave зону на DNS2.

"BIND и резервирование каналов"
Отправлено reader , 22-Дек-10 22:16 
> нужно сделать именно что бы 2 разных IP в ответах было.
> Т.е. когда ложится первый пров, то ложится естестенно и DNS1, тут надо
> что бы вступал в действие DNS2 и выдавал на доменное имя
> IP второго прова.
> И тут вопрос правильно ли я настроил сами DNS зоны, а именно
> slave зону на DNS2.

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


"BIND и резервирование каналов"
Отправлено leviafanovich , 22-Дек-10 22:46 
>> нужно сделать именно что бы 2 разных IP в ответах было.
>> Т.е. когда ложится первый пров, то ложится естестенно и DNS1, тут надо
>> что бы вступал в действие DNS2 и выдавал на доменное имя
>> IP второго прова.
>> И тут вопрос правильно ли я настроил сами DNS зоны, а именно
>> slave зону на DNS2.
> значит в том же скрипте перезапускайте bind с разными конфигами, только много
> кто будет кешировать ваши ответы.

тут появилась вторая проблема!
второй DNS перетягивает на себя одеяло! Т.е. работает себе спокойненько DNS1, выдает IP 111.111.111.111, включаю DNS2 и переключается домен на 222.222.222.222, останавливаю DNS2 и через TTL переключается на DNS1 =111.111.111.111
Может там где выше сериал в описании зоны там и берется... ниче не пойму. Вроде по уму надо сначало опрашивать ns.moy.domen.ru, затем если он не отвечает переходить на опрос ns1.moy.domen.ru, у меня получается что сразу ns1.moy.domen.ru опрашивает 0_O

я уже и зону на DNS2 сделал master и всеравно не помогает


"BIND и резервирование каналов"
Отправлено leviafanovich , 22-Дек-10 22:56 
и вот только что запустил DNS1 проверил - все идет через 111.111.111.111, запустил DNS2 проверил - опять все идет через 111.111.111.111, сделал на DNS2 rndc reload -> moy.domen.ru остался на 111.111.111.111, а mail.moy.domen.ru перешел на 222.222.222.222
Чето не могу понять логику.
При этом на DNS1 serial был выше чем на DNS2


"BIND и резервирование каналов"
Отправлено leviafanovich , 23-Дек-10 00:26 
кажется проблемы с самой интерпретацией в связке с jail...
потому что когда я хочу отредактировать (сидя не в jail) файл типа /usr/local/jail/first/etc/namedb/named.conf (first - имя клетки) мне попадает файл который находится в /etc/namedb/named.conf.
А вот в самой клетке если сидеть и отредактировать /etc/namedb/named.conf то показывает уже то что надо, т.е. то что я изначально делал для клетки.
Вообщем я запутался уже.

"BIND и резервирование каналов"
Отправлено PavelR , 23-Дек-10 08:33 
> кажется проблемы с самой интерпретацией в связке с jail...
> потому что когда я хочу отредактировать (сидя не в jail) файл типа
> /usr/local/jail/first/etc/namedb/named.conf (first - имя клетки) мне попадает файл который
> находится в /etc/namedb/named.conf.
> А вот в самой клетке если сидеть и отредактировать /etc/namedb/named.conf то показывает
> уже то что надо, т.е. то что я изначально делал для
> клетки.
> Вообщем я запутался уже.

Всё потому что Jail вам совершенно не нужен, на самом-то деле.


"BIND и резервирование каналов"
Отправлено leviafanovich , 23-Дек-10 17:25 
>> кажется проблемы с самой интерпретацией в связке с jail...
>> потому что когда я хочу отредактировать (сидя не в jail) файл типа
>> /usr/local/jail/first/etc/namedb/named.conf (first - имя клетки) мне попадает файл который
>> находится в /etc/namedb/named.conf.
>> А вот в самой клетке если сидеть и отредактировать /etc/namedb/named.conf то показывает
>> уже то что надо, т.е. то что я изначально делал для
>> клетки.
>> Вообщем я запутался уже.
> Всё потому что Jail вам совершенно не нужен, на самом-то деле.

и как разобраться?


"BIND и резервирование каналов"
Отправлено Aquarius , 23-Дек-10 11:21 
> кажется проблемы с самой интерпретацией в связке с jail...
> потому что когда я хочу отредактировать (сидя не в jail) файл типа
> /usr/local/jail/first/etc/namedb/named.conf (first - имя клетки) мне попадает файл который
> находится в /etc/namedb/named.conf.
> А вот в самой клетке если сидеть и отредактировать /etc/namedb/named.conf то показывает
> уже то что надо, т.е. то что я изначально делал для
> клетки.
> Вообщем я запутался уже.

все потому, что /usr/local/jail/first/etc/namedb/named.conf - симлинк с абсолютным путем
переделайте на относительный


"BIND и резервирование каналов"
Отправлено leviafanovich , 23-Дек-10 17:26 
>> кажется проблемы с самой интерпретацией в связке с jail...
>> потому что когда я хочу отредактировать (сидя не в jail) файл типа
>> /usr/local/jail/first/etc/namedb/named.conf (first - имя клетки) мне попадает файл который
>> находится в /etc/namedb/named.conf.
>> А вот в самой клетке если сидеть и отредактировать /etc/namedb/named.conf то показывает
>> уже то что надо, т.е. то что я изначально делал для
>> клетки.
>> Вообщем я запутался уже.
> все потому, что /usr/local/jail/first/etc/namedb/named.conf - симлинк с абсолютным путем
> переделайте на относительный

а можно по подробней что куда как? =)))


"BIND и резервирование каналов"
Отправлено leviafanovich , 25-Дек-10 22:18 
Спрошу проще.
Как реализовать?
Повторюсь:
на iname.ua поставил два ns
ns.moy.domen.ru    111.111.111.111
ns1.moy.domen.ru  222.222.222.222

Сделал ttl на зоне равным 60
Содрал скрипт по перекидке defaultrouter, переброска инета работает.
Как делают умельцы манипуляции по быстрому переводу домена с одно IP на другой?

Я пробовал делать это с помощью вышеупомянутого скрипта с добавлением строк по замене файла зоны с дефаулт IPS на второго IPS и команду rndc reload.
Проверил это с помощью host на сервере и вижу что все меняется (ну конечно, я же использую свой DNS сервер), а вот на внешних машинах творится полный кавардак. Сейчас получилось опять так что ориджин висит на одном IP, mail висит на другом IP. И так смотрю ttl уже давным давно прошел раз 30 и проверил зону и сервер перезагружал и конфигу перечитывал всеравно какая то каша.