La Importancia de los DNS La Importancia de los DNS

Durante años, los DNS han sido los tramoyistas de la web. Sostienen la web sobre sus hombros y hacen su trabajo en forma anónima pero al parecer Google decidió reconocer su importancia y ya puso fichas en ese tablero.

La Importancia de los DNS

por

Durante años, los DNS han sido los tramoyistas de la web. Sostienen la web sobre sus hombros y hacen su trabajo en forma anónima pero al parecer Google decidió reconocer su importancia y ya puso fichas en ese tablero.

Según la tradición judía hay 36 sabios, los Tzadikim Nistarim, sobre cuyos hombros descansa el mundo. No en un sentido físico, claro, pero la existencia de los 36 santos anónimos impide que el creador haga con la tierra lo mismo que hizo con Sodoma y Gomorra.

En sus mitos más antiguos, la cosmogonía china y la india coincidían en que la tierra era un plato sostenido por cuatro elefantes, que a su vez estaban parados sobre una gran tortuga marina.

Los griegos, por su parte, vivían convencidos de que el titán Atlas cargaba la tierra sobre sus hombros, aunque dicen que Hércules se la sujetó un rato en sus años mozos.

Todo esto se los cuento porque quiero establecer la tésis de que para las culturas antiguas eso de que los planetas floten en el vacío era impensable: todo tiene que apoyarse en algo, sea física o conceptualmente.

Los avances científicos han echado por tierra la idea de la tierra apoyada sobre algo, pero para que vean que la historia es cíclica hoy en día la internet se apoya sobre los 13 Root Nameservers, los 13 pilares de la Internet.

Los 13 y sus subordinados

En realidad los 13 pilares no son sólo 13. ¿Cómo? Efectivamente, gracias al protocolo anycast, cada uno de los 13 Root Nameservers existe en varias máquinas, y algunos de ellos en muchas ubicaciones geográficas distintas para minimizar el tiempo de respuesta, igual como funcionan los CDN como Akamai o Amazon Cloudfront.

De estos servidores que componen los 13 y en realidad pasan del centenar, hay algunos bajo responsabilidad de VeriSign, otros de ICANN, otros de la NASA, Universidades e instituciones del gobierno de USA.

Cuando alguien escribe una URL en su browser, supongamos Niubie.COM, no le pregunta directamente a los 13 pilares porque obviamente no darían abasto para todas las peticiones que ocurren en la Internet en cada instante. Lo que uno hace, en cambio, es comunicarse con un servidor de nombres provisto por el ISP.

Lo que ocurre de ahí en adelante es una red bastante compleja de actualización y replicación pero básicamente, involucra averiguar primero quien es el responsable de los dominios .COM. Esto debiera contestarlo uno de los 13 Root Nameservers, y dirá que todo lo que es .COM es responsabilidad de Network Solutions, cuyo nameserver responderá a su vez que Niubie.COM está registrado en Register.COM y por tanto es ahí donde deben averiguar sobre ese dominio. A su vez, Register.COM contestará que el sitio está apuntado a los DNS de The Planet, y finalmente al preguntarle a ns1.theplanet.COM éste contestará con la IP de Niubie.COM. Como ese viaje es un poco largo de hacer (en términos internetísticos) la idea no es recorrerlo entero cada vez que alguien quiere cargar Niubie.COM, por lo que los servidores de nombres manejan un caché.

Si el día de mañana quisiéramos cambiar Niubie.COM de servidor, el sitio se ubicaría en otra IP. Los visitantes, por su parte, demorarían varias horas en poder ver Niubie.COM en su nueva ubicación, porque gracias al caché de los DNS que estarían consultando su browser intentaría cargar la IP vieja.

Esto que expliqué a grandes rasgos involucra, como pueden ver, seis conjuntos de máquinas.

  1. Por un lado el navegante -o sea usted, querido lector- que pide una determinada URL.
  2. En segundo lugar, el servidor de nombres configurado en el PC del navegante, usualmente proporcionado por el ISP
  3. En tercer lugar, el conjunto de Root Nameservers que saben quién es responsable por el TLD (top level domain) que se pregunta (.com, .cl, .net, .mx, .es)
  4. En cuarto lugar, el responsable del TLD (en el caso del .com, Network Solutions) que a su vez sabe donde están registrados los dominios: Godaddy, Moniker, Register, etc. Se les llama “registrar”.
  5. En quinto lugar, el registrar, que sabe qué servidor de nombres responde por el dominio. Hay registrar que ofrecen este servicio (como Moniker), pero puede ser un servicio aparte como No-IP.org o DynDNS
  6. Finalmente, el servicio DNS de un dominio en particular lo apunta a una IP. Habitualmente los proveedores de hosting ofrecen este servicio como parte del pack pero no siempre es de buena calidad y hay quienes contratan un DNS independiente.

Como explicamos, hay servicios que consolidan el punto 5 y el 6, otros juntan el 6 con el servicio de hosting. Otros, como Godaddy, juntan las tres cosas. Hay un séptimo escalón que es la resolución que la máquina que aloja un sitio hace de la petición de un dominio. Una misma máquina, con una sola IP, puede alojar cientos de dominios y el webserver tiene el trabajo final de mostrar el contenido de un subdirectorio cuando le preguntan por un sitio.

No quería extenderme tanto respecto de este tema porque no soy experto y cuando uno sólo conoce un barniz incurre en inexactitudes que perjudican la calidad del artículo como un todo. Les pido perdón de antemano si dije alguna tontería y espero tengan a bien corregirme en el hilo de comentarios.

Quiero precisar, además, que todos los ejemplos de este capítulo han partido antojadizamente de la base que el navegante usa la resolución de nombres de su proveedor de internet. En rigor, no es obligatorio usar el servidor de nombres del ISP. Hay muchos servidores de nombres abiertos en universidades, proveedores de hosting, instituciones de gobierno, y, por supuesto, OpenDNS, lo cual nos lleva al siguiente capítulo.

OpenDNS y la neutralidad

Como hemos dicho otras veces, ocupar la palabra neutralidad para hablar de internet tiene muchas aplicaciones. Libertad de piratear, impedimento de discriminar, y otras cosas más exóticas. Para el fundador de OpenDNS, David Ulevitch, significaba la necesidad de que algo tan vital como los DNS no debía estar en manos de ninguna empresa que tuviera intereses de cualquier tipo en internet.

Verán: actualmente el entramado mundial de los DNS funciona como el mercado perfecto de Adam Smith: se regula por sí solo. Ningún servidor de nombres de ningún ISP tiene el poder de cambiar el status quo. Si uno se rebelara y empezara a resolver nombres hacia IPs falsas a lo más engañaría a un grupo reducido de internautas, pero al mismo tiempo se desacreditaría frente a otros DNS y terminaría aislado. Es más, el que tomara la decisión de rebelarse podría terminar tras las rejas, como le pasó a Kashpurreff y su AlterNIC a mediados de los 90.

El riesgo de dejar las ovejas al cuidado de los lobos no es únicamente que alguno se pueda avivar e intente replicar una tupla dominio/IP maliciosa, sino que en general hay una cierta negligencia en la manera como se manejan los DNS de parte de las empresas e incluso instituciones, porque es un servicio que se da por sentado y se le hace poca mantención. El año pasado el investigador Dan Kaminsky detectó y denunció un grave problema de seguridad en prácticamente todos los servidores DNS del planeta, que facilitaba la realización de ataques de envenenamiento de DNS o DNS Poisoning. No me atrevería a decir que el problema está solucionado: más bien dejó de ser un tópico recurrente y muchos lo olvidaron, igual como olvidan actualizar y parchar los DNS regularmente.

Por lo precario de este equilibrio Smithiano, y el abandono antes descrito, Ulevitch montó OpenDNS durante el 2005 como un servicio gratuito, neutral, distribuido y con valor agregado. Por ejemplo, utilizan una tecnología de caché y replicación que garantiza una propagación rápida y una respuesta ágil sin importar la ubicación geográfica. Además, permite que te crees una cuenta y accedas a reportes de tráfico, establezcas reglas para tu IP, de modo que si alguien hace una petición DNS desde tu casa se vea impedido de accesar ciertos sitios, o bien pueda llegar a http://www.gmail.com escribiendo simplemente http://mail.

Es bueno OpenDNS, yo lo uso porque me inspira más confianza que los servidores de nombre de mi ISP que a veces se caen, no refrescan, no resuelven direcciones de USA y ese tipo de pifias. Si a alguien le interesa, para establecer OpenDNS como servidor de nombres predeterminado hay que ingresar estas direcciones en las propiedades de la conexión:

Bueno, como esto no es un informercial de OpenDNS, el siguiente paso de nuestra historia es contarles que Google quiere hacer lo mismo. Hace una semana lanzaron un servicio DNS gratuito llamado Google Public DNS. Para usarlo hay que hacer lo mismo que en la imagen e arriba pero usando las IP 8.8.8.8 y 8.8.4.4.

Obviamente todos corrieron a preguntarle a OpenDNS qué pensaba al respecto, y es un poco sui generis la situación porque si dos empresas te regalan un servicio esperando hacer de la internet un sistema equilibrado, es absurdo competir por quien es más altruísta. Pero OpenDNS mordió el anzuelo y no pudo evitar escribir un artículo mostrando sus posiciones. Es un buen artículo y sopesa lo bueno y lo malo con criterio. Por un lado, aplauden que Google haya reconocido lo mismo que ellos defienden hace 4 años: que el servicio de resolución de nombres es una pieza demasiado importante como para dejar que se autoregule. Segundo, que la actitud de Google les ayuda a difundir el mensaje que ellos predican, que no hay por qué quedarse con los DNS que te configura tu ISP cuando puedes tener algo mejor.

Por la contraparte, señala que mientras con OpenDNS uno configura su experiencia, con Google Public DNS ellos determinan la tuya, que por lo mismo tiene menos prestaciones y que en general la gente terminará por cansarse de depender tanto de Google en todo aspecto de su experiencia en la internet. Y esto último es la expresión de la máxima “Google quiere dominar el mundo” que tanto hemos dicho, celebrado y repetido, lo que nos lleva al próximo punto.

Google quiere controlar el mundo

A lo largo de los años se ha hecho común la expresión “Google quiere controlar el mundo” o dominar el mundo o conquistar el mundo, da igual. Sinceramente, creo que es un poco conspiraloco pensar de esa manera, pero en cambio sí le doy bastante crédito a la tésis de que Google quiere controlar la internet. No controlar en un sentido restrictivo, sino más bien en el sentido de tomar posesión de un vasto imperio que sabe suyo pero cuya extensión desconoce.

En otras palabras, Google se ha vuelto tan vital y tan poderoso en la internet que a estas alturas concibe su papel como el núcleo de la internet misma, siendo el resto provincias alejadas de las que va tomando control a medida que estabiliza los territorios actuales. Tal como el Imperio Romano, Google no tiene problemas en mantener autoridades locales, no se deja caer cambiando todo sino que -muy pragmáticamente- entiende que mientras las cosas funcionen hay que dejarlas como están al tiempo que se van tendiendo redes de control y gestión. Para Roma esas redes eran caminos, acueductos, sistemas de impuestos y redes de comercio. Para Google esas redes son su buscador, Adsense, Analytics, Feedburner, Chrome y ahora Google Public DNS.

La organización ICANN ( Internet Corporation for Assigned Names and Numbers) emitió un comunicado hace poco señalando que la redirección de los errores DNS le hace daño a internet. Es usual que algunos ISP no te muestren el error “no encontrado” de tu browser sino que te lleven a una página de autopromoción o algo similar. Cuando hacen eso -según su lógica- nadie sale herido, porque no están impidiendo que visites un sitio reemplazándolo con el suyo, sino impidiendo que veas un mensaje de error reemplazándolo con el suyo. Suena inofensivo, pero según ICANN esos redireccionamientos generan problemas a la hora de replicar dominios, resolver direcciones de correo y cosas similares.

El que esté libre de culpas…

Les cuento esto porque Google ofreció su servicio presentándolo como una solución a este problema: las redirecciones a sitios aparcados llenos de avisos. OpenDNS comenta sin indirectas que Google es la mayor fuente de redirecciones y avisos de la web. Es más, la mayoría de esos avisos con que decoran los sitios de error customizados son Adsense. Como todos saben, Google cobra una tajada de más de la mitad por cada dólar que recauda un aviso Adsense, asi que la neutralidad ¿Dónde queda?

Pero acá nadie está libre de culpas. Si uno usa OpenDNS y escribe mal una dirección, OpenDNS tiene su propia página para reportar que el sitio no existe. Esa página es un Google Custom Search Engine y, adivinen qué, tiene avisos Adsense. Por ejemplo si trato de visitar http://www.ambolibobol.com (ojo, no existe, corran a registrarlo).

Pero bueno, supongamos que el tema de las redirecciones no es lo fundamental, sino el tema de la velocidad. El sitio browsermob decidió hacer una prueba en la que comparó el desempeño de OpenDNS, Google Public DNS y el DNS del ISP de turno en Portland, Oregon, la empresa Qwest. El resultado puede ser sorprendente:

  • Google – 67.3 ms
  • OpenDNS – 45.8 ms
  • Qwest DNS – 25.6 ms

En otras palabras, el DNS del ISP sigue siendo lejos el más rápido… lo cual no es ninguna sorpresa porque -mal que mal- hay menos saltos desde tu casa hasta él. Es prácticamente la primera parada! En segundo lugar, OpenDNS es bastante más rápido que Google Public DNS pero a lo mejor es porque el servicio de Google debutó con pocos espejos y, eventualmente, cuando tengan muchas máquinas replicadas por AnyCast el servicio sea más rápido.

Pero lo importante no es eso. Lo importante no es pretender que no habrá redirecciones porque seguramente seguirán existiendo. Lo importante no es ser más veloces en la petición instantánea que el ISP local, porque eso varía de un día para otro. Me atrevo a decir incluso que lo importante no es que se refresquen los DNSs (por ejemplo cuando nos cambiamos de hosting) más rápido, y que el valor agregado del servicio OpenDNS se agradece pero no cambia radicalmente la experiencia de navegación.

Lo importante, queridos lectores, es que después de muchos años siendo los tramoyas de la web y la internet en general, las máquinas que resuelven los nombres han pasado en pocos días a ser protagonistas de diversas noticias incluyendo el presente artículo. Esto se debe en gran parte a que Google puso sus fichas en ese tablero y cuando Google da una señal de este tipo el resto de la industria asume que necesariamente es un activo vital. Google no tiene una varita mágica para volver importante lo que es indiferente, pero sí es capaz de llamar la atención del mundo sobre cosas que siempre han sido importantes e injustamente miradas con indiferencia.

Día a día, los titulares de la prensa especializada le dan cobertura a sitios y servicios populares: Digg, Facebook, Twitter, etc. Sin embargo para un hacker no puede haber un jackpot más suculento que apoderarse de un DNS, y más si es uno de los 13 pilares. Yo me pregunto, cómo se ha podido dar tan poca relevancia a la seguridad, gestión y vigilancia de un activo cuyo efecto negativo, si cayera en malas manos, ni siquiera Google podría contrarrestar.