Regístrate | Conectar
El Tamiz Libros Recursos Series Únete 24 Users Online
Skip to content

Las tripas de Internet – Los dominios: servidores DNS




Seguimos con otro artículo de Las tripas de Internet. En la anterior entrada hablamos sobre el sistema de nombres de dominio y el archivo hosts. En este artículo, veremos como se distribuye toda la información de los nombres y las direcciones IP a través de Internet, para que cualquier ordenador conectado a la red pueda consultar esos datos.

Hasta ahora hemos visto el sistema de nombres de dominio, por el cual se puede asignar un nombre a cada dirección de Internet. Estos nombres tienen el formato zona3.zona2.zona1. Cada uno de las partes se llama zona, y en anterior artículo vimos que siguen una estructura jerárquica y delegada. Además, el sistema DNS es un sistema distribuido: no hay un ordenador central que guarda toda la información de los nombres, sino que esta información está repartida en miles de ordenadores por todo Internet.

Cada servidor del sistema de nombres de dominio (servidor DNS para abreviar) es responsable de una zona. Esto es, tiene guardada la información sobre una zona en concreto, por ejemplo eltamiz.com. Este servidor contiene información como la dirección IP correspondiente a www.eltamiz.com o la dirección IP del servidor de correo que se encarga de las direcciones de e-mail acabadas en @eltamiz.com (volveremos sobre este punto en los artículos referentes al sistema de correo de Internet). En el caso de que www.eltamiz.com sea una zona delegada (es decir, se ha cedido el control a otro ordenador para gestionar la zona www.eltamiz.com y crear nombres como prueba.www.eltamiz.com), el servidor de eltamiz.com también conoce la dirección IP del servidor de la zona www.eltamiz.com.

Este último es el que convierte el sistema DNS en un sistema distribuido. Quedará mas claro tras ver un ejemplo de como funciona una petición DNS (una petición es una consulta que lanza nuestro ordenador para saber la dirección IP correspondiente a un nombre, por ejemplo correo.example.com):

Ejemplo de una petición DNS. Vemos como las respuestas de los servidores (en verde) incluyen información para seguir la búsqueda. De WikimediaCommons

  1. Nuestro ordenador tiene configurada la dirección de un servidor DNS, que normalmente pertenece a nuestro proveedor de Internet. Cuando quiere conocer la dirección IP correspondiente a un nombre (a esto lo llamamos resolver un nombre) lanza una petición a este servidor (enviando unos paquetes de datos al puerto del servidor DNS, normalmente el 53). No entraremos en detalles sobre esta petición, pero se podría traducir como ‘Dime la dirección IP del nombre correo.example.com‘.
  2. Este servidor DNS comprueba si es el responsable de la zona example.com, para así poder responder a la petición. En caso de no ser el responsable de esa zona (casi nunca lo es), comienza una búsqueda por Internet del dato solicitado. Observa que no es nuestro ordenador quien busca, sino que ordena a otro servidor que busque por él. Decimos que esto es una búsqueda recursiva.
  3. El servidor busca en su memoria la dirección IP de los servidores raíz (un servidor raíz es el que actúa como zona ‘padre’ de las zonas superiores como .com o .es). A continuación, manda una petición a alguno de los servidores raíz. Esta petición está en lenguaje binario, y seria muy engorroso entrar en detalles técnicos. Para entender el sistema DNS, podemos interpretar esa petición como: ‘Dime la dirección IP del nombre correo.example.com‘. El servidor raíz nunca es el responsable de una zona, con lo que responde: ‘No tengo ni idea, pregunta al ordenador responsable de la zona .com. Su dirección es XX.XX.XX.XX’. Observa que en este caso, al contrario que en el paso anterior, el servidor no comienza una búsqueda por Internet, sino que responde ‘No se’ y nos da una pista para seguir nuestra búsqueda. Por tanto, es una búsqueda iterativa o simplemente no recursiva.
  4. El servidor DNS inicial (el del proveedor de Internet) lanza ahora una petición similar al responsable de la zona .com: ‘Dime la dirección IP del nombre correo.example.com‘. Este, vuelve a responder algo parecido: ‘No tengo ni idea, pregunta al servidor responsable de la zona example.com. Su dirección es YY.YY.YY.YY’
  5. Estos pasos se repiten hasta que nos topamos con el servidor responsable de la zona buscada, en este caso ‘example.com‘. Este nos responde ‘Ah si, la dirección de correo.example.com es ZZ.ZZ.ZZ.ZZ’.
  6. El servidor del proveedor nos devuelve la respuesta a nuestro ordenador. Ahora que ya tenemos la dirección podemos, por fin, comunicarnos con el servidor llamado correo.example.com.

En rigor, no es cierto que un servidor gestione una zona. Normalmente un servidor gestiona cientos de zonas, aunque el concepto es el mismo. Sin embargo, una misma zona no está en un servidor, sino en varios. Uno de esos servidores DNS es el servidor principal o maestro. El resto de servidores se llaman servidores secundarios o esclavos. El papel de los servidores esclavos es copiar la información del servidor maestro, de manera que si el servidor maestro deja de funcionar, el servidor esclavo retoma el trabajo y puede seguir proporcionando información sobre la zona.

Como habrás visto en el ejemplo, una simple resolución de un nombre puede originar bastante comunicación entre ordenadores repartidos por todo el mundo. Para optimizar este tráfico se utiliza un sistema de caché de datos. Una caché de datos consiste en guardar datos que te ha costado conseguir, para que la siguiente vez que tengas que consultarlos sea más rápido. Obviamente no puedes guardar esos datos indefinidamente, pues es posible que en el futuro los datos originales cambien y tu copia quede desfasada. En el sistema DNS, en cada respuesta el servidor informa de cuanto tiempo se puede guardar en caché ese mensaje. En el ejemplo, cada servidor añadiría a su respuesta ‘y puedes guardar esta respuesta durante N horas, no hace falta que me vueltas a preguntar en todo ese tiempo’. De esta manera, nuestro ordenador (o algún otro cliente de nuestro mismo proveedor) vuelva a resolver el nombre correo.example.com,  el servidor del proveedor nos responderá inmediatamente con la dirección IP, puesto que tendrá la respuesta anterior guardada en su caché.

Ahora ya podemos hacernos una idea de como funciona el sistema DNS. Las direcciones IP tienen asociado un nombre compuesto por zonas. La información de cada zona está distribuida entre miles (o quizá millones) de servidores DNS por todo el mundo. Cada uno de estos servidores es dueño y señor de su zona, una pequeña parte de todo el conjunto de nombres de Internet. Cuando alguien quiere resolver un nombre, consulta a un servidores DNS, que a través de varias preguntas a otros servidores encuentra la información correcta.

Como punto final, vamos a hacer un pequeño resumen de los datos que contiene una zona. Los diferentes tipos de datos se llaman registros. Hay muchos registros, pero los más importantes son estos:

  • SOA (Start Of Authority): guarda información como la dirección de correo del responsable de la zona, la dirección del servidor maestro y el tiempo de vida de los datos en caché.

  • A (Address): almacena la dirección IP de una zona. Cuando resolvemos el nombre www.eltamiz.com, estamos consultando el registro A de la zona www en el servidor responsable de eltamiz.com.

  • NS (Name Server): guarda la dirección IP de los servidores DNS que tienen información de la zona (es decir, el servidor maestro y los esclavos).

  • MX (Mail eXchange): indica los servidores de correo que gestionan el email de la zona. Por ejemplo, el registro MX de la zona eltamiz.com señala el servidor de correo que se hace cargo de las direcciones acabadas en @eltamiz.com

Con esto, terminamos los artículos referentes al sistema DNS. Ahora ya podemos comprender todo el proceso que hace que nuestro ordenador pueda enviar datos a un ordenador llamado prueba.example.com. En los siguientes artículos veremos uno de los servicios más comunes: el servicio HTTP, en el cual se apoyan todas las páginas web para funcionar. Hablaremos sobre las direcciones URL, los componentes de una página web moderna…


Preguntas Frecuentes

¿Porqué crear una zona nueva es instantáneo mientras que para cambiar la dirección IP de una zona existente a veces hay que esperar días?

La respuesta está en las cachés. Cuando creamos una zona nueva, ningún otro servidor DNS del mundo tiene información sobre ella, luego nadie la tiene almacenada en caché. Por tanto, consultaran los datos al servidor responsable de la zona. Sin embargo, si la zona existía anteriormente, probablemente algunos servidores DNS tendrán información guardada de la zona y la mantendrán durante unas horas. Hasta que no transcurra ese tiempo los servidores no volverán a preguntar por la dirección de la zona, por lo tanto están devolviendo a sus clientes una información desfasada. Cuando pase ese tiempo (llamado tiempo de refresco), los cambios realizados en nuestra zona empezarán a funcionar. En resumen, el efecto de crear una nueva zona es instantáneo, pero modificar una zona existente puede llevar hasta 48 horas.

¿Cuánto cuesta un dominio? ¿Donde va ese dinero?

Si queremos comprar el dominio eltamiz.com, primero tenemos que pagar a la IANA (no directamente, sino a través de empresas llamadas registradores) para que reserve el nombre seleccionado y lo asocie a nuestro nombre (si queremos un dominio local, por ejemplo acabado en .es, tendremos que consultar al organismo responsable de esa zona). El precio depende del registrador y del modo de pago, pero en general es menos de $10 anuales (en el caso de los .com). Además de todo esto, tendremos que pagar a una empresa para que guarde los datos de nuestro dominio en sus servidores DNS. Es decir, para que se haga responsable de dar la información de nuestro dominio a cualquier ordenador que la solicite. Aquí los precios varían enormemente. En general, las empresas ofrecen los dos servicios a la vez, junto a un pequeño espacio de alojamiento y cuentas de correo electrónico. Pero el concepto es importante: una cosa es tener reservado el nombre de un dominio, y otra guardar la información de la zona y direcciones IP en un servidor DNS y ponerla a disposición del público.


Referencias


Sobre el autor:

Kent Mentolado (Sergio Cinos)

Desarrollador web. Llevo una década con ordenadores, especializándome cada vez más en las páginas web y el desarrollo de aplicaciones web.
 

{ 9 } Comentarios

  1. Gravatar Pedro | 26/10/2008 at 01:32 | Permalink

    Ya que la serie ha alcanzado “masa crítica” (4+1 artículos), acabo de crear la página índice y de añadirla a la página de series: http://eltamiz.com/elcedazo/series/ .

    Enhorabuena por conseguir simplificar las cosas para que los legos podamos entenderlas, y gracias por pulir el artículo lo suficiente como para que no haya tenido que trabajar nada, nada como editor ;)

  2. Gravatar Belerofot | 26/10/2008 at 02:50 | Permalink

    sabia por donde iban los tiros, ahora lo tengo claro. Gracias!!!

  3. Gravatar Oscar | 26/10/2008 at 03:48 | Permalink

    Escribí un pequeño artículo sobre el grave fallo de seguridad que existe en el DNS (http://ocubom.wordpress.com/dns-vulnerable/) que puede ser complementario.

  4. Gravatar Brigo | 27/10/2008 at 01:24 | Permalink

    Muy buen artículo. También el de Oscar me ha gustado. Felicitaciones.

    Por cierto, lo de resolver nuestra dirección DNS, lo podemos hacer nosotros mismo ya que tenemos lo más importante: un ordenador conectado a internet, y nos ahorraríamos unas pelillas y ganaríamos independencia.

  5. Gravatar Kent Mentolado | 27/10/2008 at 10:25 | Permalink

    Claro, en lugar de pagar a una empresa para que aloje la información de nuestro dominio, podemos instalarlo nosotros en nuestro propio ordenador. Como bien señala Brigo, ganamos independencia (y conocimientos, mucho más importante), pero no veo claro lo de que sea un ahorro. Tienes que tener el equipo encendido 24 horas. Si sumas costes de electricidad+Internet+desgastes+tiempo… al final yo creo que sale más económico buscar una empresa de alojamientos barata (hablando solo de DNS, no de web/correo).

  6. Gravatar Davicine | 27/10/2008 at 05:39 | Permalink

    Muy buen artículo. Claro y sencillo. Me encanta vuestra labor. Os deseo suerte en 20 minutos, donde concurso en cine. Suerte y que llegueis lejos.

  7. Gravatar Venger | 03/01/2012 at 01:42 | Permalink

    Muy chula

    Pues nada, a esperar los siguientes artículos.

    A mí me gustaría saber porqué algunas veces se pone www y otras http://

  8. Gravatar J | 03/01/2012 at 02:25 | Permalink

    Venger,

    son cosas distintas, es como comparar peras con manzanas. La URL, que es lo que pones, se define (en modo antes simplista que incomprensible) como:

    protocolo://ordenador/fichero

    Así que cuando pones:

    http://www.eltamiz.com/series/

    lo que estás pidiendo es el fichero “series” en el ordenador “www.eltamiz.com” usando el protocolo HTTP.

    Hay otros protocolos usables, como ftp://, o incluso algunos mucho más extraños, como gopher://

    ¿Y la www? www significa World Wide Web, y casi todas las organizaciones tienen una máquina que se llama http://www.miorganización.com en la que precisamente vive el servidor de web. Pero no es obligatorio. Y para muestra, El Tamiz: el servidor de web de El Tamiz no es http://www.eltamiz.com, sino eltamiz.com (aunque si intentas poner el www. por delante, también funciona, te redirige al adecuado).

    Para complicarlo más… los navegadores de hoy en día son muy listos, así que si tu escribes solamente “eltamiz”, él asume que probablemente querías usar http, y prueba http://eltamiz. Como eso no le funcionará, dice “voy a intentar poner el www por delante, por si se le ha olvidado”. Y prueba http://www.eltamiz. Como tampoco le funcionará, dice “voy a intentar poner el .com por detrás”… y entonces prueba con http://www.eltamiz.com, y esa ya va y le funciona. Pero es porque el navegador es muy listo.

    Espero que te aclare algo.

  9. Gravatar Venger | 03/01/2012 at 04:24 | Permalink

    Respuesta satisfactoria, J

    Muchas gracias

{ 2 } Trackbacks

  1. Gravatar meneame.net | 26/10/2008 at 11:19 | Permalink

    Las tripas de Internet – Los dominios: servidores DNS…

    C&P : Seguimos con otro artículo de Las tripas de Internet. En la anterior entrada hablamos sobre el sistema de nombres de dominio y el archivo hosts. En este artículo, veremos como se distribuye toda la información de los nombres y las direcciones…

  2. [...] Configurar el servidor de DNS en el router wifi SMC SMCWBR14-GM Posted 16 Noviembre 2009 Filed under: Hardware, Internet | Tags: dns, router, smc | Esta mañana parece que la empresa local de cable que me da conexión a Internet se ha levantado con problemas espúreos en su servidor de nombres de dominio. [...]

Escribe un comentario

Tu dirección de correo no es mostrada. Los campos requeridos están marcados *

Al escribir un comentario aquí nos otorgas el permiso irrevocable de reproducir tus palabras y tu nombre/sitio web como atribución.