Tutorial
Bloquear Anuncios en MikroTik con AdList
Bloquea anuncios en la capa DNS de routers MikroTik con la función nativa AdList de RouterOS v7.15+ — sin Pi-hole ni hardware extra.
Resumen MikroTik AdList (RouterOS v7.15+) bloquea anuncios en la capa DNS para cada dispositivo de la LAN, sin Pi-hole ni hardware adicional. Esta guía cubre los requisitos previos, la configuración de listas públicas y personalizadas, las pruebas, el whitelisting y las limitaciones que cabe esperar (los anuncios dentro de apps y en vídeos de YouTube quedan fuera del alcance del filtrado por DNS).
¿Por qué usar AdList en vez de Pi-hole?
AdList es el bloqueador de anuncios basado en DNS integrado en MikroTik. A diferencia de un contenedor Pi-hole, AdList se ejecuta de forma nativa en RouterOS y no necesita un dispositivo aparte, un runtime de contenedores ni reconfigurar el DNS. Una vez activado, filtra las consultas a servidores publicitarios conocidos (registros A y AAAA) devolviendo 0.0.0.0 en lugar de la IP real. Cada móvil, TV, consola y dispositivo IoT de la LAN hereda el bloqueo mientras use el MikroTik como DNS.
Comparado con desplegar Pi-hole, AdList gana en tres frentes operativos: la configuración es un único panel dentro de IP → DNS en lugar de aprovisionar un host aparte; las actualizaciones llegan junto con las de RouterOS y no con un ciclo apt paralelo; y hay un punto único de fallo menos en la red. La contrapartida es la RAM — las listas grandes consumen caché, así que puede que tengas que ampliarla.
Prepara el router
Hay que cumplir dos requisitos previos antes de que AdList sea útil:
Actualiza a RouterOS v7.15 o superior. AdList llegó en v7.15. Ve a System → Packages → Check for updates e instala la versión estable más reciente. Las versiones anteriores simplemente no exponen la ruta /ip dns adlist.
Aumenta el tamaño de la caché DNS. Las adlists viven dentro de la caché DNS; el tamaño por defecto es demasiado pequeño para cualquier lista significativa y produce el error adlist read: max cache size reached. En IP → DNS, sube Cache size a un valor suficiente para tus listas — para un router con 128 MB de RAM y una o dos listas, 30–40 MB es un objetivo razonable.
/ip/dns set cache-size=40000
Asegúrate de que Allow Remote Requests esté activado para que los dispositivos de la LAN puedan consultar el DNS del router.
Añade una adlist pública
Listas públicas como el hosts file de StevenBlack te dan cobertura amplia de anuncios y rastreadores desde el primer día. En IP → DNS → Adlist, pulsa +, pega la URL de la lista y desactiva SSL Verify salvo que ya hayas importado la autoridad certificadora. La lista aparecerá con un conteo de coincidencias y de nombres una vez procesada.
Equivalente en CLI:
/ip/dns/adlist add \ url=https://raw.githubusercontent.com/StevenBlack/hosts/master/hosts \ ssl-verify=noPara comprobar cuántos dominios se han cargado y cuántas consultas se han bloqueado:
/ip/dns/adlist/printmatch-count es el número de consultas bloqueadas; name-count es el número de entradas que contiene la lista.
Whitelisting y forwarders
A veces un dominio que sí quieres está en una blocklist pública. Añade una entrada estática de forward para que AdList lo ignore:
/ip/dns/static add name=example.com type=FWDLos forwarders también permiten definir resolvers upstream (Quad9, Cloudflare) para dominios concretos. Define primero el pool de forwarder y luego apunta las entradas estáticas a él:
/ip/dns/forwarders add dns-servers=1.1.1.1,8.8.8.8 name=my-fwd/ip/dns/static add name=example.com type=FWD forward-to=my-fwdCrea e importa una blocklist personalizada
Para más control, monta tu propia lista. Cada línea usa 0.0.0.0 dominio:
0.0.0.0 adverts.com0.0.0.0 click.adclick.com0.0.0.0 malware-site.com0.0.0.0 fraud.scam.comCrea o sube el archivo en RouterOS:
/file/add name=adbl.txt/file/edit adbl.txt contentsIntroduce la lista de dominios y pulsa Ctrl-O para guardar, luego adjúntalo a AdList:
/ip/dns/adlist add file=adbl.txtConfirma que el archivo se ha procesado revisando name-count con /ip/dns/adlist/print.
Prueba y diagnostica
Vacía la caché DNS en un cliente y consulta un dominio publicitario conocido:
ipconfig /flushdnsnslookup someadserver.comLa respuesta debería volver como 0.0.0.0 en lugar de la IP real.
Observa match-count con el tiempo para ver si la lista está haciendo un trabajo útil. Si aparece adlist read: max cache size reached, sube la caché o quita alguna lista. Para complementar este endurecimiento del DNS, consulta nuestras guías de cómo configurar DNS over HTTPS y de cómo bloquear tráfico hacia un país.
Mantenimiento y limitaciones
- Actualizaciones automáticas. RouterOS refresca las adlists cada cuatro horas. La recarga manual con
/ip/dns/adlist/reloadestá disponible, pero rara vez es necesaria. - Presupuesto de memoria. Las listas grandes consumen RAM. Ajusta el número y el tamaño de listas a la memoria libre del equipo; un hAP ac² tiene un margen muy distinto al de un RB5009.
- Bloqueo solo por DNS. AdList no puede bloquear anuncios servidos desde el mismo host que el contenido (los vídeos de YouTube, especialmente). Acompáñalo de una extensión de navegador si te molestan.
- Bypass DoH/DoT. Los clientes con sus propios resolvers DoH o DoT evitan por completo el DNS del router. Bloquea el DNS saliente hacia cualquier destino distinto del router con una regla de firewall para imponer la política.
Escala el bloqueo de anuncios en todos los sitios
Mantener AdList en un solo router es fácil. Mantenerlo en una flota — con listas blancas personalizadas por cliente, presupuestos de tamaño según el modelo de dispositivo y la inevitable deriva entre sitios — es más difícil de lo que parece.
MKController aplica la misma configuración de AdList, las mismas listas personalizadas y las mismas reglas de forwarder a cada MikroTik de tu inventario en una sola operación. Cuando el match-count cae en picado o aparecen errores de max cache size en el log, el panel muestra los equipos afectados para que los arregles antes de que el cliente se dé cuenta.