Home > dns > Установка Tinydns (djbdns) на linux

Установка Tinydns (djbdns) на linux

September 7th, 2009

Так как нормальных rpm нет придется ставить из исходников.
Сначала ставим daemontools, который будет запускать сервис tinydns, следить за его состоянием и тд.

cd /root
wget http://cr.yp.to/daemontools/daemontools-0.76.tar.gz
tar zxvf ./daemontools-0.76.tar.gz
В src/conf-cc в строку с gcc добавляем -include /usr/include/errno.h
cd ./admin/daemontools-0.76/
./package/install

cd /root
wget http://cr.yp.to/ucspi-tcp/ucspi-tcp-0.88.tar.gz
tar zxvf ./ucspi-tcp-0.88.tar.gz
cd ./ucspi-tcp-0.88
В conf-cc в строку с gcc добавляем -include /usr/include/errno.h
make
make setup check

cd /root
wget http://cr.yp.to/djbdns/djbdns-1.05.tar.gz
tar zxvf ./djbdns-1.05.tar.gz
cd djbdns-1.05
echo gcc -O2 -include /usr/include/errno.h > conf-cc
make
make setup check

groupadd dnsuser
/usr/sbin/useradd -g dnsuser -s /sbin/nologin -d /dev/null tinydns
/usr/sbin/useradd -g dnsuser -s /sbin/nologin -d /dev/null dnslog
/usr/local/bin/tinydns-conf tinydns dnslog /etc/tinydns [ip-сервера]
ln -s /etc/tinydns /service/tinydns #говорим daemontools-у о новом сервисе, он сам его запустит через 5 сек

Заполняем файл зон (/etc/tinydns/root/data) по образцу:

.domain.com::ns1.domain.com.:2500
&domain.com::ns2.domain.com.:2500
@domain.com::mail.domain.com.:10:2500
+domain.com:serverip:2500
+*.domain.com:serverip:2500

Делаем в /etc/tinydns/root чтобы перекинуть данные в бинарную версию data.cdb:

make

Проверить что data.cdb содержит требуемые данные:

cd /etc/tinydns/root
tinydns-get a www.domain.com

Управление сервисами:

svc -d /service/tinydns #остановить сервис
svc -u /service/tinydns #запустить сервис
svc -t /service/tinydns #рестартануть сервис
svstat /service/tinydns #проверяем статус

Синхронизация зон со вторым ДНС-сервером.

Для синхронизации бинарного файла с данными по зонам (с другим сервером) воспользуемся scp.
На втором днс-сервере необходимо установить аналогичный комплект. Затем на первом сервере:

cd /root/.ssh
ssh-keygen -b 1024 -t dsa

На втором сервере:

/usr/sbin/useradd -s /bin/bash srv-dns-acct
cd /home/srv-dns-acct/
mkdir .ssh
В файл .ssh/authorized_keys копируем id_dsa.pub с первого сервера
chmod 700 .ssh
chmod 600 .ssh/authorized_keys

На первом сервере в файл /etc/tinydns/root/Makefile добавляем:

scp data.cdb srv-dns-acct@ns2.domain.com:/etc/tinydns/root/data.cdb

Теперь для синхронизации первого сервера со втором надо на первом сервере:

cd /etc/tinydns/root
make

Смотрите так же Скрипт добавления зон
Для добавления разных экзотических записей есть tinydns Record Builder

Примечание:
Если вдруг была удалена директория /etc/tinydns/supervise то надо сделать ps auxww |grep sup и грохнуть два процесса supervise. Затем сделать ps auxww |grep sv и грохнуть два процесса svscan. Инит перезапустит svscan, а тот перезапустит supervise и он пересоздаст каталоги.

dns ,

  1. Alex
    June 27th, 2010 at 23:37 | #1

    А второй ДНС-сервер можно установить на той же машине, на другом ip?

  2. admin
    June 28th, 2010 at 04:28 | #2

    Да, для COM-зоны можно даже на том же самом IP. Т.е. будет один DNS-сервер. А для RU вроде бы проверяется чтобы IP ДНС-серверов были разные.

  1. No trackbacks yet.
Курорт Москва - рейтинг отелей: гинекология москва. .
RSS-подписка