zona - PowerDNS y CNAME a dominio externo
tipos de zonas dns (2)
Estoy usando PowerDNS (2.9.22) para mis clientes. Porque puede almacenar todos los datos en la base de datos MySQL y es fácil para los clientes editar sus zonas a su gusto.
Ahora tengo un problema con CNAME:
Aquí hay registros en la base de datos MySQL:
+-----------------------+-------+-----------------------+
| localhost.example.com | A | 127.0.0.1 |
+-----------------------+-------+-----------------------+
| a.example.com | CNAME | localhost.example.com |
+-----------------------+-------+-----------------------+
| www.example.com | CNAME | andreyzentavr.com |
+-----------------------+-------+-----------------------+
La configuración de PowerDNS está aquí:
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
cuando hago la consulta nslookup, obtengo esto:
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
Como puede ver, si CNAME apunta a un registro INTERNO, todo se resuelve bien. Pero si apunta a un dominio externo, tengo un error.
andreyzentavr.com es dominio actual y apunta a 194.126.204.41
¿Es error en PowerDNS? ¿O lo configuré incorrectamente?
La solución es colocar el recursor delante del servidor autoritativo y configurar el recursor para reenviar dominios específicos al servidor autoritativo utilizando la directiva forward-zones-recurse. Requiere la versión 3.2 del recursor.
Normalmente, con DNS, si desea apuntar un CNAME a un registro externo, debe agregar un punto al final del registro ( sub.domain.com.
). Cuando deja el punto final, DNS lo interpreta como un registro relativo (por sub.domain.com
tanto, sub.domain.com
se interpretaría como sub.domain.com.domain.com
, por ejemplo).
Asumiría que tiene un registro ''A'' para localhost.example.com
configurado en su base de datos, PowerDNS lo ve y sabe que ese es el dominio al que quiere apuntar, aunque no hizo que el otro CNAME sea absoluto ( localhost.example.com.
) o relativo (solo localhost
en el nombre de host).