Implementing a Zero Trust Network with Raspberry Pi, MikroTik, and Tailscale: A Real Use Case

Real-World Setup with Raspberry Pi, MikroTik, Tailscale and Mullvad

Author: Ruben Galindo
Date: July 2025

Secure access architecture designed with real tools and validated in production environments.

🔎 Introduction

The Zero Trust model is no longer a futuristic aspiration — it has become a necessity. However, for many solo professionals or small businesses, the question remains:

How far am I from a real Zero Trust model?

This article shares a functional architecture I implemented using affordable resources like Raspberry Pi, MikroTik, Tailscale, and Mullvad. The system was tested in real-world conditions and follows key Zero Trust principles: identity control, segmentation, continuous monitoring, and least privilege access.

📊 How This Setup Aligns with Zero Trust Principles

Element Zero Trust (Tailscale 2025) My Real Implementation
Access ModelIdentity-based (user/device)Hybrid: IP + DNS validation (ControlD), Tailscale on Android
Traditional VPNsDeprecatedEliminated. Replaced by Tailscale and Mullvad VPN
PerimeterIdentity-centricIP segmentation + MikroTik firewall + allowlists
Granular AccessJust-In-Time, role/session-basedAuto IP blocking/unblocking via MikroTik
AutomationFull, with IAM or scriptingHigh: Bash scripts + MikroTik + Healthchecks.io
VisibilityCentralized SIEM & loggingLocal logs + email alerts + service health tracking
User ExperienceSeamless accessAuto VPN via MacroDroid + Tasker + WiFi recovery
Mobile SecurityContinuous, adaptiveAndroid with Tailscale and Mullvad as fallback VPNs
Onboarding/OffboardingAutomated by roleManual control in personal infrastructure
ScalabilityCloud/Edge/IoT readyLocal control focus, low latency

🚀 What I’ve Already Implemented

  • Smart IP blocking using MikroTik firewall and allowed-doh lists
  • Monitoring scripts and reaction to service failures
  • Mesh VPN on Android using Tailscale + Mullvad as backup
  • Automatic WiFi reconnection after WAN recovery
  • Healthchecks.io for service uptime and traceability

⚡ Areas for Improvement

  • Adopt true identity-based access control
  • Introduce proxies or session-based control
  • Implement behavior monitoring
  • Scale with IAM and Just-In-Time modules if needed

📘 Conclusion

This case shows that Zero Trust is not just for big enterprises. Its principles can be applied with smart tools, automation, and the right mindset — even on a small budget.

This experience has proven that with good practices and active monitoring, you can build a network that defends itself.

“It's not about trusting less — it's about designing so you don't need blind trust.”

Want to learn how to adapt this model to your own network? Contact me and let’s explore it together.

Tags: Zero Trust, Tailscale, Mullvad, Raspberry Pi, MikroTik, Automation, VPN Mesh, ControlD, Tasker, Network Security

Arquitectura de Red Segura basada en Zero Trust – Caso real con Raspberry Pi, MikroTik, Tailscale y Mullvad

Caso real con Raspberry Pi, MikroTik, Tailscale y Mullvad

Autor: Ruben Galindo
Fecha: Julio 2025

Arquitectura de acceso seguro diseñada con herramientas reales y validada en entornos de producción.

🔎 Introducción

El modelo Zero Trust ha dejado de ser una aspiración futurista y se ha convertido en una necesidad. Sin embargo, para muchos profesionales independientes o pequeñas empresas, la pregunta sigue siendo:

¿Qué tan lejos estoy del verdadero modelo Zero Trust?

En este artículo comparto una arquitectura funcional que implementé con recursos accesibles, usando Raspberry Pi, MikroTik, Tailscale y Mullvad. Todo el sistema fue probado en condiciones reales y cumple principios clave del modelo Zero Trust: control de identidad, segmentación, monitoreo continuo y mínimos privilegios.

📊 Comparativa entre Zero Trust y mi arquitectura real

Elemento Zero Trust Moderno Mi implementación real
Modelo de accesoBasado en identidadValidación híbrida: IP + DNS + usuario
VPNs tradicionalesObsoletasReemplazadas por Tailscale + Mullvad
PerímetroIdentidad y contextoIP + firewall MikroTik + listas
Acceso granularJust-In-TimeActivación dinámica en MikroTik
AutomatizaciónOnboarding/OffboardingScripts con Healthchecks.io
VisibilidadCentralizada (logs, SIEM)Logs + alertas por correo
UXAcceso sin fricciónMacroDroid + Tasker + Tailscale
MovilidadAcceso seguro desde cualquier lugarVPN automática al salir de LAN
EscalabilidadNube, Edge, IoTControl local con bajo costo

🧱 Fundamentos de la arquitectura

  • Raspberry Pi como nodo de monitoreo y control
  • Firewall MikroTik con listas dinámicas de acceso
  • VPN mesh con Tailscale y respaldo con Mullvad
  • Control de DNS con ControlD
  • Scripts en Bash con Healthchecks.io

⚠️ Retos reales enfrentados

  • Bloqueo temporal de resolvers DoH por exceso de pruebas
  • Falsos positivos en reglas anti-DDoS del MikroTik
  • Limitaciones de conectividad en Android (sin root)

✅ Soluciones aplicadas

  • Quarantine defensiva con script `controld_tls_probe.sh`
  • Whitelist dinámica con `allowed-doh` en MikroTik
  • Macro para activar datos móviles si se cae la WAN
  • Reconexión automática a WiFi tras detectar disponibilidad

📘 Conclusión

Este caso demuestra que Zero Trust no es exclusivo de las grandes empresas. Es posible aplicar sus principios con herramientas accesibles y creatividad técnica.

Mi red ahora se defiende sola. Y eso es exactamente lo que hace un verdadero ingeniero en infraestructura y automatizaciones.

“No se trata de confiar menos, sino de diseñar para no tener que confiar ciegamente.”

¿Te gustaría que te ayude a implementar algo así en tu red?
Contáctame y lo revisamos.

Etiquetas: Zero Trust, Seguridad, Tailscale, Mullvad, Raspberry Pi, MikroTik, Automatización, VPN Mesh, ControlD, Tasker, Redes

📄 Why You Shouldn't Use ZeroTier and Tailscale Together on Windows PCs (10 & 11)

🇪🇸 This article is also available in Spanish → Leer en español

 

                         🧩 1. Introduction

In this post, I share a real case I experienced by installing both ZeroTier and Tailscale on the same PC running Windows 10 & 11. While both services work very well independently, having them coexist on the same machine caused routing conflicts, connectivity loss, and unpredictable behavior across virtual networks.

The issue didn’t start immediately after installation, but rather appeared suddenly—possibly triggered by client updates or automatic system changes—making it harder to diagnose.

The conflict directly affected my ability to access a Windows Server 2016 machine and also impacted remote users outside my LAN who lost access while the issue was active.

It’s also worth noting that I use ControlD as the DNS service inside Tailscale, which adds encrypted DoH resolution and filtering. This layer too was likely affected by the overlapping virtual networks.

This kind of situation isn't obvious at first but can cause serious disruption if you're relying on these VPNs for remote support, network management, or testing hybrid setups.


🔍 2. Case Background

The problem emerged during my routine support tasks when I noticed that one of my Windows 10 PCs could no longer connect via RDP or respond to ICMP pings to a server running Windows Server 2016 via ZeroTier.

Initially, I didn’t link the issue to VPNs, as the PC had been running both ZeroTier and Tailscale successfully for days or even weeks. But after testing other peers on my ZeroTier network, I noticed inconsistent behavior: some peers were visible, others weren’t, and some routes were being ignored without a clear cause.

The situation worsened when remote users—who connected exclusively via ZeroTier and didn’t use Tailscale—also began experiencing RDP drops and ping failures, as if the server was isolated. This confirmed that the routing conflict wasn’t limited to my local machine, but was degrading ZeroTier’s performance globally.

Eventually, I discovered that Windows' routing table had been altered, with conflicting /16 routes injected by both ZeroTier and Tailscale. Depending on the order in which services or interfaces were activated, Windows would route traffic inconsistently—sometimes cutting off access completely.

The problem was intermittent and misleading, only becoming clear after manually inspecting the routing table using route print and other diagnostic tools.


🔧 3. Technical Diagnosis Step-by-Step

After pinpointing the root cause, I analyzed the Windows routing table using route print. I found that both VPNs were injecting static routes into the system, including:

  • 100.64.0.0/10 (Tailscale default range)

  • 172.22.0.0/16 (ZeroTier virtual network)

While these routes don’t overlap directly, Windows was arbitrarily prioritizing one over the other—often based on adapter order or recent interface activity.

Even after rebooting the system or the network interfaces, the conflict would return if the VPNs reinitialized in a specific order.

I also discovered that Tailscale’s adapter had a lower metric, so Windows often favored it, sometimes causing ZeroTier routes to become unreachable.

Additionally, I found that my Raspberry Pi, although not directly involved in support, had both ZeroTier and Tailscale installed and connected simultaneously. This contributed to instability by maintaining overlapping VPN participation on a critical node in the network, affecting even the visibility of my Windows Server 2016 host.

Most critically, branch office users relying solely on ZeroTier started experiencing unexpected RDP session disconnections, despite not using Tailscale at all. Their connections were affected indirectly due to route manipulation caused by devices where both VPNs were active.

This created the false impression that the server was down, when in reality, Windows was silently misrouting or dropping traffic.


💡 4. Practical Recommendations to Avoid Conflicts

⚠️ If you're considering running both VPNs simultaneously, here’s what you should watch out for:

🔹 Use smaller subnets like /24 instead of /16 to reduce the chance of overlap.
📴 Manually disable unused interfaces (netsh, Disable-NetAdapter, etc.) to prevent confusion.
📊 Inspect the routing table regularly using route print, especially after restarts or VPN updates.
🧪 Use isolated environments for cross-VPN testing:

  • 🖥️ Virtual Machines (VMs)

  • 🐳 Containers managed with Docker Compose

  • ⚙️ Visual management via Portainer, which simplifies handling container networks

Even devices not actively used for remote support, like my Raspberry Pi running DietPi, can create conflict if connected to both VPNs simultaneously.


🔚 5. Final Thoughts

This experience clearly showed me that—even when two tools are great individually—they don’t always coexist well in the same environment. In my case, ZeroTier and Tailscale ended up competing at the routing level, leading to downtime, false error assumptions, and serious remote access issues.

What made it trickier is that the problem wasn’t immediate or constant—it took time and manual digging to uncover. That’s why it’s so important to monitor virtual network behavior and inspect routing tables frequently in production environments.

The reality is that Windows 10 & 11 don’t manage routing tables reliably, certainly not like Linux or BSD. Route priorities (metrics) are often ignored or overwritten dynamically, which only makes things worse when multiple VPNs are in play.

Today, I make sure to keep each VPN isolated in its own environment. When I need to test them together, I use Docker Compose containers or virtual machines managed with Portainer, so my main systems stay clean.

💬 Have you run into similar issues? Are you using both VPNs without problems? I’d love to hear about your experience—or help you troubleshoot if you're stuck.

📄 Por qué no deberías usar ZeroTier y Tailscale juntos en PC con Windows (10 & 11)

🇬🇧 This article is also available in English → Read in English

 

                        🧩 1. Introducción

En este artículo comparto un caso real que viví personalmente al instalar tanto ZeroTier como Tailscale en una misma PC con Windows 10 & 11. Aunque ambos servicios funcionan muy bien por separado, su coexistencia en un mismo equipo generó conflictos de rutas, pérdida de conectividad y comportamiento inesperado dentro de redes virtuales.

El problema no ocurrió inmediatamente después de instalar ambas redes, sino que comenzó sin una causa clara aparente, posiblemente relacionada con actualizaciones automáticas o cambios de versión en alguno de los clientes. Esto lo hizo más difícil de detectar en un inicio.

El conflicto afectó directamente mi capacidad para conectarme a un servidor con Windows Server 2016, y también impactó a usuarios remotos fuera de mi LAN, quienes perdieron acceso al servidor mientras duró el incidente.

Cabe destacar que en mi caso también utilizo ControlD como servicio DNS dentro de Tailscale, lo que agrega una capa de filtrado y resolución cifrada a través de DoH, y que también pudo verse afectada por la interferencia entre túneles.

Este tipo de situación no es evidente de inmediato, pero puede generar serias interrupciones si estás usando estas VPNs para soporte remoto, administración de redes o pruebas técnicas entre diferentes entornos.


🔍 2. Contexto del caso

El problema surgió en medio de mis tareas regulares de soporte técnico cuando noté que uno de mis equipos con Windows 10 dejó de tener conectividad RDP y respuesta ICMP (ping) hacia un servidor con Windows Server 2016 conectado a través de ZeroTier.

Al principio no relacioné el fallo con las VPNs, ya que el equipo tenía tanto ZeroTier como Tailscale instalados y funcionando correctamente desde hacía días o incluso semanas. Sin embargo, al revisar la conectividad con otros dispositivos en mi red virtual ZeroTier, también noté comportamientos erráticos: algunos peers eran visibles, otros no, y ciertas rutas parecían estar ignorándose sin motivo aparente.

Lo más grave fue que los usuarios remotos que se conectaban al servidor únicamente a través de ZeroTier (sin usar Tailscale) también comenzaron a experimentar problemas de conexión RDP e incluso pérdida de respuesta a pings, como si el servidor estuviera aislado. Esto confirmó que el conflicto de rutas no solo afectaba al cliente con ambas VPNs, sino que interfería con la operatividad global de ZeroTier dentro del ecosistema.

Fue entonces cuando detecté que la tabla de rutas de Windows había sido alterada, con prioridades conflictivas entre las rutas /16 asociadas a las redes ZeroTier y Tailscale. Estas rutas estaban compitiendo en la tabla de enrutamiento del sistema operativo, lo que causaba que algunas conexiones se desviaran o se perdieran completamente dependiendo del orden en que se activaban los servicios.

El diagnóstico tomó tiempo, ya que el problema no era constante, sino intermitente. Fue solo tras analizar manualmente las rutas activas con route print y herramientas de diagnóstico, que confirmé que ambas VPNs estaban inyectando rutas que se sobreponían.


🔧 3. Diagnóstico técnico paso a paso

Una vez identificado que el conflicto se originaba en la coexistencia de ZeroTier y Tailscale, comencé a analizar la tabla de rutas del sistema operativo Windows utilizando el comando route print y otras herramientas de red.

Descubrí que ambas VPNs estaban añadiendo automáticamente rutas estáticas al sistema, en particular rangos de red con máscara /16, como:

  • 100.64.0.0/10 (rango general de Tailscale)

  • 172.22.0.0/16 (red virtual de ZeroTier)

En teoría, estas rutas no deberían superponerse si no están en conflicto directo. Sin embargo, en la práctica, Windows daba prioridad aleatoria o según el orden de activación de interfaces, provocando que en ocasiones las rutas de Tailscale “taparan” o invalidaran el acceso a dispositivos de la red ZeroTier.

Incluso después de reiniciar los adaptadores virtuales o reiniciar el equipo, el conflicto podía reaparecer si ambas VPNs arrancaban en cierto orden.

Adicionalmente, noté que la interfaz virtual de Tailscale tenía menor métrica, por lo que Windows priorizaba sus rutas, haciendo que las conexiones hacia la red ZeroTier fueran enroutadas erróneamente o directamente descartadas.

También detecté que la Raspberry Pi, aunque no era parte activa del esquema de soporte remoto, tenía instalados tanto Tailscale como ZeroTier para otras funciones. El hecho de estar presente en ambas redes virtuales, y con ambas activas, empeoraba la interferencia en la red ZeroTier, afectando incluso la visibilidad del servidor Windows Server 2016 y de los equipos remotos.

Como consecuencia directa, los usuarios remotos ubicados en sucursales (branch offices), que se conectaban exclusivamente al servidor por medio de ZeroTier, comenzaron a experimentar desconexiones inesperadas de sesiones de escritorio remoto (RDP), sin razón aparente. Aunque no formaban parte de la red Tailscale, su comunicación se veía afectada por las rutas inestables que se generaban desde los dispositivos donde ambas VPNs coexistían.

Verifiqué que este comportamiento afectaba tanto a conexiones salientes desde mi PC como al propio servidor, generando una falsa sensación de que el servidor estaba caído, cuando en realidad la tabla de rutas lo hacía inaccesible de forma parcial o completa.


💡 4. Recomendaciones prácticas para evitar conflictos

⚠️ Si estás considerando usar ambas VPNs al mismo tiempo, esto es lo que deberías tener en cuenta:

🔹 Asignar rangos de red más pequeños (como /24) en lugar de /16, para evitar superposición innecesaria.
📴 Desactivar manualmente interfaces de red que no estén activas (netsh, Disable-NetAdapter, etc.).
📊 Revisar frecuentemente las rutas con route print, especialmente después de reinicios o cambios de red.
🧪 Usar entornos aislados para pruebas cruzadas entre VPNs, como:

  • 🖥️ Máquinas virtuales (VMs)

  • 🐳 Contenedores con Docker Compose

  • ⚙️ Gestión visual desde Portainer, sin afectar el sistema base

También es clave considerar que equipos que no forman parte directa del soporte remoto, como mi Raspberry Pi con DietPi, pueden interferir si están en ambas redes activas simultáneamente, incluso si solo una se está utilizando activamente.


🔚 5. Cierre personal

Esta experiencia me dejó una lección muy clara: aunque dos herramientas sean excelentes por separado, no siempre pueden convivir en el mismo entorno sin generar efectos colaterales. En este caso, ZeroTier y Tailscale terminaron compitiendo a nivel de rutas, causando pérdidas de conectividad, falsos positivos de caídas y desconexiones que afectaron tanto mi operación como la de usuarios remotos.

Lo más delicado fue que el conflicto no era inmediato ni evidente, lo que demuestra lo importante que es monitorear de forma activa el comportamiento de las redes virtuales y revisar con frecuencia la tabla de rutas en equipos críticos.

Parte del problema radica en que Windows 10 & 11 no manejan correctamente las tablas de enrutamiento, al menos no con la misma robustez que otros sistemas operativos como Linux. Las prioridades asignadas mediante métricas no siempre se respetan, y el sistema tiende a reorganizar rutas de forma dinámica, lo que añade un peso mayor a este tipo de conflictos cuando hay múltiples VPNs activas.

Hoy en día mantengo cada herramienta en contextos separados y evito combinarlas en entornos productivos. Cuando necesito hacer pruebas cruzadas, las realizo en entornos aislados, como contenedores gestionados desde Portainer o máquinas virtuales.

💬 ¿Has vivido algo parecido? ¿Estás usando ambas VPNs sin problemas? Me encantaría conocer tu experiencia y ayudarte si estás enfrentando una situación similar.


📄 How I protect my home network using ControlD, ctrld, and Raspberry Pi

🇪🇸 This article is also available in Spanish → Leer en español

                        🧩 1. Introduction

In this post, I explain how I implemented a secure and private DNS solution to protect my home network using a Raspberry Pi, the ctrld client, and the ControlD service. This setup not only gives me speed and privacy, but also full control over DNS traffic from any device connected to my LAN.

What I value most is that all DNS queries are sent through the traditional port 53, so I don’t have to configure each device individually. The Raspberry Pi receives those queries and transparently transforms them into DNS over HTTPS (DoH) requests using my custom profile in ControlD.


🔹 2. Background

This solution emerged from my need for a fast, secure, and reliable DNS system for my local network — one that didn’t depend on public DNS resolvers or require manual configuration on every device.

My network includes many devices that don’t support DoH natively, such as IoT devices, Echo speakers, Chromecast, Fire TV Stick 4K Max, and Samsung Smart TVs. That’s why I needed a centralized solution that would accept traditional DNS requests over port 53 and forward them securely using DoH.

The implementation is based on the official documentation from ControlD and the ctrld client, along with technical guidance I developed through iterative sessions with ChatGPT to integrate all the components: Raspberry Pi, custom filtering profile, HTTPS-based queries, and monitoring automation.


🔧 3. My technical setup (step-by-step)

The setup uses a Raspberry Pi running DietPi, a lightweight and performance-optimized Linux distribution for ARM devices.

Here’s the process I followed:

  1. I installed ctrld on the Raspberry Pi and configured it to listen on 0.0.0.0:53, accepting DNS queries from all devices on the LAN.

  2. I created a custom filtering profile in ControlD with rules for logging, geoexit, and content filtering.

  3. I configured the ctrld.toml file to define the local IP, DoH endpoints, and client tag for proper identification.

  4. I configured my router’s DHCP server to distribute the Raspberry Pi’s IP (192.168.88.10) as the primary DNS, and a public ControlD IP as fallback.

  5. I confirmed that devices like Fire TV, Echo, and Smart TVs send their DNS queries to the Pi, which then securely forwards them via DoH using the ControlD profile.

  6. I implemented custom monitoring scripts integrated with Healthchecks.io to receive alerts in case ctrld fails or DNS resolution becomes unavailable.

  7. I also integrated msmtp to send email notifications, which allows me to receive alerts automatically without relying on manual log inspection.


💡 4. Practical use and recommendation

This setup is ideal for anyone seeking full control over DNS resolution in their home network, especially with devices that do not support DoH, such as IoT devices or smart displays.

It’s also a powerful alternative to public DNS resolvers like Google (8.8.8.8) or Cloudflare (1.1.1.1), providing encrypted traffic, custom filtering, and centralized monitoring.

Compared to tools like Pi-hole or AdGuard Home, which act primarily as local ad-blocking DNS servers, ControlD offers a robust cloud-integrated platform that delivers encrypted queries, logging, rule-based control, and remote visibility. It’s a more secure, scalable, and flexible solution.

Using DoH (DNS over HTTPS) ensures that DNS traffic is encrypted, which helps protect your network from inspection, tracking, or manipulation by ISPs, bots, malware, or third parties.

You don’t need advanced programming skills to deploy this. If you have a Raspberry Pi, a router, and curiosity, you can build a secure and auditable DNS solution for your home.

Tools like ctrld, msmtp, and Healthchecks.io allow you to create a DNS resolver that not only works, but also watches over itself.


🔚 5. Final thoughts

This configuration has significantly improved the privacy and reliability of my home network, without relying on closed or overly complex solutions.

It gave me enterprise-grade DNS control, adapted to my home environment — with encryption, filtering, visibility, and automation.

This is an evolving project: I’m constantly improving scripts, monitoring tools, and flow controls to keep everything stable and secure.

💬 Have you built something like this? Are you considering it? I'd love to hear your experience or help you get started.

📄 Cómo protejo mi red doméstica con ControlD, ctrld y Raspberry Pi

🇬🇧 This article is also available in English → Read in English


                        🧩 1. Introducción

En este artículo comparto cómo implementé una solución de filtrado y cifrado DNS para proteger mi red doméstica usando una Raspberry Pi, el cliente ctrld y el servicio ControlD. Esta configuración no solo me da privacidad y velocidad, sino también control total sobre lo que se consulta desde cualquier dispositivo conectado a mi red local.

Lo más valioso para mí es que todas las consultas DNS se hacen por el puerto 53 tradicional, por lo que no necesito modificar la configuración de los dispositivos. La Raspberry Pi recibe esas consultas y las transforma automáticamente en consultas DoH (DNS over HTTPS) usando mi perfil personalizado en ControlD.


🔹 2. Contexto

Esta solución surgió a partir de mi necesidad de tener un sistema DNS confiable, rápido y seguro para toda mi red LAN, sin depender de resolvers públicos ni configurar manualmente cada dispositivo.

En mi red conviven dispositivos modernos y otros que no soportan DoH de forma nativa, como dispositivos IoT, altavoces Echo, Chromecast, Fire TV Stick 4K Max y televisores Samsung. Por eso, necesitaba una solución que aceptara consultas DNS tradicionales por puerto 53 y las transformara en DoH de manera centralizada y transparente.

Usé como base la documentación oficial de ControlD y el cliente ctrld, además del acompañamiento técnico que fui desarrollando en mis sesiones con ChatGPT para integrar correctamente todos los componentes: Raspberry Pi, perfil personalizado, filtrado, salida por HTTPS y scripts de monitoreo.


🔧 3. Explicación técnica (paso a paso)

La solución se basa en usar una Raspberry Pi como servidor DNS interno, ejecutando el cliente ctrld, que redirige todas las consultas locales a un endpoint DoH personalizado de ControlD.

El sistema operativo usado en la Raspberry Pi es DietPi, una distribución optimizada, ligera y diseñada para alto rendimiento en dispositivos ARM.

Aquí están los pasos principales que seguí:

  1. Instalé ctrld en la Raspberry Pi, configurándolo para que escuche en 0.0.0.0:53, aceptando consultas DNS de todos los dispositivos de la red LAN.

  2. En la consola de ControlD, generé un perfil personalizado con reglas de filtrado, geoexit y configuración de logs.

  3. Usé el archivo ctrld.toml para definir la IP local de escucha, los servidores DoH de ControlD y un tag identificador del cliente.

  4. En el router configuré el servidor DHCP para distribuir como DNS principal la IP de la Raspberry Pi (192.168.88.10) y como secundario uno de los IPs públicos de ControlD.

  5. Validé que los dispositivos IoT, Fire TV, Echo y Smart TVs envían sus consultas a la Pi, y esta las reenvía por HTTPS usando DoH con todas las reglas del perfil aplicadas.

  6. Implementé scripts personalizados de verificación junto a Healthchecks.io, para recibir alertas proactivas en caso de fallo del cliente ctrld o problemas de resolución DNS.

  7. Además, integré el cliente msmtp para el envío automatizado de correos electrónicos, lo que me permite recibir notificaciones de eventos críticos, sin depender exclusivamente de los logs del sistema.


💡 4. Aplicación práctica / recomendación

Esta solución es ideal para quienes desean tener control total sobre la resolución DNS en su red local, especialmente si cuentan con dispositivos que no permiten configurar DoH directamente, como altavoces inteligentes, Smart TVs o equipos IoT.

También es útil para quienes buscan una alternativa más avanzada que usar simples DNS públicos como Google (8.8.8.8) o Cloudflare (1.1.1.1), y quieren integrar monitoreo, redundancia y perfiles de filtrado personalizables.

A diferencia de herramientas como Pi-hole o AdGuard Home, que solo actúan como bloqueadores de anuncios o resolvers DNS locales, ControlD permite crear un sistema robusto, cifrado y centralizado, con visibilidad completa y reglas específicas aplicables desde la nube. Es una solución más segura, flexible y escalable.

Además, el uso de DoH (DNS over HTTPS) significa que las consultas DNS viajan cifradas por Internet, lo que protege tu red contra inspección o monitoreo externo, incluyendo bots, malware y rastreadores que interceptan peticiones DNS no cifradas.

No necesitas conocimientos avanzados de programación: basta con tener una Raspberry Pi, acceso al router y disposición para probar una arquitectura estable, auditable y mucho más privada que las soluciones predeterminadas.

Con herramientas como ctrld, msmtp y Healthchecks.io, puedes construir un sistema que no solo resuelve consultas DNS, sino que se audita y protege automáticamente.


🔚 5. Cierre personal

Esta configuración me ha permitido mejorar significativamente la privacidad y estabilidad de mi red doméstica, sin depender de soluciones comerciales cerradas ni complicadas.

Es una arquitectura que me ha dado mayor control sobre mi privacidad digital, y que se comporta como una versión simplificada pero funcional de un sistema enterprise, con cifrado, filtrado, visibilidad y monitoreo activos.

El proyecto sigue evolucionando: constantemente ajusto y optimizo scripts, alertas y flujos de tráfico con nuevas herramientas que me permiten mantener todo bajo control de forma automática.

💬 ¿Te interesaría replicarla? ¿Ya usas alguna solución similar? Me encantaría leer tu experiencia o responder tus dudas.

Bienvenidos a Noticias de Interés (Interesting News)

 ¡Hola y bienvenidos!

En este blog compartiré noticias, ideas y experiencias relacionadas con temas que me apasionan: la ciberseguridad, los servicios en la nube (como AWS), el aprendizaje práctico y la tecnología que realmente aporta valor.

Publicaré tanto en español como en inglés cuando sea necesario, siempre buscando que el contenido sea útil, directo y fácil de aplicar.

Este espacio nace desde la curiosidad, el espíritu emprendedor y las ganas de construir una comunidad que valore el conocimiento y la acción.

¡Gracias por visitar y nos seguimos leyendo!