Los servidores DNS son un recurso muy valioso. En gran medida son los responsables de que podamos movernos por Internet con comodidad y sin vernos obligados a memorizar las direcciones IP de los servidores a los que queremos conectarnos, un esfuerzo que a la mayoría de nosotros nos resultaría inabarcable. Su función es, sin reparar en los detalles complicados (os explicamos su funcionamiento a fondo en el artículo enlazado aquí mismo), traducir los nombres de dominio que escribimos en la barra de direcciones de nuestro navegador en las direcciones IP a las que realmente debemos acceder.
Este mecanismo funciona. Y generalmente lo hace bien, ofreciéndonos una experiencia razonablemente satisfactoria que no nos obliga a recordar expresiones complicadas. No obstante, hay un tipo especial de servidores DNS en los que por su jerarquía merece la pena que nos fijemos: los servidores raíz. Son importantes porque representan el primer eslabón de la traducción de los nombres de dominio en direcciones IP que es necesario llevar a cabo para hacer posible la comunicación entre los nodos o servidores de Internet. Son pocos, y potentes, pero no soportan una carga de consultas ilimitada. Y actualmente están recibiendo casi 60.000 millones de consultas falsas al día, una carga brutal de la que el navegador Chromium es en gran medida responsable.
Una característica bienintencionada con consecuencias críticas
Antes de seguir adelante nos viene bien saber por qué Chromium es tan relevante. Lo interesante es que es un navegador web de código abierto desarrollado por Google sobre el que están construidos otros navegadores, algunos de ellos muy populares, que lo amplían implementando algunas prestaciones adicionales. Google Chrome y Microsoft Edge son probablemente los más conocidos, pero hay más navegadores derivados de Chromium. Una característica de este último que persigue mejorar la experiencia que tenemos los usuarios es la posibilidad de utilizar la barra de direcciones para llevar a cabo búsquedas en Internet.
Gracias a esta característica los usuarios podemos introducir la dirección de la página que queremos visitar y nuestras cadenas de búsqueda en el mismo lugar, la barra de direcciones, pero esta función obliga al navegador a discernir entre estas dos opciones para llevar a cabo la operación correcta. Cuando tecleamos un nombre de dominio debe llevar a cabo las consultas necesarias a los servidores DNS para resolverlo y obtener la dirección IP. Y cuando buscamos algo en Internet por defecto lanza la búsqueda hacia el buscador de Google.
Chromium es un navegador web de código abierto desarrollado por Google sobre el que están construidos otros navegadores, algunos de ellos muy populares, como Google Chrome o Microsoft Edge
Con frecuencia para el navegador es sencillo identificar qué es lo que el usuario quiere hacer porque la presencia de espacios en blanco en la expresión de la barra de direcciones denota que lo que hemos introducido es una cadena de búsqueda (si no hay espacios el proceso puede complicarse). Pero hay otro reto con el que el navegador también tiene que lidiar y que interviene en este proceso: el secuestro de los DNS.
Cuando el navegador concluye que la cadena de caracteres que hemos introducido en la barra de direcciones es un nombre de dominio, e intenta resolverlo recurriendo a los servidores DNS, pueden suceder dos cosas: que ese nombre de dominio exista y esté registrado, o que no exista. En el primer caso si todo va bien deberíamos obtener la dirección IP que buscamos, y en el segundo deberíamos obtener como respuesta un mensaje NXDomain (Non-eXistent Internet Domain Names Definition) con un aspecto similar a este: 'Host PruebaXataka.com not found: 3(NXDOMAIN)'

Como acabamos de ver, el mensaje NXDomain no es otra cosa que un código de error que nos indica que el nombre de dominio al que queremos acceder no ha podido ser resuelto por los servidores DNS. Hasta aquí las reglas que describen cómo funciona la traducción de los nombres de dominio son claras, pero ahora entran en juego los proveedores de acceso a Internet (ISP). Y es que algunos de ellos han decidido sacar partido a esta situación redireccionando o «secuestrando» el mensaje de error NXDomain y mostrándonos en su lugar una página que suele estar repleta de publicidad. Esta práctica a los usuarios nos hace perder tiempo, y, además, puede recabar algunos de nuestros datos personales, pero a los ISP que la practican les interesa porque les hace ganar más dinero y les permite realizar estadísticas.
Llegamos, por fin, al meollo del asunto. La comunidad de desarrollo de Chromium se ha esforzado para proteger al usuario y mejorar su experiencia, de manera que ha ideado una estrategia muy ingeniosa para impedir que cada vez que introducimos en la barra de direcciones una cadena de búsqueda, y no un nombre de dominio, seamos asaltados por la redirección o el secuestro del mensaje de error NXDomain. Esta estrategia consiste en implementar un test que se ejecuta al iniciar el navegador o acceder a una red, y que lanza tres consultas hacia los servidores DNS.
Estas tres peticiones se efectúan generando otras tantas cadenas aleatorias que contienen entre siete y quince caracteres. Si al menos dos de las peticiones devuelven la misma dirección IP el navegador asume que el mensaje de error NXDomain ha sido secuestrado, y evita que podamos ser redirigidos hacia páginas con fines maliciosos considerando que las cadenas de caracteres que introducimos en la barra de direcciones son cadenas de búsqueda.
El problema es que cuando no se ha producido ningún tipo de secuestro DNS el test ejecutado automáticamente por Chromium propaga las tres peticiones sucesivamente hacia arriba hasta llegar a los servidores DNS raíz de los que hemos hablado en los primeros párrafos de este artículo. El resultado podéis verlo en la gráfica que tenéis un poco más arriba (ha sido elaborada por el ingeniero de Verisign Matthew Thomas): los servidores DNS raíz mundiales están soportando actualmente una sobrecarga de casi 60.000 millones de consultas falsas cada día.
El impacto que está teniendo Chromium en los servidores DNS raíz mundiales es enorme por una razón contundente: entre él y los navegadores que lo utilizan como base suman una cuota de mercado de nada menos que el 70% según W3Counter. Esto explica por qué los servidores DNS raíz están desbordados. Pero lo importante es que tiene solución. Los desarrolladores de Chromium están subsanándolo, por lo que es probable que en una de las próximas iteraciones de este navegador este problema ya esté resuelto. Un último apunte: esta característica fue introducida en Chromium en 2010, lo que refleja que hemos tardado casi diez años en darnos cuenta de que la sobrecarga de los servidores DNS raíz se debe, en realidad, al test ejecutado por este navegador.
Imagen de portada | Oladimeji Ajegbile
Más información | Matthew Thomas
Ver 28 comentarios
28 comentarios
virusaco
Enhorabuena por el artículo. Me ha sorprendido bastante. Dentro de él me esperaba la típica explicación del funcionamiento de un DNS, pero has profundizado mucho más de lo que esperaba en un terreno que desconocía.
He aprendido bastante. Más interesante si cabe lo aprendido que el problema de Chromium.
Salu3
donquinlan
No conocía esa característica de Chromium ni tampoco que los ISP redireccionaban para sacar los cuartos. Muchas gracias por el artículo!
Serxu
Me sumo a la felicitación. Buen artículo. No sabia que esto estuviese pasando.
Usuario desactivado
Muy interesante, perocreo que la solución más facíl (aparte de un buen paquete a los ISP) es separar de nuevo barra de busqueda y de direcciones. Asi no hay posibilidad de que si hacemos una busqueda ocurra esto ya que ira directamente al buscador y solo quedaran los fallos por typos al escribir una url a pelo
tecnoman
No tenía ni idea de esto. Muy buen artículo.
otario
Aunque sea redundante ,buen articulo
manolomalocalvo1
A veces Xataka me sorprende con un buen artículo como este
black_ice
¡Gran artículo!
Maisonier
A mi me gustaría que haya más herramientas para el público general (que no necesite ni configuración como unbound o bind) para servidores dns locales, así se evitarían tantas consultas a los dns y sería un poco más rápido en algunos casos. ¿cuál es la necesidad de estar consultando continuamente en servidores dns online? Se podría actualizar cada determinado tiempo y hasta analizar con el antivirus para bloquear sitios web perjudiciales.
petote
.
Usuario desactivado
Me hizo usar el cerebro este articulo, ya me olvidaba lo que era eso, felicidades jaja... excelente
LoLo
Lo que no entiendo es por qué la petición llega directamente a los servidores raíz y no a los que hay entre medias, con sus peticiones ya cacheadas.
paco.goro
bueno
rotel
¿Quedaria solucionado con la aplicacion de SSL para DNS?
¿Por que no avanza el DNS sobre TLS o HTTPS+DNS?