Инструменты пользователя

Инструменты сайта


powerdns:powerdns

PowerDNS

PowerDNS — представляет собой высокопроизводительный DNS-сервер, написанный на C++ и лицензируемый под лицензией GPL. Разработка ведётся в рамках поддержки Unix-систем.

Сервер разработан в голландской компании PowerDNS.com Бертом Хубертом и поддерживается сообществом свободного программного обеспечения.

PowerDNS использует гибкую архитектуру хранения/доступа к данным, он может работать с следующими хранилищами данных:

  • директории LDAP;
  • файлы зон BIND;
  • собственные файлы зон;
  • реляционные БД.

PowerDNS по умолчанию настроен на обслуживание запросов из БД.

Распространяется в виде двух компонентов:

http://www.powerdns.com/

Схема работы

Традиционная схема работы серверов до версии 4.1.0:

Авторитетный LDAP
ldap:1
ldap:2
BIND
Рекурсивный Внешние серверы (forward)
forward1
forward2

Рекурсия была удалена с авторитетного сервера в версии 4.1.0.

Примеры файлов для этой версии:


Migrating from using recursion on the Authoritative Server to using a Recursor — PowerDNS Authoritative Server documentation

Схема работы серверов с версии 4.1.0:

Рекурсивный Внешние серверы (forward)
forward1
forward2
Авторитетный LDAP
ldap:1
ldap:2
BIND

Настройка

/var/lib/powerdns — папка с файлами зон, например при использовании Bind

security-poll-suffix

Для подобных подавления сообщений:

pdns_server: Could not retrieve security status update for '4.0.3-1+deb9u3.Debian' on 'auth-4.0.3-1_deb9u3.Debian.security-status.secpoll.powerdns.com.', RCODE = Non-Existent domain

Нужно установить «пустое» значение переменной security-poll-suffix

/etc/powerdns/pdns.conf
security-poll-suffix=

PowerDNS Security Status Polling | PowerDNS Blog

Авторитетный (Authoritative)

Установка

apt-get install pdns-server pdns-backend-ldap

Для Debian 7 (wheezy) нужно ставить из репозитория wheezy-backports:

apt-get install -t wheezy-backports pdns-server pdns-backend-ldap

Настройка

Для версии 4.1.0 и старше:

Важно, что поскольку все запросы должны идти через рекурсивный сервер, то этот должен использовать не основной порт, например:

local-port=5300
/etc/powerdns/pdns.conf
setgid=pdns
setuid=pdns
daemon=yes
guardian=yes
config-dir=/etc/powerdns
include-dir=/etc/powerdns/pdns.d
default-soa-name=ns.domain.ru
security-poll-suffix=
 
local-address=127.0.0.1,10.0.0.1
local-port=5300
 
allow-axfr-ips=10.0.1.5, 10.0.1.6
master=yes
slave=yes
 
launch=ldap:1,ldap:2

Для версии до 4.1.0

Для версии до 4.1.0

/etc/powerdns/pdns.conf
setgid=pdns
setuid=pdns
daemon=yes
guardian=yes
config-dir=/etc/powerdns
include-dir=/etc/powerdns/pdns.d
default-soa-name=ns.domain.ru
 
local-address=127.0.0.1,10.0.0.1
local-port=53
 
allow-axfr-ips=10.0.1.5, 10.0.1.6
master=yes
slave=yes
 
launch=ldap:1,ldap:2
 
recursor=127.0.0.1:5353
allow-recursion=127.0.0.1, 10.0.1.5, 10.0.1.6

Сервис

Состояние:

systemctl list-unit-files|grep pdns

пример вывода:

pdns.service                               enabled

Включение

systemctl enable pdns

axfr

FIXME

Передача зоны DNS.

В переменной allow-axfr-ips можно задать список адресов на которые разрешена передача зоны DNS.

recursor

FIXME

Адрес сервера и порт задаются в поле recursor.

В поле allow-recursion нужно перечислить адреса с которых разрешены рекурсивные запросы.

LDAP

OpenLDAP.

LDAP backend

dnsdomain2.ldif, источник схемы: пакет pdns-backend-ldap, файл /etc/ldap/schema/dnsdomain2.schema

olcDbIndex_dns.ldif
dn: olcDatabase={1}mdb,cn=config
changetype: modify
add: olcDbIndex
olcDbIndex: associatedDomain pres,eq,sub
-
add: olcDbIndex
olcDbIndex: aAAARecord pres,eq
-
add: olcDbIndex
olcDbIndex: aRecord pres,eq
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/dnsdomain2.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f olcDbIndex_dns.ldif

dnsdomain2.schema

pdns-backend-ldap_4.0.3-1+deb9u4_amd64.deb
deb://CONTENTS/etc/ldap/schema/dnsdomain2.schema

Настройки соединения

/etc/powerdns/pdns.d/pdns.ldap.conf
ldap-1-host=127.0.0.1
ldap-1-basedn=ou=dns,dc=sub1,dc=domain
ldap-1-binddn=cn=srvs,dc=domain
ldap-1-secret=ПАРОЛЬ
ldap-1-method=simple
 
ldap-2-host=127.0.0.1
ldap-2-basedn=ou=dns,dc=sub2,dc=domain
ldap-2-binddn=cn=srvs,dc=domain
ldap-2-secret=ПАРОЛЬ
ldap-2-method=simple

Импорт файлов зон

Пример файлов для импорта зон сервера BIND:

zone2ldap_1.sh
!/bin/sh -
zone2ldap\
 --basedn='ou=dns,dc=sub1,dc=domain,dc=ru'\
 --named-conf=named.conf.local_1\
 --resume > dns_1.ldif\
zone2ldap_2.sh
!/bin/sh -
zone2ldap\
 --basedn='ou=dns,dc=sub2,dc=domain,dc=ru'\
 --named-conf=named.conf.local_2\
 --resume > dns_2.ldif\

BIND

Поведение в стиле сервера BIND

Установка:

apt install pdns-server pdns-backend-bind
/etc/powerdns/named.conf
# Debian default: supermaster created zones are written here:
include "/var/lib/powerdns/supermaster.conf";
 
zone "domain.ru" {
  file "/var/lib/powerdns/zones.slave.d/domain.ru";
  type slave;
  masters { 10.0.1.1; };
};

Рекурсивный (Recursor)

Установка

apt-get install pdns-recursor

Настройка

Пример настройки сервера:

Важно, что поскольку все запросы должны идти через этот сервер, он использовать основной порт:

local-port=53

Для версии 4.1.0 и старше:

/etc/powerdns/recursor.conf
config-dir=/etc/powerdns/
daemon=yes
quiet=yes
setgid=pdns
setuid=pdns
 
local-address=127.0.0.1,10.0.0.1
local-port=53
 
allow-from=127.0.0.0/8
forward-zones=.=8.8.8.8;8.8.4.4
forward-zones-recurse=.=8.8.8.8;8.8.4.4

Для версии до 4.1.0

Для версии до 4.1.0

/etc/powerdns/recursor.conf
config-dir=/etc/powerdns/
daemon=yes
quiet=yes
setgid=pdns
setuid=pdns
 
local-address=127.0.0.1,10.0.0.1
local-port=5353
 
allow-from=127.0.0.0/8
forward-zones=.=8.8.8.8;8.8.4.4
forward-zones-recurse=.=8.8.8.8;8.8.4.4

local

Список адресов на которых будет работать сервер и номер порта задаются переменными:

  • local-address
  • local-port

allow-from

Список адресов с которых разрешены запросы к серверу задаётся в переменной allow-from

forward

Серверы на которые будет отправлен запрос, если в кэш нет данных.

Список серверов задаётся в переменных:

  • forward-zones
  • forward-zones-recurse

Ссылки

powerdns/powerdns.txt · Последние изменения: 2023-01-15 16:42 — GreyWolf