Configuración de PowerDNS en los IES utilizando pdns-recursor para resolver direcciones internas y externas | Algo de Linux

jueves, 30 de octubre de 2014

Configuración de PowerDNS en los IES utilizando pdns-recursor para resolver direcciones internas y externas

En un post de abril de este año (http://enavas.blogspot.com/2014/04/configurar-powerdns-en-los-centros-para.html) explicaba cómo configurar PowerDNS en los servidores de los centros para tener acceso a las aplicaciones de intranet del Gobierno de Extremadura.

Como estoy demasiado ocupado en el centro, casi no leo el correo de la lista o lo ojeo por encima. El caso es que esta mañana he visto que algún compañero comentaba en un mensaje de hace algunos días que la configuración que explicaba en el post mencionado anteriormente no le servía para que el DNS le resolviera una dirección de una web externa.

Decir que es lógico porque con lo expuesto en el post no se trata de resolver direcciones externas, sino de configurar PowerDNS para que resuelva direcciones de la intranet. Para mejorar la configuración de la resolución externa, habría que tocar otras configuraciones adicionales.

Cuando escribí el artículo no quise incluir mi configuración completa para que la gente no se liara y copiara y pegara mis configuraciones en sus servidores sin entenderlas, algo que puede ser bastante problemático si no se sabe lo que se está haciendo. Como ya he comentado en alguna ocasión, en mi centro tengo montada una réplica del servicio ldap en el servidor nfs y un powerdns en cada uno de los servidores, de tal manera que ambos resuelvan nombres consultando la base de datos del ldap local.

En el fichero de configuración de powerdns /etc/powerdns/pdns.d/pdns-debian-edu.conf tengo definido que use como recursor el propio servidor dns (127.0.0.1:1553):
recursor=127.0.0.1:1553
- See more at: http://enavas.blogspot.com.es/2014/04/configurar-powerdns-en-los-centros-para.html#sthash.kK0RGkaZ.dpuf
En el fichero de configuración de powerdns /etc/powerdns/pdns.d/pdns-debian-edu.conf tengo definido que use como recursor el propio servidor dns (127.0.0.1:1553):
recursor=127.0.0.1:1553
- See more at: http://enavas.blogspot.com.es/2014/04/configurar-powerdns-en-los-centros-para.html#sthash.kK0RGkaZ.dpuf
En el fichero de configuración de powerdns /etc/powerdns/pdns.d/pdns-debian-edu.conf tengo definido que use como recursor el propio servidor dns (127.0.0.1:1553):
recursor=127.0.0.1:1553
- See more at: http://enavas.blogspot.com.es/2014/04/configurar-powerdns-en-los-centros-para.html#sthash.kK0RGkaZ.dpuf
También creo haber leído que alguien había desactivado el recursor porque al fin y al cabo en la configuración que aplicaba, no se estaba usando y realmente no sabía para qué servía.

No voy a entrar en demasiados detalles sobre PowerDNS, pero voy a tratar de aclarar un poco el tema para que se entienda, sobre todo porque a mí me gusta entender todo aquello con lo que trabajo y supongo que a otros también.

Bueno, vamos al tema...

PowerDNS está formado por dos componentes:
  • El servidor "autoritativo": pdns.
  • Y el recursor: pdns-recursor.
Otros servidores DNS combinan ambas funciones.

Por decirlo de algún modo, un servidor DNS "autoritativo" es la fuente que proporciona información de resolución de nombres para un dominio en particular. 
Los servidores "autoritativos" pueden ser de dos tipos: primarios o secundarios.

En cuanto al recursor, simplemente nos proporciona un sistema de almacenamiento en caché para acelerar la resolución de nombres y un dispositivo de resolución recursiva de nombres para que nuestros clientes accedan a nuestra red o a internet utilizando DNS.

Teniendo en cuenta todo ésto, estaréis de acuerdo conmigo en que, aunque el recursor no es imprescindible, sí es de gran utilidad.
Cuando en el fichero /etc/powerdns/pdns.d/pdns-debian-edu.conf tenemos la siguiente línea:
recursor=127.0.0.1:1553
Le estamos diciendo a nuestro servidor DNS "autoritativo" que  utilice como recursor el servidor que escucha en la dirección IP 127.0.0.1 y en el puerto 1553.

Si en lugar de eso, en el fichero /etc/powerdns/pdns.d/pdns-debian-edu.conf ponemos la siguiente línea:
recursor=8.8.8.8
Le estamos diciendo a nuestro servidor DNS "autoritativo" que  utilice como recursor el servidor de Google cuya IP es 8.8.8.8

En mi caso, utilizo el recursor que corre en mi servidor (recursor=127.0.0.1:1553), sencillamente porque mi recursor cacheará información de dns localmente y eso hará que esa información se proporcione más rápidamente a los clientes.

Alguien me preguntaba cómo es posible que el servidor autoritativo y el recursor se encuentren corriendo en la misma máquina. La respuesta es muy sencilla: El servidor autoritativo escucha en el puerto 53 y el recursor escucha en el puerto 1553.

Una vez aclarado un poco el tema, os muestro mi configuración para el recursor, que se entiende bastante bien con sólo ver el fichero:

/etc/powerdns/recursor.conf
dont-query=
forward-zones=valledeljerte3=172.19.144.3;172.19.144.2,gobex.pri=172.20.5.4;172.20.5.3,juntaextremadura.pri=172.16.1.28
forward-zones-recurse=.=8.8.8.8;8.8.4.4
local-address=127.0.0.1
local-port=1553
quiet=yes
setgid=pdns
setuid=pdns
Con ésto, garantizo la resolución de nombres de mi dominio, la resolución de nombres de dominio de la intranet y la resolución de nombres de internet.
Publicado por primera vez en http://enavas.blogspot.com.es