Автоматическое создание вторичных зон DNS
Модераторы: Trinity admin`s, Free-lance moderator`s
-
- Power member
- Сообщения: 39
- Зарегистрирован: 15 июл 2004, 13:57
- Контактная информация:
Автоматическое создание вторичных зон DNS
Добрый день.
Вопрос следующего характера.
Есть Primary сервер DNS, обслуживающий довольно таки много зон. Есть секондари. На первичном польователи сами управляют зонами и тд. А на вторичном хотя бы саму зону руками обновлять приходиться.
Устало.
Есть ли возможность вторичник настроить так, чтобы он раз в 30-60 минут сам лез на первичку и смотрел, появились ли новые зоны, изменились ли старые, удалились ли существующие. И соотв-но изменял все в себе сам. Новые создавал и зеркалировал, в текущих менял записи и удалял удаленные. Изменять то проблем нет. Важно чтоб создавал зоны и удалял автоматически. Эдакое DNS зеркало.
Вопрос следующего характера.
Есть Primary сервер DNS, обслуживающий довольно таки много зон. Есть секондари. На первичном польователи сами управляют зонами и тд. А на вторичном хотя бы саму зону руками обновлять приходиться.
Устало.
Есть ли возможность вторичник настроить так, чтобы он раз в 30-60 минут сам лез на первичку и смотрел, появились ли новые зоны, изменились ли старые, удалились ли существующие. И соотв-но изменял все в себе сам. Новые создавал и зеркалировал, в текущих менял записи и удалял удаленные. Изменять то проблем нет. Важно чтоб создавал зоны и удалял автоматически. Эдакое DNS зеркало.
- corvax
- free-lance moderator
- Сообщения: 877
- Зарегистрирован: 06 авг 2004, 17:21
- Откуда: Kiev, Ukraine
- Контактная информация:
Re: Автоматическое создание вторичных зон DNS
без указания используемого DNS сервера и места хранения инфы о зонах на первичном NS точный ответ дать невозможноOsmolovsky писал(а):Есть ли возможность вторичник настроить так, чтобы он раз в 30-60 минут сам лез на первичку и смотрел, появились ли новые зоны, изменились ли старые, удалились ли существующие. И соотв-но изменял все в себе сам. Новые создавал и зеркалировал, в текущих менял записи и удалял удаленные. Изменять то проблем нет. Важно чтоб создавал зоны и удалял автоматически. Эдакое DNS зеркало.
--
/corvax
/corvax
-
- Power member
- Сообщения: 39
- Зарегистрирован: 15 июл 2004, 13:57
- Контактная информация:
-
- Power member
- Сообщения: 39
- Зарегистрирован: 15 июл 2004, 13:57
- Контактная информация:
- corvax
- free-lance moderator
- Сообщения: 877
- Зарегистрирован: 06 авг 2004, 17:21
- Откуда: Kiev, Ukraine
- Контактная информация:
т. е. инициировать ftp соединение с первичного DNS сервера и аплоадить конфиг на вторичный DNS сервер?Osmolovsky писал(а):нетне доступен. хотя можно на самом деле как нить подумать. банально раз в 5 минут на удаленную машину по фтп класть
а что эта панель управления делает? хачит named.conf?Osmolovsky писал(а):нет. из панели управления. как создание доменов, управление DNS, удаление.
AFAIK нет. ибо "оттуда брать все" смысла нет никакогоOsmolovsky писал(а):а в самом сервере нету функции читать сторонний и оттуда брать все?
--
/corvax
/corvax
-
- Power member
- Сообщения: 39
- Зарегистрирован: 15 июл 2004, 13:57
- Контактная информация:
ну типа, аплоадить конфиг на вторичник, там его локально скриптом разобрать повыдергивав только имена доменов, по рыбе забить эти имена как слейвы в конфиг намеда на вторичнике и рестартануть его. делать оное раз в 10 минут. или типа того. но уж кривой путь больнот. е. инициировать ftp соединение с первичного DNS сервера и аплоадить конфиг на вторичный DNS сервер?

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


а что эта панель управления делает? хачит named.conf?
ну почему прям хачит

- corvax
- free-lance moderator
- Сообщения: 877
- Зарегистрирован: 06 авг 2004, 17:21
- Откуда: Kiev, Ukraine
- Контактная информация:
чего это он кривой? нормальный вполнеOsmolovsky писал(а):ну типа, аплоадить конфиг на вторичник, там его локально скриптом разобрать повыдергивав только имена доменов, по рыбе забить эти имена как слейвы в конфиг намеда на вторичнике и рестартануть его. делать оное раз в 10 минут. или типа того. но уж кривой путь больнот. е. инициировать ftp соединение с первичного DNS сервера и аплоадить конфиг на вторичный DNS сервер?
и как ловить этот NOTIFY?!?!Osmolovsky писал(а):как вариант на первичнике сразу ставить вторичник и NOTYFY ему посылать как надо. а на том ловить эти NOTIFY и из них уже генерить слейв зоны,
во-воOsmolovsky писал(а):но как это сделать я вообще не представляю
как по мне, так это явно не лучше, чем генерить фрагмент named.conf на основании фрагмента named.conf с первичного DNS сервераOsmolovsky писал(а): хотя если оно в лог пишет что нить типа "Recivied notyfy for www.loosers.com from 111.111.111.111, cannot update lalala" то можно отсюда зоны ловить и по ним генерить. но тоже гемор.
--
/corvax
/corvax
-
- Power member
- Сообщения: 39
- Зарегистрирован: 15 июл 2004, 13:57
- Контактная информация:

скрипт add_zone_support
Код: Выделить всё
#!/bin/bash
zone=$1
delete_from_conf (){
cat /etc/named.conf | awk -v RS='};' -v ORS='' '
NR != 1 && !/'$zone'/ {print "};"}
!/'$zone'/ { print }
' > /etc/named.new && mv -f /etc/named.new /etc/named.conf
}
delete_zone_file (){
rm -f /var/named/$zone.zone
}
delete_from_secondary (){
echo "give root password for secondary DNS"
echo "
cat /etc/named.conf | awk -v RS='};' -v ORS='' '
NR != 1 && !/'$zone'/ {print \"};\"}
!/'$zone'/ { print }
' > /etc/named.new && mv -f /etc/named.new /etc/named.conf
rm -f /var/named/$zone.zone
rndc reload" |ssh root@192.168.0.25
}
#delete_mail_conf () {
#cat /etc/mail/local-host-names | awk '!/'$zone'/ {print}' > /etc/mail/lhn && mv -f /etc/mail/lhn /etc/mail/local-host-names
#cat /etc/mail/virtusertable | awk '!/'$zone'/ {print}' > /etc/mail/vut && mv -f /etc/mail/vut /etc/mail/virtusertable
#}
add_zone_file () {
echo "\$TTL 86400
\$ORIGIN $zone.
@ IN SOA ns.trinity.spb.ru. setar.trinity.spb.ru. (
$(date +%Y%m%d)01
43200
7200
604800
86400 )
IN NS ns.trinity.spb.ru.
IN NS ns1.trinity.spb.ru.
@ IN MX 10 gw.trinity.spb.ru.
@ IN A 81.3.165.126
www IN A 81.3.165.126" >/var/named/$zone.zone
}
add_config_zone () {
echo "
//
// autoconf by Setar to $zone
//
zone "$zone" IN {
type master;
file \"$zone.zone\";
};" >>/etc/named.conf
}
#add_mail_conf () {
#echo "
# autoconf by Setar to $zone
#$zone" >>/etc/mail/local-host-names
#echo "
## autoconf by Setar to $zone
#@"$zone" error:nouser 550 No such user here" >>/etc/mail/virtusertable
#rm -f /etc/mail/virtusertable.db
#cd /etc/mail/
#make
#
#}
do_conf_secondary (){
echo "give root password for secondary DNS"
echo "
echo \"
//
// autoconf by Setar to $zone
//
zone \"$zone\" IN {
type slave;
masters {81.3.165.126;};
file \\\"$zone.zone\\\";
};
\" >>/etc/named.conf
rndc reload" |ssh root@192.168.0.25
}
if [ ! $zone ]; then echo "Enter domain name!";echo "new_zone my_new_domain "; exit ; fi;
delete_from_conf && delete_zone_file && delete_from_secondary && add_zone_file && add_config_zone && rndc reload && do_conf_secondary
echo "All Done!"

здесь
81.3.165.126 = мастер DNS
192.168.0.25 = секондари DNS (доступен из локалки)
меняйте дефаултные шаблоны!
Если требуется протиска дефаут мылера, то раскоментариваем и выполняем соответствующие процедуры.
Ну а это довесок, для удаления поддержки зон.
delete_zone
Код: Выделить всё
#!/bin/bash
zone=$1
delete_from_conf (){
cat /etc/named.conf | awk -v RS='};' -v ORS='' '
NR !=1 && !/'$zone'/ {print "};"}
!/'$zone'/ { print }
' > /etc/named.new
# && mv -f /etc/named.new /etc/named.conf
}
delete_zone_file (){
rm -f /var/named/$zone.zone
}
delete_from_secondary (){
echo "give root password for secondary DNS"
echo "
cat /etc/named.conf | awk -v RS='};' -v ORS='' '
NR != 1 && !/'$zone'/ {print \"};\"}
!/'$zone'/ { print }
' > /etc/named.new && mv -f /etc/named.new /etc/named.conf
rm -f /var/named/$zone.zone
rndc reload" |ssh root@192.168.0.25
}
#delete_mail_conf () {
#cat /etc/mail/local-host-names | awk '!/'$zone'/ {print}' > /etc/mail/lhn && mv -f /etc/mail/lhn /etc/mail/local-host-names
#cat /etc/mail/virtusertable | awk '!/'$zone'/ {print}' > /etc/mail/vut && mv -f /etc/mail/vut /etc/mail/virtusertable
#}
send_delete_mail () {
echo "End for suport Primary (81.3.165.126) and Secondary (195.239.141.199) zone for $zone" | mailto root@trinity.spb.ru -s "End support zone $zone"
}
if [ ! $zone ]; then echo "Enter domain name!";echo "delete_zone my_zone.ru"; exit ; fi;
delete_from_conf && delete_zone_file && rndc reload && delete_from_secondary && send_delete_mail
echo "All Done!"
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 8 гостей