PowerDNS и CNAME для внешнего домена - PullRequest
8 голосов
/ 15 августа 2010

Я использую PowerDNS (2.9.22) для своих клиентов. Потому что он может хранить все данные в базе данных MySQL, и клиентам легко редактировать свои зоны по своему усмотрению.

Теперь у меня проблема с CNAME:

Вот записи в базе данных MySQL:

+-----------------------+-------+-----------------------+
| localhost.example.com |   A   | 127.0.0.1             |
+-----------------------+-------+-----------------------+
| a.example.com         | CNAME | localhost.example.com |
+-----------------------+-------+-----------------------+
| www.example.com       | CNAME | andreyzentavr.com     |
+-----------------------+-------+-----------------------+

Конфигурация PowerDNS здесь:

allow-recursion=127.0.0.1, 173.193.**.162, 173.193.**.163
allow-recursion-override=on
cache-ttl=20
config-dir=/etc/powerdns
daemon=yes
default-soa-name=ns3.bserver.com
disable-axfr=yes
guardian=no
launch=gmysql
gmysql-host=127.0.0.1
gmysql-port=3306
gmysql-user=powerdns
gmysql-dbname=powerdns
gmysql-password=123123
lazy-recursion=yes
local-address=173.193.**.162, 173.193.**.163
local-port=53
log-dns-details=yes
log-failed-updates=yes
logfile=/var/log/pdns.log
loglevel=6
master=yes
max-queue-length=5000
max-tcp-connections=10
module-dir=/usr/lib/powerdns
query-logging=yes
recursor=127.0.0.1:53
setgid=pdns
setuid=pdns
skip-cname=no
slave=yes
slave-cycle-interval=600
soa-minimum-ttl=3600
soa-refresh-default=10800
soa-retry-default=3600
soa-serial-offset=0
socket-dir=/var/run
use-logfile=yes
wildcards=yes
version-string=powerdns

когда я делаю запрос nslookup, я получил это:

server:~# nslookup
> set q=any
> server ns3.***.com
Default server: ns3.***.com
Address: 173.193.**.163#53
> a.example.com
Server:         ns3.***.com
Address:       173.193.***.163#53

a.example.com      canonical name =localhost.example.com.
Name: localhost.example.com
Address: 127.0.0.1
>
>
> www.example.com
Server:         ns3.***.com
Address:       
173.193.***.163#53

** server can't find www.example.com: NXDOMAIN

Как видите, если CNAME указывает на ВНУТРЕННУЮ запись - все разрешается нормально. Но если он указывает на внешний домен - у меня ошибка.

andreyzentavr.com является существующим доменом и указывает на 194.126.204.41

Это ошибка в PowerDNS? Или я его неправильно настроил?

Ответы [ 2 ]

6 голосов
/ 14 сентября 2012

Решение состоит в том, чтобы поместить рекурсор перед уполномоченным сервером и настроить рекурсор для перенаправления определенных доменов на полномочный сервер с помощью директивы forward-zone-recurse. Требуется версия 3.2 рекурсора.

2 голосов
/ 01 февраля 2011

Обычно в DNS, если вы хотите указать CNAME на внешнюю запись, вы должны добавить точку в конец записи (sub.domain.com.).Когда вы опускаете конечную точку, DNS интерпретирует ее как относительную запись (например, sub.domain.com будет интерпретироваться как sub.domain.com.domain.com).

Я бы предположил, поскольку у вас есть запись 'A' дляlocalhost.example.com настроенный в вашей базе данных, PowerDNS видит это и знает, что это тот домен, на который вы хотите указать, даже если вы не сделали другой CNAME абсолютным (localhost.example.com.) или относительным (просто localhost в имени хоста).

...