Una de las cosas que más uso en el Zimablade es, por supuesto, AdGuard Home. Después de haber hecho las configuraciones pertinentes, como poner filtros para la publicidad al navegar, aumentar la caché y todo lo que se tenía que hacer para, supuestamente, dejarlo y olvidarme, me surge un nuevo problema. Este problema está relacionado con una característica muy buena, que además fue una de las razones de pasarme a AdGuard Home, llamada “Optimistic Cache.”
Como dice Adrian, el optimistic cache usa las IP que tiene AdGuard Home en su caché, enviando rápidamente las que ya tiene y buscando una actualización. Esto no debería ser un problema porque la mayoría de los dominios casi nunca cambian de IP; es decir, si quiero abrir YouTube y este ya tiene la IP, siempre abrirá YouTube.
Y lo que pasa es que tengo algunos servicios que visito que cambian seguido de IP, y al abrirlos por primera vez en el día me da un error de que no hay conexión o cosas parecidas, ya que la IP antigua no funciona más para ese dominio.
Así que me puse a pensar en qué forma puedo hacer que eso se renueve cada cierto tiempo y así siempre tener la IP más actual en la caché y minimizar errores. Decidí crear un script que se inicie, por ejemplo, cada hora y que revise los dominios. De esta forma, siempre tendrían las IP más recientes, al menos cada hora, claro.
Pero antes tengo que tener los dominios y copiarlos a mano. Si fuesen pocos, sería fácil, pero AdGuard Home no tiene nada intuitivo, creo yo, para buscarlos y copiarlos fácilmente. Felizmente, se puede entrar a él con curl y, después de arreglar imprevistos como que los dominios que encuentra se dupliquen, he podido arreglarlo y obtener los dominios que quisiera en modo lista.
De esta forma, me ha sido fácil extraer los dominios necesarios para poder agregarlos a un archivo de texto, el cual será el contenedor de lo que mi script hará para renovar la IP en AdGuard Home.
Ahora que había podido resolver el problema de extraer los dominios desde AdGuard Home a un archivo, solo me quedaba por crear el script para que los revise. Esto iba a ser sencillo, pero como siempre, algo tiene que fallar. Después de crear el script, me di cuenta de que solo resolvía los DNS tipo A, y tal y como tengo mis DNS, no me sirve porque el tipo A y el tipo HTTPS, que ahora se estila tener, los toma como diferentes. Por lo cual, si resolvía el A y los actualizaba, y si la aplicación pedía no solo el DNS tipo A sino también el HTTPS, igual fallaba. Como no tengo mucha idea de todo esto, pensé que poniendo en mi script el tipo de registro HTTPS bastaría, pero no. Después de golpearme contra el kotatsu un par de veces, caí en la cuenta de que para verificar dominios HTTPS se tiene que usar TYPE65. Ya después de arreglar esto, ya tenía todo servido.
Claramente, solo lo usaré para los dominios que suelen cambiar de IP, como son los de los bancos y cosas así, así que se puede decir que ya está algo arreglado y que, de momento, puedo dejarlo así como está por un tiempo más.