2010-08-15 7 views
8

J'utilise PowerDNS (2.9.22) pour mes clients. Parce qu'il peut stocker toutes les données dans la base de données MySQL et qu'il est facile pour les clients d'éditer leurs zones comme ils veulent.PowerDNS et CNAME au domaine externe

Maintenant, j'ai un problème avec CNAMEs:

Voici les enregistrements dans la base de données MySQL:

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

config PowerDNS est ici:

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 

quand je fais requête nslookup, J'ai obtenu ceci:

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 

Comme vous pouvez le voir, si CNAME pointe vers l'enregistrement INTERNE - tout se résout bien. Mais s'il pointe vers un domaine externe - j'ai une erreur.

andreyzentavr.com est du domaine et des points à existant 194.126.204.41

Est-ce bogue dans PowerDNS? Ou l'ai-je mal configuré?

+0

Je pense que votre 'default-soa-name' comprend le nom de domaine que vous essayiez de retirer de votre message. – sarnold

Répondre

2

Habituellement, avec DNS, si vous voulez pointer un CNAME vers un enregistrement externe, vous devez ajouter un point à la fin de l'enregistrement (sub.domain.com.). Lorsque vous laissez le point final, DNS interprète comme un enregistrement relatif (donc sub.domain.com serait interprété comme sub.domain.com.domain.com, par exemple). Je suppose que puisque vous avez un enregistrement 'A' pour localhost.example.com configuré dans votre base de données, PowerDNS le voit et sait que c'est le domaine que vous voulez désigner, même si vous n'avez pas fait l'autre CNAME absolu (localhost.example.com.) ou relatif (juste localhost dans le nom d'hôte).

+5

PowerDNS n'a pas besoin de la période à la fin de l'enregistrement, en fait. – Habbie

6

La solution consiste à placer le récurseur devant le serveur faisant autorité et à configurer le récurseur pour qu'il transfère des domaines spécifiques au serveur faisant autorité en utilisant la directive forward-zones-recurse. Nécessite la version 3.2 du récurseur.

Questions connexes