Unbound, ahora el DNS central de mi red
Después de haberme pasado de Pi-hole a AdGuard Home y lograr que todo funcionara bien, siempre había algo que me hacía sentir que faltaba algo y es que cada cierto tiempo que entraba, me saltaban a los ojos los números del tiempo de respuesta del DNS que resolvía los dominios. Veía que pasaba de 1 ms o 3 ms a más de 30 ms, y eso no me caía muy bien, además, al hacer dig no lo tomaba desde la caché en algunas webs
;; ANSWER SECTION:
github.com. 58 IN A 140.82.112.3
;; Query time: 150 msec
como se ve, luego de un tiempo el query time pasa de ser 1ms a 150ms y eso es algo que no me gusta porque aunque no es mucho pienso que al usar el optimistic cache de AdGuard Home debería enviar los antiguos datos que tiene en cache, pero este no lo hace bien
además, el usar ese caché que tiene un tiempo alto en algunas apps de banco japoneses estas terminan por no funcionar bien, ya que suelen cambiar de IP frecuentemente, y eso hace que den errores
además, claro, de las actualizaciones que se tienen que hacer para que todo esté bien y al día, o para arreglar cosas que en la versión anterior se habían arruinado
decisión de cambiar a Unbound de forma directa…
Antes no quería cambiar directamente a Unbound, porque pensaba que era imposible usar las listas de bloqueo disponibles, pero eso se puede solucionar fácil con un script que los convierta de:
0.0.0.0 bad-domain.ks
pasaría a ser:
local-zone: "bad-domain.ks." always_null
todo esto haciéndolo con un script que también corre cada cierto tiempo y que se puede programar en cron, con lo que sería lo mismo que tiene AdGuard Home. También se puede poner un whitelist, de modo que, tras cambiar los dominios a bloquear, el whitelist recorra todo el archivo y elimine aquellos que estén permitidos.
También quería algo para poder usar DNS-over-TLS (DoT), y eso también se puede hacer fácilmente en Unbound. En total, los puntos fuertes que tiene AdGuard Home se pueden replicar con un poco de tiempo en Unbound.
vamos a por lo que me cambié a Unbound…
lo principal, como había dicho, era que me molestaba que no usara el cache al terminarse el TTL y esto es muy fácil en Unbound con solo cambiar unas configuraciones:
serve-expired: yes
serve-expired-client-timeout: 0
Con estas opciones, Unbound ya puede servir dominios expirados, evitando así la espera. Mientras tanto, resuelve el dominio en segundo plano y lo vuelve a poner en Redis si es que cambió.
;; ANSWER SECTION:
github.com. 58 IN A 140.82.114.3
;; Query time: 0 msec
pero ¿qué pasaría si hay más usuarios o yo misma que piden el mismo dominio y en ese momento se está actualizando, entonces como yo lo pienso eso haría que el siguiente usuario tenga que esperar a que se resuelva el dominio otra vez hipotéticamente pasaría eso, eso, así que para poder hacer que no pase, decidí ponerle un poco de TTL a los dominios expirados que normalmente el más alto que vi al resolver un dominio era de 700ms así que le agregué en la configuración para que le dé 2 segundos de TTL a ese dominio expirado mientras que se toma el tiempo de resolverlo.
;; ANSWER SECTION:
github.com. 2 IN A 140.82.112.3
;; Query time: 0 msec
podría ponerle 1 pero mejor darle 2 para no tener problemas por si alguno demora más.
con todo esto ya todo de momento me está yendo mejor y las aplicaciones que me fallaban ya no lo hacen y todo va muy bien.