PowerDNS和CNAME到外部域
我为我的客户使用PowerDNS(2.9.22)。因为它可以将所有数据存储到MySQL数据库中,并且客户可以轻松地编辑它们的区域。PowerDNS和CNAME到外部域
现在我有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指向INTERNAL记录 - 一切都解决了。但是,如果它指向外部域 - 我有一个错误。
andreyzentavr.com是existant域名并指向194.126.204.41
它是错误的PowerDNS?或者我错误地配置了它?
通常,对于DNS,如果要将CNAME指向外部记录,则必须在记录末尾添加一个句点(sub.domain.com.
)。当你离开最后一个点时,DNS将其解释为相对记录(例如,sub.domain.com
将被解释为sub.domain.com.domain.com
)。
因为您在数据库中设置了的'A'记录,所以PowerDNS可以看到并知道那是您指向的域名,即使您没有将其他CNAME绝对设置(localhost.example.com.
)或相对(主机名中只有localhost
)。
PowerDNS实际上并不需要记录结束的时间段。 – Habbie 2011-10-14 04:53:15
解决方法是将recursor放在权威服务器前,并配置recursor使用forward-zones-recurse指令将特定域转发到权威服务器。需要recursor的版本3.2。
我认为你的'default-soa-name'包含你试图从你的帖子中删除的域名.. – sarnold 2011-01-30 10:53:51