La Raspberry Pi se ha postulado en casa como una navaja suiza para realizar infinidad de tareas ligeras, así como complemento o sustituto de otros dispositivos. Uno de esos usos caseros es relegar al router de su tarea de convertir a IPs físicas las URL de las webs a las que tú o tus dispositivos acceden. Hoy veremos cómo montar tu propio servicio DNS en la Raspberry Pi. ¡Vamos a ello!
¿Qué es DNS y para qué lo quiero?
El DNS es como la guía telefónica de internet. Cuando escribes un nombre fácil de recordar en tu navegador, como «www.binariuscogitans.com», tu ordenador no sabe dónde está esa página exactamente. Necesita la dirección real, que es una serie de números (la dirección IP, un churro difícil de recordar, al estilo de 76.24.51.150).
El DNS funciona como un intermediario. Tu ordenador pregunta a un servidor DNS: ‘¿Oye, sabes la dirección real de «www.binariuscogitans.com»?’ El servidor DNS busca en su «guía telefónica» y le dice a tu ordenador la dirección IP correcta para que pueda llegar a la página web.
Sin el DNS, navegar por internet sería muy difícil y tendrías que memorizar muchísimos números.
Tu proveedor de internet, tu ISP, (la compañía que te da la conexión) ya te proporciona ses servicio de DNS. Sin embargo, en algunos casos, podría ser de interés tener el tuyo propio:
- Conocimiento : conocer qué dispositivos están invocando a qué URLs.
- Control parental y seguridad básica: crear listas de páginas web que quieres bloquear en tu casa para evitar que tus hijos accedan a ciertos contenidos ( por ejemplo, páginas de apuestas como ‘Betway’) o como una capa extra de seguridad básica para bloquear sitios maliciosos conocidos.
- Hacer desaparecer anuncios: crear listas de páginas web que quieres bloquear en tu casa para evitar que aparezcan anuncios en las webs que visitas.
- Evitar seguimiento: crear listas de páginas web que quieres bloquear en tu casa para evitar que terceros sepan qué haces y cuándo lo haces (no quieres que tu TV le diga al fabricante qué canal ves o no quieres que una web sepa de ti qué otras webs visitas).
- Velocidad de resolución: en algunos casos específicos podrías resolver las direcciones un poquito más rápido que los servidores de tu proveedor, aunque la diferencia suele ser muy pequeña y casi imperceptible.
- Privacidad : algunos servidores DNS públicos se enfocan en la privacidad y no guardan registros de las páginas que visitas. Si configuras tu propio servidor DNS y lo conectas a uno de estos servidores públicos centrados en la privacidad, podrías tener un poco más de control sobre tus datos de navegación; si, además, ese diálogo lo haces de forma cifrada, tu ISP no podrá detectar qué peticiones de resolución que haces.
¿Qué es AdGuard Home?
AgGuard Home es un sistema gratuito y de código abierto (con licencia GPLv3) de bloqueo de anuncios y de seguimiento a nivel de red, al estilo del más afamado Pi-Hole, con cierto nivel de control parental y sí, ya te he hablado de él en otro artículo.
Para poder tener ese agujero negro (0.0.0.0) al que llevar cualquier petición no deseada necesitas tu propio DNS, necesitas AdGuard Home (o similar).
Instalación
¡ATENCIÓN!
Es condición sine qua non que tu Raspberry, donde estás instalando AdGuard Home, tenga una IP fija. Ya explicamos cómo hacerlo en este artículo.
Tal y como hicimos en el anterior artículo, en que vimos cómo instalar una aplicación desde Casa OS mediante el uso «invisible» de contenedores Docker, seguiremos los pasos descritos allí, yendo a la App Store de Casa OS y buscando AdGuard Home. Una vez instalado, pinchas en su icono e iniciamos su configuración (como DNS).
Configuración
Lo primero es decirle dónde debe escuchar AdGuard (interfaz de red y puerto). Yo dejaría los valores por defecto, pero eso lo decides tú, porque puede que tengas ya otros servicios corriendo sobre esos mismos puertos. Fíjate en que te da un aviso de que, como dijimos, necesitas una IP fija. Por favor, si no lo has hecho aún, detente, otorga una IP fija a tu Raspberry y luego ya harás la configuración.

En la siguiente pantalla tendrás que crear un usuario administrador.

Ahora, ya estás dentro de AdGuard y podemos acabar de hacer las configuraciones de tu DNS.
Son distintos los elementos que podemos configurar; los más importantes serían, en mi opinión:
- Políticas generales de bloqueo de servicios (como TikTok o Epic Games)
- Establecimiento de usuarios y sus dispositivos para aplicarles políticas particulares.
- DNS (recursivo) externo que resolverá la IP. Este punto es muy importante a efectos de latencias en la resolución y de privacidad (DNS externos con los que podemos mantener un diálogo encriptado, no visible por nuestro operador). AdGuard ya viene configurado, por defecto, con uno (Quad9). De este tema, hablaremos en un próximo artículo.
Conclusión
Si bien tu ‘router’ ya proporciona un DNS es posible que, como me sucedió, llegue un momento en el que quieras ejercer tú el control sobre qué debe o no debe hacer el DNS. Además, así como son los ‘routers’ de operadora, cacharros de penosa calidad que no son actualizados, mejor te lo montas tú, dejando que el router haga sólo de router.
Un servicio de DNS propio te permite tener un control total sobre el tráfico de Internet, siendo una de esas «chuches» tecnológicas imprescindibles, para mí, a tener en casa. Además, tu propio DNS te permite dar nombres fácilmente recordables a tus dispositivos; por ejemplo, para acceder a mi NAS o al NUC, no lo hago por su IP, sino que tengo una entrada en el DNS para acceder a ellos mediante con nombres como «nas.lan» o «nuc.lan» (y así otros muchos dispositivos).
Para concluir quiero haceros partícipes de una frase que , de jovencito, me decía mi tío: «no hagas de dos cosas buenas una de mala». Si bien con AdGuard podemos tener, también, un servidor de DHCP, AdGuard es, fundamentalmente, un DNS. En mi caso, el DHCP lo tengo montado con isc_dhcp bajo Docker.