Por qué las comprobaciones de DNS fallan desde Rusia, China y Taiwán (y cómo lo arreglamos)

A veces una comprobación de DNS no falla por nada malo en el propio DNS. Falla porque la ruta de red hacia el resolutor está bloqueada antes de que la consulta llegue siquiera a salir — y por muchos reintentos o cambios de resolutor que hagas, eso no cambia.

El problema que encontramos

Probando directamente desde el host de producción, no solo en teoría, se vio que su red bloquea por completo el puerto 53 (tanto UDP como TCP), DoH y DoT hacia resolutores en Rusia, China y Taiwán.

La magnitud del problema

Se vieron afectados 40 resolutores — Yandex, 114DNS, AliDNS, Baidu, HiNet, Quad101, Rostelecom, MSK-IX y más, todos agotaban el tiempo de espera. Solo DNSPod y KT respondían directamente.

Por qué una lista de resolutores distinta no podía arreglar esto

No es una cuestión de qué resolutores son fiables en general — es la propia ruta de red del host hacia países concretos, bloqueada a un nivel que ninguna lista blanca de resolutores puede alcanzar. Cambiar qué resolutores se consultan no cambia nada cuando la conexión misma nunca llega a salir.

La solución real

Un Cloudflare Worker (app/probe-worker) repite la consulta DNS por TCP/53 desde la propia red de Cloudflare, que no está sujeta al mismo bloqueo, y devuelve la respuesta en bruto a nuestro backend.

Qué resolutores pasan por el relé

Siete resolutores concretos se enrutan así — Yandex, 114DNS (dos direcciones), AliDNS (dos direcciones) y HiNet — a través de queryViaProbe en probe.go, y solo cuando las variables de entorno PROBE_URL y PROBE_TOKEN están realmente configuradas. Sin ellas, nada cambia; cualquier otro resolutor se consulta exactamente igual que antes.

Por qué esto no es un proxy abierto

El Worker exige un token bearer y solo acepta consultas para esa lista fija de siete resolutores — no puede usarse para retransmitir tráfico DNS arbitrario a ningún otro sitio.

Los límites del plan gratuito que dan forma al diseño

El plan gratuito de Workers de Cloudflare permite 100.000 solicitudes al día, 10 ms de tiempo de CPU, 50 subsolicitudes y 6 conexiones simultáneas por invocación — lo que equivale a unas 3.500 comprobaciones al día a 28 llamadas al Worker cada una.

Prueba una comprobación de propagación

Pruébalo en tu dominio

Ve la teoría en la práctica: ejecuta Comprobador de propagación DNS para tu propio dominio.