Por supuesto, el hecho de que un nombre está en uno de estos dominios nacionales, no
implica que la máquina esté realmente en ese país; significa simplemente que ha sido
registrada en el NIC de ese país. Un fabricante sueco puede tener oficinas en Australia y tener
sus ordenadores de allá registrados en el dominio .se.
La organización del espacio de nombres en una jerarquía de nombres de dominio sirve para
resolver fácilmente el problema de la unicidad de los nombres; además muchos nombres
completamente cualificados son fáciles de recordar. Bajo esta premisa es conveniente dividir
un dominio con gran número de máquinas en subdominios.
El sistema DNS hace más cosas. Permite delegar la autoridad de un subdominio a sus
administradores. Por ejemplo, los responsables del Centro de Cálculo Groucho pueden crear
un subdominio para cada departamento, y delegar su control a éstos. Así, cada departamento
puede definir libremente todos los nodos que quiera dentro de su subdominio e incluso crear
nuevos subdominios y delegarlos.
Para esto, el espacio de nombres se divide en zonas, cada una asignada a un dominio. Hay
que ver la diferencia entre zona y dominio: por ejemplo, el dominio groucho.edu incluye todas
las máquinas y subdominios de éste. Mientras que la zona groucho.edu solo incluye las
máquinas del dominio, no los subdominios delegados. Es decir, los nodos del subdominio
physics.groucho.edu pertenecen a una zona diferente. En la figura, el inicio de la zona se
marca con un pequeño círculo a la derecha del nombre de dominio.
Búsquedas con DNS
Veremos ahora la parte más ingeniosa del DNS. La idea es que si queremos buscar la
dirección IP del sistema erdos, DNS pensará, "Preguntemos a la gente que lo maneja, y nos lo
dirá."
De hecho, el DNS es como una gigantesca base de datos distribuida. Está realizada a
través de los llamados servidores de nombres, que proporcionan la información de uno o
varios dominios. Para cada zona, debe haber dos o más servidores de nombres capaces de
responder por ella. Para obtener la dirección IP de erdos, todo lo que necesitamos es contactar
con el servidor de nombres de la zona groucho.edu y obtendremos los datos solicitados.
Cuando nuestra aplicación quiere buscar la información de erdos, contactará con un servidor
de nombres local, quien lleva a cabo una secuencia de peticiones. En primer lugar pregunta al
servidor de nombres raíz, preguntando por erdos.maths.groucho.edu. El servidor raíz reconoce
que el nombre no pertenece a ninguna de sus zonas de autoridad pero sí sabe qué hacer con
la zona edu. Esto es, devuelve a nuestro servidor más información sobre los servidores de
nombres que pueden servir la zona edu. Ahora nuestro servidor preguntará por este nombre a
uno de esos servidores. Ellos nos enviarán a uno que tenga información autorizada del dominio
groucho.edu. Ahora nuestro servidor interrogará a éste y finalmente obtendrá la dirección de
erdos.
Aparentemente la búsqueda de una dirección IP supone mucho tráfico, sin embargo es
minúsculo si lo comparamos con la consulta de un gigantesco fichero HOSTS.TXT. Aun así hay
técnicas para mejorar el rendimiento.
Para acelerar futuras peticiones de nombres, el servidor almacena la información obtenida en
la búsqueda anterior en su caché local. Así, la próxima vez que busquemos algún nodo de
groucho.edu, ya no habrá que ir a los servidores raíz o los de la zona edu.
Por supuesto, el servidor de nombres no almacenará para siempre la información en la caché;
la limpiará cada cierto tiempo. El tiempo de vida se llama TTL (del inglés time to live). En cada
zona DNS el administrador asigna un valor de TTL.
Tipos de servidores de nombres