2010-08-15 11 views
8

Sto utilizzando PowerDNS (2.9.22) per i miei clienti. Perché può memorizzare tutti i dati nel database MySQL ed è facile per i clienti modificare le proprie zone come preferiscono.PowerDNS e CNAME su dominio esterno

Ora ho un problema con CNAMEs:

Qui ci sono record in database MySQL:

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

PowerDNS config è qui:

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 

quando sto facendo domanda nslookup, Ho ottenuto questo:

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 

Come puoi vedere, se CNAME punta al record INTERNO, tutto si risolve. Ma se punta al dominio esterno - Ho un errore.

andreyzentavr.com è di dominio inesistente e punti di 194.126.204.41

E 'bug in PowerDNS? O l'ho configurato in modo errato?

+0

Penso che il tuo "nome-predefinito-soa" includa il nome di dominio che stavi cercando di rimuovere dal tuo post .. – sarnold

risposta

2

In genere, con DNS, se si desidera puntare un CNAME su un record esterno, è necessario aggiungere un periodo alla fine del record (sub.domain.com.). Quando si esclude il punto finale, il DNS lo interpreta come un record relativo (quindi sub.domain.com potrebbe essere interpretato come sub.domain.com.domain.com, ad esempio).

Vorrei assumere dal momento che si dispone di un record 'A' per localhost.example.com istituito nel database, PowerDNS vede che e sa che è il dominio si intende per puntare, anche se non hai fatto l'altro CNAME assoluto (localhost.example.com.) o relativo (solo localhost nel nome host).

+5

PowerDNS non ha bisogno del periodo alla fine del record, in realtà. – Habbie

6

La soluzione consiste nel mettere il ricorsore davanti al server autorevole e configurare il ricorsore per inoltrare domini specifici al server autorevole utilizzando la direttiva forward-zone-recurse. Richiede la versione 3.2 del ricorsore.

Problemi correlati