El DNS, ese gran desconocido

Hola de nuevo, después de esta gran pausa veraniega, volvemos a la carga con noticias frescas a comentar en las siguientes semanas.
Gracias a unas “discusiones” en Twitter sobre lo adecuado de usar estos grandes proveedores de DNS público (OpenDNS y Google Public DNS) en lugar de los de tu ISP, creo que se puede explicar un poco mejor lo que venden para que puedas decidir si interesa o no.

Primero de todo, que es el DNS, pues una posible explicación sería:

El servicio DNS es el que nos permite traducir de algo que entendemos y recordamos los humanos, los conceptos, a lo que entienden y recuerdan las máquinas, los códigos. Desde tiempos inmemoriales estamos usando sistemas de traducción que nos permitan llegar desde el concepto hasta el código, lo podemos llamar guía telefónica, agenda, índice o servicio de nombres de dominio,DNS (Artículo Wikipedia con datos técnicos)

Como se puede ver es un servicio crucial para que podamos utilizar los servicios en Internet,escribimos www.dominio.com en el navegador y llegamos a la web de Dominio.com o enviamos un correo electrónico a hola@dominio.com y este llega al buzón adecuado. Una Internet sin DNS seria como intentar llamar a los amigos sin agenda ni guía telefónica.

Dicho de otro modo los proveedores de contenido, empresas, etc, se gastan un dinero en alquilar un nombre y luego introducen en su servidor DNS autoritativo (el que tiene autoridad para el mapeo nombre-IP) sus mapeos, por ejemplo que www.dominio.com es la IP 1.1.1.1
Lo del autoritativo se diferencia de los no-autoritativos/resolvers que son los servidores DNS que no tienen información para el dominio pero contestan de oídas, en el fondo hacen de proxy-cache, si otro usuario ha preguntado por blog.expertosenti.com hace poco pues la petición no tiene que llegar hasta el servidor autoritativo sino que la respuesta la puede entregar directamente el proxy-cache, mejorando el rendimiento del usuario y reduciendo la carga en el autoritativo.

Así que cuando dispones de conexión a Internet, a parte de un ancho de banda X, requieres un o varios servidores DNS para que funcione, así que desde tiempos inmemoriales, los ISP estan “regalando” acceso a sus servidores DNS no autoritativos para que sus usuarios puedan navegar correctamente y no depender de 3º.

Hasta aquí todo normal, yo tengo una conexión de Orange España y uso los DNS de Orange España por defecto, pero si quiero utilizar un DNS externo lo tengo tan fácil como canviar la configuración en mi equipo y ya está.
Y en este punto, a parte de los DNS de los ISP tenemos dos grandes que ofrecen un DNS no-autoritativo público con algunas ventajas respecto a los de los ISP, OpenDNS y Google Public DNS. Las ventajas las tienen descritas en sus respectivas Web pero se basan en funcionalidades de seguridad para parar la navegación a dominios “malos” y tapar caídas de los DNS autoritativos de algunos dominios, pero todo lo bueno tiene algo malo, a saber:

  1. Estos servicios siempre (espero) estarán más lejos que los DNS de tu ISP, así que el incremento de latencia en las peticiones se debe compensar con incrementos en el rendimiento. Por ejemplo en mi caso, tengo la respuesta del DNS de mi ISP para www.google.com llega en 65 ms (dig www.google.com) mientras que si uso los DNS de Google Public DNS, la tengo en 159 ms. (dig www.google.com @8.8.8.8) Por su “culpa” me tengo que esperar 100 ms más para continuar la conexión.
  2. Como quien realiza la conexión contra el servidor autoritativo es el no-autoritativo/resolver, en caso que el primero geolocalice, nos dará la IP más cercana al nodo del DNS no de nuestra ubicación. Así que para los casos de CDNs con nodos en España, la única forma de aprovecharlos seria mediante el uso de DNS de nuestro ISP o alguno del territorio, sino, usaremos seguramente nodos en AMS o LDN. 20 o 50 ms. adicionales (MAD vs. LDN) pueden generar retardos de hasta 100 o 300 ms por petición y si la web tiene 60 activos a descargar sumaríamos unos 3 segundos adicionales a la espera, ya que la mayoría de navegadores usan de 2 a 6 conexiones simultaneas
  3. Los modelos de negocio en la versión “gratis” de los dos se basa en identificar los patrones de navegación (de todo lo que haces por Internet, es DNS recuerda) y aprovecharlo para publicidad u otros menesteres. 
Así que si tienes un nodo cerca (los de OpenDNS los tienes aquí), o te compensa la seguridad, mejoras, capacidad de gestión y no te molesta que alguien sepa todo lo que haces por Internet (por más modo “Navegación Privada” que uses), ni el posible retardo en la navegación en sitios con CDN.
Dicho de otro modo estando en España, no tendría un problema por el rendimiento (los 3 segundos…) pero si estoy en Asia Pacífico o Sur América (cuanto más al sur peor), mejor no usar OpenDNS ya que siempre irás los USA para todo, y el rendimiento global de tu conexión puede caer bastante (si tu proveedor tiene un servicio DNS decente, claro)
Comentarios y aclaraciones, bienvenidos!
Saludos!