¡Bienvenido a nuestra sección de preguntas y respuestas!

Aquí podrás realizar preguntas y recibir respuestas útiles de otros miembros de la comunidad.

¡Anímate a participar!


(Resuelto) - Configuracion de un servicio de DNS dinamica con BIND

+1 voto

Estoy configurando un servicio de DNS dinamica en mi subdominio d.example.com para acceder facilmente a mis maquinas con ip dinamica.

Estos son los cambios que he hecho:

En el servidor:

 

He creado en mi panel el subdominio d.example.com apuntando a mi servidor virtual.


En el archivo /etc/bind/named.conf he añadido al final lo siguiente:


zone "d.example.com" {
type master;
allow-transfer { none; };
file "dynamic/db.d.example.com";
update-policy {
grant laptop.d.example.com. name laptop.d.example.com. A TXT;
};
};

key laptop.d.example.com. {
algorithm hmac-md5;
secret "el-chorro-de-la-clave-publica";
};
 

 

El archivo /etc/bind/dynamic/db.d.example.com es asi:
$ORIGIN .
$TTL 3600 ; 1 hour
d.example.com IN SOA localhost. root.localhost. (
2012050903 ; serial
28800 ; refresh (8 hours)
7200 ; retry (2 hours)
2419200 ; expire (4 weeks)
604800 ; minimum (1 week)
)
NS localhost.
$ORIGIN d.example.com.

Despues he ejecutado:
rndc reload
/etc/init.d/bind9 restart

Y hasta aqui todo lo referente al servidor, todo aparentemente bien.

 

En el lado del cliente:


Ejecuto: nsupdate -y domain.key:el-chorro-de-la-clave-privada
Y dentro ejecuto:
server example.com
zone d.example.com
update add laptop.d.example.com. 3600 A 217.33.176.18
show
send

Y me devuelve este error:
; TSIG error with server: tsig indicates error
update failed: NOTAUTH(BADKEY)

 

Alguien sabe si estoy olvidando algo?

Alguna prueba de diagnostico que a alguien se le ocurra para saber si me falta algo o algo esta mal?

(Editado: Se ha cambiado el límite de carácteres para permitir preguntas más largas y se ha unificado esta)

propuesto por anónimo 25 Abr, 2013 en DNS
editado por erojas 10 Ene, 2014

3 Respuestas

0 votos
 
Mejor respuesta

 

Apreciado amigo,
 
en lugar de  
 
update-policy {
        grant domainkey. name domain.d.example.com A;
        };
 
Podrias probar con:
 
allow-update { key "domainkey."; };
 
E intenta si tienes la key y la zona en el mismo fichero de configuracion, cambiar el orden; es decir primero especificar la key y despues la zona.
 
A ver si con esto lo solucionamos.
 
Un saludo!
respondido por amarce (8,590 puntos) 27 Abr, 2013
seleccionado por adau 10 May, 2013
Buenas noticias, he dado un paaso adelante y he encontrado el error anterior.
Malas noticias, todavia no funciona completamente.

Encontre' dos problemas: La ruta relativa dynamic/db.d.xample.com detallada en named.conf no se encontraba, asi que la cambie' por una ruta absoluta /etc/bind/dynamic/db.example.com.

Pero despues el SERVFAIL persistia. Sospechaba que el problema serian los permisos sobre el archivo, asi que tras volverme loco, decidi' poner el db.example.com en /etc/bind. Y funciono'!

Decir que para tracear el error me fue' muy util el registro del sistema (/var/log/syslog)

El escenario actual es que dnsupdate actualiza perfectamente la ip del subdominio, con la particularidad de que lo estoy llamando desde el propio shell del servidor. Pero funciona.

No he probado a actualizarlo desde un cliente remoto, porque la prueba que queria hacer antes de esa, es, desde una maquina remota:
$ ping domain.d.example.com
$ ping d.example.com

Y no es capaz de alcanzar ninguno de los dos subdominios.
Sospecho que el problema ahora es la configuracion de d.example.com en el DNS de silicontower. Algo estoy haciendo mal.

La configuraciona ctual es:
d.example.com.    600    A        xxx.xxx.xxx.xxx
d.example.com.    600    NS        ns1.silicontower.net.
d.example.com.    600    NS        ns2.silicontower.net.

Alguna pista?
Menos mal que al final lo has solucionado, me alegro!

Ahora el problema que tienes ya es mas sencillo... los problemas de bind siempre son "magia negra", jejejeje.

Lo que debes hacer es lo siguiente:

En el dominio example.com donde lo tengas alojado crear las siguientes entradas:

d.example.com.    600    NS        ns1.example.com.
d.example.com.    600    NS        ns2.example.com.
ns1.example.com. 3600  A          ip.del.servidor.bind
ns2.example.com. 3600  A          ip.del.servidor.bind

y en la zona DNS de bind lo mismo:


d.example.com.    600    NS        ns1.example.com.
d.example.com.    600    NS        ns2.example.com.
d.example.com.    600    A        xxx.xxx.xxx.xxx

Si tienes el dominio con nosotros, debes solicitarnos mediante un ticket que te registremos el ns1 y ns2 de example.com en los root servers para que te funcione correctamente.

Un saludo!
Bien, acabo de hacer la primera ronda de modificaciones en el panel de silicon tower de mi dominio example.com para a;adir las 4 lineas que me has dicho.

En /etc/bind/db.d.example.com ha quedado asi:
$ORIGIN .
$TTL 3600    ; 1 hour
d.example.com    IN SOA    example.com. root.example.com. (
                2012050921 ; serial
                28800      ; refresh (8 hours)
                7200       ; retry (2 hours)
                2419200    ; expire (4 weeks)
                604800     ; minimum (1 week)
                )
$TTL 600    ; 10 minutes
            NS    ns1.example.com.
            NS    ns2.example.com.
            A    93.189.88.166
$ORIGIN d.example.com.
$TTL 3600    ; 1 hour


Despues he verificado que la configuracion de zona anterior es correcta usando:
named-checkzone d.example.com db.d.example.com
Y dice que es correcta.

He lanzado el dnsupdate (desde el servidor) y ha recibido la peticion de cambio correctamente, de hecho al final del fichero de zona ha a;adido la linea solicitada: (hice un restart del servicio bind para forzar el refresco de los datos)
domain    A    yyy.yyy.yyy.yyy

Desde una maquina remota hago:
host domain.d.example.com
y devuelve todavia la IP anterior que habia asociada (De las pruebas anteroires que hice)

Por lo que creo que puede estar relacionado con las entradas que faltan en los root servers.
Ahora mismo escribo el ticket!
GRACIAS de nuevo por vuestro tiempo!
Buenas,

Acuerdate de eliminar el tipo A de la zona DNS example.com:

d.example.com.    600    A        xxx.xxx.xxx.xxx

Ya que sino no ira a buscar el subdominio (Que es lo que te debe estar pasando).

Por otro lado, puedes comprobar si ya esta activo el subdominio correctamente con esta herramienta:

http://www.intodns.com/d.example.com

Ahi te sacará los NS's que ha recibido de los root servers y como va realizando la resolución DNS del dominio.

Un saludo!
Exacto, ese registro "d.example.com.    600    A        xxx.xxx.xxx.xxx" ya lo elimine' antes de meter los registros que me sugeriste.

La situacion actual es que
host domain.d.example.com
devuelve la ip correctamente, pero los cambios con dnsupdate llevan bastante rato en verse...
quizas el TTL?
quizas falta el registro de ns1.example.com y ns2.example.com en los root servers?

En cualquier caso sigo haciendo pruebas ;)
Hola,

Hemos revisado el dominio y el subdominio coge correctamente los NS's de los root servers. Lo que nos comentas será por el TTL, 600 son 600 segundos (Unos 10 minutos); este es el tiempo que tardara en refrescarse del servidor DNS.

Un saludo!
Las pruebas funcionaron!
Solo tengo que dedicarle un rato mas para comprobar si la respuesta de refresco de las DNS va bien con mi objetivo.
Gracias por vuestra ayuda!
0 votos
Siempre puedes emplear la opción "-d" ( debug ) del nsupdate para revisar realmente que está realizando nsupdate, ya que de otro modo no es posible saber si está realizando el update donde toca, aunque en el error indique que no se puede autentificar.
respondido por adau (29,590 puntos) 25 Abr, 2013
0 votos
Hola,

Yo intentaria poner un nombre de key distinta que el hostname para empezar (E intenta que no tenga signos de puntuacion) y en segundo lugar le quitaria el TXT ya que seguramente solo te interesa actualizar el tipo A. Despues haz el update con -d y pon por aqui el error que te da luego. (Recuerda reiniciar o hacer reload del bind despues de cambiar la config) :)

Saludos!
respondido por amarce (8,590 puntos) 25 Abr, 2013
Encontré el problema del anterior error, era el nombre de la clave en el comando dnsupdate.

Ahroa el error es otro, un SERVFAIL, os pongo la informacion que considero necesaria.

La salida de dnsupdate:
root:~# nsupdate -d -y domainkey:uO59NrY4p0Iv4IO55cJVvZsCSAOEDUVuO198BxLpRFTZvoNirOUCg97et9bmNRKAEPazPdGpuhumNOqpLPX5gA== -v temp2
Creating key...
namefromtext
keycreate
Sending update to 93.189.88.166#53
Outgoing update query:
;; ->>HEADER<<- opcode: UPDATE, status: NOERROR, id:  40063
;; flags: ; ZONE: 1, PREREQ: 0, UPDATE: 2, ADDITIONAL: 1
;; ZONE SECTION:
;d.example.com.        IN    SOA

;; UPDATE SECTION:
domain.d.example.com. 0    ANY    A   
domain.d.example.com. 3600 IN    A    217.33.176.18

;; TSIG PSEUDOSECTION:
domainkey.        0    ANY    TSIG    hmac-md5.sig-alg.reg.int. 1366912645 300 16 mwuJL0CgpNWpovrR2ZKXnw== 40063 NOERROR 0


Reply from update query:
;; ->>HEADER<<- opcode: UPDATE, status: SERVFAIL, id:  40063
;; flags: qr ra ; ZONE: 0, PREREQ: 0, UPDATE: 0, ADDITIONAL: 1
;; TSIG PSEUDOSECTION:
domainkey.        0    ANY    TSIG    hmac-md5.sig-alg.reg.int. 1366912645 300 16 9e8/v2IkNYeioS6q/qbhQw== 40063 NOERROR 0





Los permisos (sospecho que podria ser por esto):

root:/etc/bind# ll
total 48
-rw-r--r-- 1 bind bind  237 2013-04-25 19:01 db.0
-rw-r--r-- 1 bind bind  271 2013-04-25 19:01 db.127
-rw-r--r-- 1 bind bind  237 2013-04-25 19:01 db.255
-rw-r--r-- 1 bind bind  353 2013-04-25 19:01 db.empty
-rw-r--r-- 1 bind bind  256 2013-04-25 19:01 db.local
-rw-r--r-- 1 bind bind 1506 2013-04-25 19:01 db.root
drwxr--r-x 2 bind bind 4096 2013-04-25 19:32 dynamic
-rw-r--r-- 1 bind bind 2374 2013-04-25 19:50 named.conf
-rw-r--r-- 1 bind bind  165 2013-04-25 12:42 named.conf.local
-rw-r--r-- 1 bind bind  695 2013-04-25 19:01 named.conf.options
-rw-r----- 1 root bind   77 2013-04-25 09:14 rndc.key
-rw-r--r-- 1 bind bind 1317 2013-04-25 18:58 zones.rfc1918
root:/etc/bind# ll dynamic/
total 36
-rw-r--r-- 1 bind bind 297 2013-04-24 19:59 db.d.example.com


Sospecho que algo no va bien en la configuracion, quizas permisos... en cualquier caso, echais algo en falta? como podria tracear el error en el servidor para saber exactamente que es lo que falla?

GRACIAS!
Buenas,

Podrias indicarnos como te ha quedado ahora el fichero de configuracion del servidor bind y el del cliente?

Un saludo!
Buenas,

Por otro lado, comprueba que el usuario bind tiene permisos de escritura en la carpeta /etc/bind y en /etc/bind/dynamic

Un saludo!
Los permisos son como detallé en mi mensaje anterior, la mayoria pertenecen a bind, y sino estan en el grupo de bind.

Los archivos de configuración han quedado asi:
Archivo named.conf
zone "d.example.com" {
        type master;
        allow-transfer { none; };
        file "dynamic/db.d.example.com";
        update-policy {
        grant domainkey. name domain.d.example.com A;
        };
};

key domainkey. {
 algorithm hmac-md5;
 secret "uO59NrY4p0Iv4IO55cJVvZsCSAOEDUVuO198BxLpRFTZvoNirOUCg97e t9bmNRKAEPazPdGpuhumNOqpLPX5gA==";
};



Archivo dynamic/db.d.xample.com
$ORIGIN .
$TTL 3600 ; 1 hour
d.example.com IN SOA localhost. root.localhost. (
    2012050903 ; serial
    28800      ; refresh (8 hours)
    7200       ; retry (2 hours)
    2419200    ; expire (4 weeks)
    604800     ; minimum (1 week)
    )
   NS localhost.
$ORIGIN d.example.com.

Si pudiera saber donde consultar los detalles de ese SERVFAIL error en el servidor, creo que podria dar con el problema...

Gracias por vuestro tiempo una vez más

Preguntas relacionadas

0 votos
1 respuesta 134 vistas
propuesto por jolual (1,180 puntos) 1 Jul, 2015 en DNS
0 votos
3 respuestas 2,528 vistas
propuesto por anónimo 27 Ago, 2013 en DNS
0 votos
2 respuestas 1,274 vistas
0 votos
1 respuesta 70 vistas
0 votos
1 respuesta 824 vistas
...