сd /usr/ports/dns/powerdns make install clean
Я выбрал MYSQL, т.к. он был уже поднять, на нем крутятся POSTFIX, SPAMASSISGN, ProFTP, 3. Установка Power DNS recursorОн мне нужен для того чтобы все неизвестные запросы переадресовывал на другие сервера в инете (внешние), если вам это не надо можете не ставит, но он лишнем не будет
сd /usr/ports/dns/powerdns-recursor make install clean
4. Создаем БД
cd /usr/local/share/examples/powerdns/ mysql -u root -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 6965 Server version: 5.0.41 FreeBSD port: mysql-server-5.0.41 Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> CREATE DATABASE IF NOT EXISTS powerdns; mysql> GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, mysql> DROP, INDEX, ALTER on ' powerdns '.* to mysql> powerdns @localhost IDENTIFIED BY ' powerdns '; mysql> use powerdns; mysql> \. tables-mysql.sql
5. Конфигурируем PowerDNSДобавляем следующие строки в #/usr/local/etc/pdns/pdns.conf
# Разрешить передачу с … allow-axfr-ips=0.0.0.0/0 #Разрешить запросы с.. allow-recursion=0.0.0.0/0 # cache-ttl Seconds to store packets in the PacketCache cache-ttl=20 # Папка с конфигом config-dir=/usr/local/etc # Отключаем control-console, режим откладки control-console=no # Отключаем daemon daemon=no # Указываем наш сервер default-soa-name=ns1.domain1.net # default-ttl Seconds a result is valid if not set otherwise default-ttl=3600 # Отключаем guardian guardian=no # Запускаем и настр. модуль Mysql launch=gmysql gmysql-host=127.0.0.1 gmysql-port=3306 gmysql-user=powerdns gmysql-dbname=powerdns gmysql-password=powerpass # Указываем какие ИП слушать # если вы не используете recursor то можно
# поставить 0.0.0.0 (все интерфейсы) local-address=10.10.10.5, 192.168.0.254 # IPv6 я не использую, по этому не ставлю # local-ipv6= # Порт который надо слушать local-port=53 # Логим все logfile=/var/log/pdns/pdns.log loglevel=9 # Включаем подержу Master, он же у нас мастер master=yes # max-queue-length Maximum queuelength before considering
# situation lost max-queue-length=5000 # Макс. кол-во подключении TCP соед. max-tcp-connections=10 # Указываем на наш Recursor, # если вы не ставили PowerDNS-Recursor, то пропускаем recursor=127.0.0.1 # Не забудьте создать Юзера pdns принадлежащий группе pdns setgid=pdns setuid=pdns # Включаем подержу slave, у нас есть один slave домен slave=yes slave-cycle-interval=600 # smtpredirector Our smtpredir MX host smtpredirector= # soa-expire-default Default SOA expire soa-expire-default=604800 # soa-minimum-ttl Default SOA mininum ttl soa-minimum-ttl=3600 # soa-refresh-default Default SOA refresh soa-refresh-default=10800 # soa-retry-default Default SOA retry soa-retry-default=3600 # soa-serial-offset Make sure that no SOA serial is
# less than this number soa-serial-offset=0 # socket-dir Where the controlsocket will live socket-dir=/var/run # use-logfile Use a log file use-logfile=yes # Показываем версию POWERDNS в пакетах - full, anonymous,
# powerdns or custom version-string=powerdns # Включаем ВЕБ сервер для мониторинга webserver=yes # ИП каторую надо слушать я указал на локальную сеть webserver-address=192.168.0.254 # Пасс на веб сервер он мне не нужен # webserver-password= # Порт на веб сервер, смотрите чтобы он не был занять
# другой ПО, например # Apache webserver-port=8081 webserver-print-arguments=yes ################################
6. Конфигурируем я PowerDNS-RecursorДобавляем следующие строки в #/usr/local/etc/pdns/recursor.conf
allow-from=127.0.0.0/8, 10.0.0.0/8, 192.168.0.0/16,
172.16.0.0/12, ::1/128, fe80::/10 # Указываем Hint файл, его можно взять из BIND
# /var/named/etc/namedb /named.root, # или скачать ftp://ftp.rs.internic.net/domain/root.zone.gz hint-file=/usr/local/etc/pdns/root.zone # Адрес который надо слушать указываем только 127.0.0.1,
# и нечего лишнего local-address=127.0.0.1 # Порт который надо слушать, по умолчанию 53 local-port=53 max-tcp-clients=128 # Не забудьте создать Юзера pdns_recursor принадлежащий группе pdns setgid=pdns setuid=pdns_recursor socket-dir=/var/run/ version-string=PowerDNS Recursor 3.1.7 $Id: pdns_recursor.cc
1200 2008-06-14 21:11:33Z ahu $
7. Импорт зон из BINDТеперь на вытянуть все записи из BIND
/usr/local/bin/zone2sql --named-conf=/var/named/etc/namedb/named.conf \ ? --gmysql > domains.sql
и сливаем их Mysql
mysql -u root -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 6965 Server version: 5.0.41 FreeBSD port: mysql-server-5.0.41 Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> use powerdns; mysql> \. domains.sql
8. ЗапускПри первом запуске я заметил после PDNS, ни что не запускаетсяТогда я создал свой скрипт для запуска, только сильно не пенайти, создал как мог.
mkdir /usr/local/etc/rc_old cd /usr/local/etc/rc.d mv pdns /usr/local/etc/rc_old/ touch /usr/local/etc/rc.d/pdns chmod /usr/local/etc/rc.d/pdns
Содержимое /usr/local/etc/rc.d/pdns
#!/bin/sh # # PROVIDE: pdns # REQUIRE: LOGIN . /etc/rc.subr # set defaults pdns_enable=${pdns_enable:-"NO"} #Указываем UID и GID pdns pdns_uid=1007 pdns_gid=1007 name=pdns rcvar=`set_rcvar` start_cmd="pdns_start" stop_cmd="pdns_stop" load_rc_config ${name} pdns_start () { echo "Starting PowerDNS server" /usr/local/sbin/pdns_server --setgid=${pdns_gid} \ --setuid=${pdns_gid} --daemon=no --guardian=no \ --control-console --loglevel=9 > /dev/null & } pdns_stop () { echo "Stopping PowerDNS server" pidfile=/var/run/pdns.pid kill `cat $pidfile` } run_rc_command "$1"
#########Пробуем запустить PowerDNS
ns1# /usr/local/etc/rc.d/pdns start
Вроде ОКПробуем запустить PowerDNS-recursor
ns1# /usr/local/etc/rc.d/pdns-recursor start
Вроде ОК9. Веб-мордаДля Power-DNS есть куча Мордвот они- PDNS Admin (http://freshmeat.net/projects/pdns-admin/)- PowerAdmin (http://www.poweradmin.org/)- PowerDNS Administration (http://sourceforge.net/projects/powerdnsadmin/)- TUPA (http://www.tupa-dns.org/)- WebDNS (http://freshmeat.net/projects/webdns/)- ZoneAdmin (http://freshmeat.net/projects/zoneadmin/)откровенно говоря, я опробовал все, но не все работали, может руки корявые думаю у вас лучше получится…Больше всего мне понравился PowerAdminможно ставит из порта
cd /usr/ports/dns/poweradmin make install clean
или сделать как яКачаем файл poweradmin-2.1.1.tgz (на данный момент последняя версия была Poweradmin 2.1.1, не забываем посмотреть посвежее)http://freebsd.3dn.ru/введите_адреспока качается устанавливаем необходимые прогиа нам нужно Apache 1.3 или 2.0 и вышеexpatlibiconvlibxml2mysql-client-5.0gettextpear-1.5pear-DB-1.7pear-MDB2pear-MDB2_Driver_mysqlperl-5.8.8 php5php5-mysqlphp5-pcrephp5-xmlpkg-configэто есть в портах, все это уже стояла у меня, тем более тут ничего сложного нету так что я не буду зацикливатся на этом.теперь распакавыем poweradmin-2.1.0.tgz, ну например в /usr/local/www/data, тут разницы нет куда, если честно я распаковал в другую папку, на моем серваке есть отдельная страница АДМИНА, но не важно идем дальше
tar –zxf poweradmin-2.1.0.tgz –C /usr/local/www/data
идем в папку /usr/local/www/data/poweradmin-2.1.0для начало сливаем MYSQL в базу powerdns, следующий файлик poweradmin-mysql-db-structure.sql, он находится в папке docsЗатем идем в папку inc (предварительно делаем chmod –R 0777)
cp config-me.inc.php config.inc.php
и добавляем следующие строкиpoweradmin-2.1.0/inc/config.inc.php
$db_host = "127.0.0.1"; $db_user = "powerdns"; $db_pass = "powerdnspass"; $db_name = "powerdns"; $db_type = "mysql";
Добавляем следующие строки в апач
Alias /poweradmin/ /usr/local/www/data/poweradmin-2.1.0/ <Directory "/usr/local/www/data/poweradmin-2.1.0/"> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny Allow from all </Directory>
В браузере переходим по адресу http://example.net/poweradmin/installгде example.net имя ваше сервералогин и пароль "admin"Следуя инструкциям выполняем все условия, после успешного завершения,удаляем папку installИ опять в браузере переходим по адресу http://example.net/poweradmin/где example.net имя ваше сервералогин и пароль "admin"10. Делаем проверкуна машине клиентов выполняем команду
# nslookup www.domain1.net
# nslookup www.lissyara.su
И радуемся мы все таки не лузереP.S. Во время импорта зон из BIND, все зоны не зависимо от slave или master, они переводится в режим "native", надо в MySQL в базе powerdns, таблица domains, в графе type, по менять значения native на slave или master, или можно еще прощев PowerAdmin в List zones, в графе type, по менять значения native на slave или master.P.S. На этом я не останавливаюсь у меня же есть внутренний сервер, вот сейчас в активном поискеальтернативном DHCP Сервера работающий с MYSQL, будем пробовать прикручивать PDNS+DHCP.P.S. Данная статья и актуальная и для PGSQL.Используемые материалыhttp://www.powerdns.com/http://www.poweradmin.org/http://www.the-scream.co.uk/forums/t27204.html