Поднять DNS сервер для компании. Сервер должен отвечать быстро и желательно иметь наглядную статистику использования.
Выбор продукта:
Для работы было решено выбрать продукт PowerDNS, как довольно таки продвинутый сервер.
Установка и первоначальная настройка:
Сервер делится на две части - одна отвечает за разрешение имен - так сказать повернута к людям - по сути это и есть сам ДНС, а вторая отвечает за добывание имен с внешних серверов. Таким образом, если вы хотите, что бы сервер держал вашу локальную зону - вам будет нужна только первая часть, а если вы ходите что бы с этого сервера пользователи вашей сети получали данные - вам нужны обе части.
Ставится это все просто - идем в порты и устанавливаем. на вопросы отвечаем по вкусу - отмечу что вам надо выбрать БД, с которой будет работать ваш сервер - я выбрал MySQL, потому что он у меня уже стоял на сервере. Ставим локальный ДНС сервер:
Код: Выделить всё
# cd /usr/ports/dns/powerdns
# make install clean
Код: Выделить всё
# cd /usr/ports/dns/powerdns-recursor
# make install clean
Настраивать начнем со второго, но сначала условимся, что резальвер будет висеть на локалхосте и внешнему миру виден не будет, а ДНС будет висеть на внешнем ИП сервера и будет отслуживать все запросы.
Открываем файл /usr/local/etc/pdns/recursor.conf и правим на свой вкус. я только прописал сеть, с которой буду получать ДНС запросы
Код: Выделить всё
allow-from=127.0.0.1/32
Код: Выделить всё
pdns_enable="YES"
pdns_recursor_enable="YES"
Код: Выделить всё
/usr/local/etc/rc.d/pdns-recursor start
Код: Выделить всё
# host www.ya.ru 127.0.0.1
Using domain server:
Name: 127.0.0.1
Address: 127.0.0.1#53
Aliases:
www.ya.ru is an alias for ya.ru.
ya.ru has address 213.180.193.3
ya.ru has address 93.158.134.3
ya.ru has address 213.180.204.3
ya.ru has IPv6 address 2a02:6b8::3
ya.ru mail is handled by 10 mx.yandex.ru.
Настройка DNS:
Теперь настроим сам сервер - открываем файл /usr/local/etc/pdns/pdns.conf и правим. я Использовал следующие настройки
Код: Выделить всё
allow-axfr-ips=127.0.0.0/8,192.168.1.146/32
daemon=yes
default-soa-name=ns2.belaya-ptica.ru
disable-axfr=yes
experimental-json-interface=yes
experimental-logfile=/var/log/pdns/pdns.log
local-address=192.168.1.1
recursor=127.0.0.1
slave=yes
webserver=yes
webserver-address=127.0.0.1
webserver-port=8081
launch=gmysql
gmysql-socket=/tmp/mysql.sock
gmysql-user=powerdns
gmysql-dbname=powerdns
gmysql-password=P@$$w0rd
Файл сохраняем. Теперь надо найти файл базы данных - мне удалось его найти в дистрибутиве, откуда он и был извлечен. Файл назывался schema.mysql.sql - ложим его в понравившуюся директорию, переходим туда и идем в скуль, где создадим базу данных и пользователя, а затем загрузим туда данные из файлика
Код: Выделить всё
# mysql -uroot
mysql> CREATE DATABASE powerdns CHARACTER SET UTF8;
mysql> GRANT ALL PRIVILEGES ON powerdns.* TO 'powerdns'@'localhost' IDENTIFIED BY 'P@$$w0rd' WITH GRANT OPTION;
mysql> \. schema.mysql.sql
Код: Выделить всё
# /usr/local/etc/rc.d/pdns start
Код: Выделить всё
# host www.ya.ru 192.168.1.1
Using domain server:
Name: 192.168.1.1
Address: 192.168.1.1#53
Aliases:
www.ya.ru is an alias for ya.ru.
ya.ru has address 93.158.134.3
ya.ru has address 213.180.193.3
ya.ru has address 213.180.204.3
ya.ru has IPv6 address 2a02:6b8::3
ya.ru mail is handled by 10 mx.yandex.ru.
Теперь было бы не плохо обзавестись логами - просто по умолчанию все логи будут кидать в messages. Идём в /etc/syslog.conf и вписываем такие строки
Код: Выделить всё
!pdns
*.* /var/log/pdns/pdns.log
!pdns_recursor
*.* /var/log/pdns/pdns_recursor.log
Код: Выделить всё
#mkdir /var/log/pdns
#touch /var/log/pdns/pdns.log
#touch /var/log/pdns/pdns_recursor.log
Код: Выделить всё
/etc/rc.d/syslogd reload
Сразу настроим ротацию логов - в файлик /etc/newsyslog.conf добавляем
Код: Выделить всё
/var/log/pdns/*.log 644 7 * @T00 GJC
Код: Выделить всё
/etc/rc.d/syslogd restart
/etc/rc.d/newsyslog restart
http://www.lissyara.su/articles/freebsd ... /powerdns/