Como alternativa a las soluciones de hardware costosas de hoy en día, el desarrollador egipcio ZedAxis creó un eficaz filtro DNS para bloquear anuncios utilizando únicamente una tarjeta de microcontrolador ESP32-C3 de 5 dólares. Este pequeño dispositivo ofrece una solución asequible de DNS de respaldo para redes domésticas.
Debido a la limitada memoria RAM (400 KB) y memoria flash (4 MB) del ESP32-C3, ZedAxis empleó un método inteligente para almacenar más de 537.000 dominios. En lugar de almacenar los nombres de dominio directamente, utilizó hashes FNV-1a de 40 bits para comprimir los datos y creó una tabla hash ordenada. Esto permite almacenar una gran lista de bloqueo en la memoria flash del dispositivo.
El dispositivo evalúa las consultas DNS entrantes aplicando el mismo hash y realizando una búsqueda binaria en la tabla ordenada para tomar la decisión de bloqueo. Este proceso tarda aproximadamente 10 milisegundos y el firmware utiliza solo 50 KB de RAM. Además, al renunciar a la actualización por Wi-Fi (OTA), la segunda sección de firmware se utilizó para almacenar la lista de bloqueo, aumentando el número de dominios bloqueables de 250.000 a 537.000.
Esta solución basada en ESP32 no está diseñada para reemplazar sistemas completos como Pi-hole o AdGuard Home, sino para proporcionar un servicio DNS filtrado y sin interrupciones a la red cuando el servidor DNS principal esté temporalmente inaccesible. El dispositivo puede alimentarse desde el puerto USB de un enrutador gracias a su bajo consumo de energía y se conecta a la red mediante un adaptador Wi-Fi integrado.
