
Estoy trabajando en una aplicación que se utilizará para verificar que los nuevos dominios estén configurados correctamente cuando estén configurados para alojamiento. Parte de esto verifica la validez de los registros SPF, DomainKey, DKIM, etc.
Actualmente uso un TTL predeterminado de una hora para la mayoría de estos registros. Ocasionalmente se encuentra un error en uno de los registros por lo que es necesario actualizarlo. Actualmente, si acabo de probar el dominio, tengo que esperar a que caduque el registro en caché del solucionador del sistema antes de poder verificar que sea correcto con mi aplicación. (Sí, puedo comprobarlo manualmente, pero escribí la solicitud para no tener que hacerlo).
Me gustaría configurar un servidor DNS en el sistema para que actúe como un solucionador de almacenamiento en caché normal, excepto que caducará los registros en un tiempo máximo establecido, como cinco minutos, o simplemente no almacenará en caché. No todos los dominios tienen DNS alojado en mis servidores de nombres normales, por lo que este sistema tendría que consultar los servidores de nombres autorizados para un dominio en lugar de usar solucionadores ascendentes (que solo usarían sus registros en caché).
Actualmente, esta máquina no ejecuta DNS de ningún tipo, por lo que puedo instalar BIND o djbdns (o algo más si hay una buena sugerencia).
Respuesta1
Gracias a todos por sus aportes y sugerencias. Me dirigieron a la siguiente solución:
- Instale bind9.
- Edite
/etc/bind/named.conf.options
para que los reenviadores estén en blanco (para que el servidor no utilice los registros almacenados en caché de otro servidor de caché). - Configure las opciones
max-cache-ttl
ymax-ncache-ttl
en 300 segundos. (referencia) - Cambie
listen-on-v6 { any; };
paralisten-on-v6 { localhost; };
que otros sistemas no utilicen el servidor. (referencia) - Edite el sistema
/etc/resolv.conf
para incluirlo únicamentenameserver 127.0.0.1
de modo que las aplicaciones en el servidor utilicen el nuevo servidor local.
Reinicié bind9 y verifiqué que está funcionando:
dev:~# dig serverfault.com
; <<>> DiG 9.5.1-P2 <<>> serverfault.com
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 63591
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 0
;; QUESTION SECTION:
;serverfault.com. IN A
;; ANSWER SECTION:
serverfault.com. 300 IN A 69.59.196.212
;; AUTHORITY SECTION:
serverfault.com. 300 IN NS ns21.domaincontrol.com.
serverfault.com. 300 IN NS ns22.domaincontrol.com.
;; Query time: 190 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Sat Jul 18 03:06:24 2009
;; MSG SIZE rcvd: 101
Los TTL se muestran como 300 a pesar de que los TTL publicados del registro de serverfault.com son 3600.
Respuesta2
Simplemente haga llamadas para "excavar", use +rastreo mucho...
Dig actuará como un servidor DNS y realizará una recursividad completa, sin cobro, sin necesidad de conocer los servidores NS de antemano y, si hay un problema de delegación, también lo encontrará.
Si es un programa de Windows, puedes descargar Bind desde aquí.https://www.isc.org/download/y contiene un dig.exe, en Linux generalmente hay herramientas BIND o tal vez un paquete de herramientas con nombre disponible que contendrá dig.
Instalar un servidor DNS completo solo para hacer búsquedas... ¡una locura!
$ dig www.google.com +trace +nodnssec -4
; <<>> DiG 9.11.9 <<>> www.google.com +trace +nodnssec -4
;; global options: +cmd
...
...
google.com. 172800 IN NS ns4.google.com.
;; Received 291 bytes from 192.48.79.30#53(j.gtld-servers.net) in 22 ms
www.google.com. 300 IN A 172.217.10.228
;; Received 59 bytes from 216.239.32.10#53(ns1.google.com) in 30 ms
Respuesta3
¿Por qué no utilizar dnscache (de la suite djbdns) y eliminarlo cada 5 minutos?
Para aquellos de ustedes que no han usado djbdns y específicamente dnscache, es un solucionador recursivo que no guarda nada en el disco. Además, djb creó un conjunto de herramientas que monitorean automáticamente un programa y, si muere, el programa de monitoreo lo reiniciará automáticamente (e instantáneamente).
Mátalo cada 5 minutos y Bob será tu tío...
Respuesta4
Puede, como usted dice, limitar el TTL más largo con max-cache-ttl
y max-ncache-ttl
, ya sea en la cláusula de opciones BIND o en una vista que solo se aplique a su servidor de desarrollo.
Sin embargo, eso afecta el TTL de todas las búsquedas, por lo que aumentaría la carga/red en un servidor de producción y disminuiría la resistencia del DNS.
Para BIND 9.3 y superior, si solo desea borrar el caché de un dominio, puede hacerlo
rndc flushname <domain>
Esto vacía todos los registros del dominio exacto, no de los subdominios. Vea el resultado de rndc
.
Por supuesto, si quieresalargarel TTL por cualquier motivo, es decirotra pregunta.