Source: http://docplayer.es/2779073-Sistemas-distribuidos-servicios-de-nombres.html
Timestamp: 2017-09-20 17:12:33+00:00

Document:
Sistemas Distribuidos - Servicios de Nombres - PDF
Download "Sistemas Distribuidos - Servicios de Nombres"
Domingo Rivas Lucero
1 NOMBRES ESTRUCTURADOS Los nombres planos son buenos para las máquinas, pero por lo general no muy convenientes para el uso de las personas. Como alternativa, los sistemas de nombres con frecuencia soportan nombres estructurados que están compuestos a partir de nombres sencillos y legibles para las personas. Espacios de nombre Por lo general, los nombres están organizados en lo que conocemos como espacio de nombre. Los espacios de nombre se pueden representar como un gráfico etiquetado y dirigido con 2 tipos de nodos. Un nodo hoja representa una entidad con nombre y tiene la propiedad de que no contiene aristas salientes. Un nodo hoja almacena, generalmente, información con respecto a la entidad que representa -por ejemplo, su dirección- de modo que el cliente puede acceder al nodo. De manera alternativa, puede almacenar el estado de dicha entidad, tal como en el caso de sistemas de archivos donde el nodo hoja realmente contiene el archivo completo al que representa. Al contrario del nodo hoja, el nodo directorio contiene cierto número de aristas salientes, cada una etiquetada con un nombre. En un grafo de nombres, cada nodo está considerado sólo como otra entidad del sistema distribuido, y, en especial, como un identificador asociado. Un nodo directorio almacena una tabla en la cual la arista saliente se representa como un par (etiqueta de arista, identificador de nodo). A dicha tabla se le llama tabla de directorio. Figura 1-1 El grafo de nombres que aparece en la figura 1-1 tiene un nodo, a saber n0, el cual contiene solamente aristas salientes y no entrantes. A tal nodo se lo conoce como nodo raíz del grafo de nombres. Aunque es posible que un grafo tenga varios nodos raíz, por sencillez, muchos sistemas de nombres tienen sólo uno. En un grafo de nombres podemos hacer referencia a cada ruta mediante la secuencia de etiquetas que corresponden a las aristas presentes en dicha ruta, tal como N:<etiqueta-1, etiqueta-2,, etiqueta-n> Tolstanov, Ezequiel J.J. Muñoz Bussi Página 1
2 donde N hace referencia al primer nodo de la ruta. A dicha secuencia se la conoce como nombre de ruta. Si el primer nodo presente en el nombre de ruta es la raíz del grafo de nombres, entonces se le llama nombre de ruta absoluta. De lo contrario, se le llama nombre de ruta relativo. Es importante darse cuenta que los nombres siempre se organizan dentro de un espacio de nombre. En consecuencia, un nombre siempre está definido en forma relativa hacia un nodo directorio. En este sentido, el término "nombre absoluto" es, de alguna manera, incorrecto. De manera similar, la diferencia entre nombres locales y globales con frecuencia puede resultar confusa. Un nombre global es un nombre que denota la misma entidad, sin importar en dónde se utilice dentro de un sistema. En otras palabras, un nombre global siempre se interpreta con el mismo nodo directorio. Por el contrario, un nombre local es un nombre cuya interpretación depende del lugar en donde se utilice. Dicho de manera diferente, un nombre local, es, en esencia, un nombre relativo cuyo directorio en el cual está contenido (implícitamente) se conoce. Esta descripción de un grafo de nombres viene al caso con respecto a lo que está implementando en muchos sistemas de archivos. Sin embargo, en lugar de escribir la secuencia de etiquetas de los extremos para representar el nombre de la ruta, en los sistemas de archivos, por lo general, los nombres de ruta están representados como una sola cadena en la cual las etiquetas están separadas mediante un carácter separador especial, tal como una barra "/". Este carácter también se utiliza para indicar si un nombre de ruta es absoluto. Por ejemplo, en la figura 1-1, en lugar de utilizar n0:<inicio, steen, mbox>, esto es, el nombre de ruta real, es práctica común utilizar una representación de cadena /home/steen/mbox. Además, se observa que cuando existen distintas rutas que llegan al mismo nodo, éste se puede representar mediante diferentes nombres de ruta. Por ejemplo, en la figura 1-1 se puede hacer referencia al nodo n5 mediante /home/steen/keys igual que utilizando /keys. La representación de cadena de una ruta de nombres se puede aplicar igualmente a otros grafos de nombres, además de a aquellas utilizadas únicamente para los sistemas de archivos. Existen diferentes maneras de organizar el mismo espacio. Como ya mencionamos, la mayoría de los espacios de nombre tiene solamente un nodo raíz. En muchos casos, un espacio de nombres es además estrictamente jerárquico en el sentido de que el grafo de nombres se organiza como un árbol. Esto significa que cada nodo excepto el nodo raíz tiene exactamente una arista entrante; la raíz no contiene aristas entrantes. En consecuencia, cada nodo tiene también un nombre de ruta (absoluto) asociado. El grafo de nombres que aparece en la figura 1-1 ejemplifica un grafo dirigido no cíclico. En tal organización, un nodo puede tener más de una arista entrante, pero no se le permite al grafo tener un ciclo. Existen también espacios de nombre que no tienen esta restricción. Para hacerlo más concreto, considere la forma en que se nombran los archivos dentro de un sistema de archivos UNIX tradicional. En el grafo de nombres para UNIX, un nodo directorio representa un directorio de archivos, en donde un nodo hoja representa a un archivo. Existe un solo directorio raíz, representado en el grafo de nombres por el nodo raíz. La implementación del grafo de nombres es parte integral de toda la implementación del sistema de archivos. Dicha implementación consta de series contiguas de bloques a partir de un disco Tolstanov, Ezequiel J.J. Muñoz Bussi Página 2
3 lógico, particionado por lo general en un bloque de inicio (boot block), un superbloque, una serie de nodos índice (llamados i-nodos) y bloques de archivos de datos. Figura 1-2 El bloque de inicio es un bloque especial de datos e instrucciones que se cargan de manera automática dentro de la memoria principal cuando se inicia el sistema. El bloque de inicio se utiliza para cargar al sistema operativo dentro de la memoria principal. El suprbloque contiene información con respecto a todo el sistema de archivos, tal como su tamaño, qué bloques del disco aún no están ocupados, cuáles i-nodos aún no fueron utilizados, entre otras cosas. A los i-nodos se les referencia mediante un número de índice, que comienza con el número 0, el cual es reservado para el i-nodo que representa al directorio raíz. Cada i-nodo contiene información acerca del lugar en donde se pueden encontrar los datos de su archivo asociado. Además un i-nodo contiene información relativa a su propietario, la fecha de creación, fecha de última modificación, protección, etc. En consecuencia, cuando el número de índice está dado por un i-nodo, es posible acceder a su archivo asociado. Cada directorio se implementa además como un archivo. Éste es también el caso para el directorio raíz, el cual contiene un mapeo entre los nombres de archivo y los números de índice de los i-nodos. De esta manera, vemos que el número de índice de un i-nodo corresponde a un identificador de nodo en el grafo de nombres Resolución de nombres Los espacios de nombre ofrecen un mecanismo apropiado para almacenar y recuperar información con respecto a las entidades por medio de nombres. De manera más general, dado el nombre de una ruta, debiera ser posible buscar cualquier información almacenada en el nodo referido por dicho nombre. Al proceso de búsqueda de un nombre se le llama resolución de nombre. Para explicar la manera en que funciona la resolución, consideremos un nombre de ruta como N:<etiqueta-1, etiqueta-2,, etiqueta-n>. La resolución de este nombre comienza en el nodo N del grafo de nombres, donde el nombre etiqueta-1 se busca en la tabla de directorio y el cual devuelve al identificador del nodo al que hace referencia etiqueta-1. La resolución continúa entonces en el nodo identificado al buscar el nombre etiqueta-2 en su tabla de directorio, y así Tolstanov, Ezequiel J.J. Muñoz Bussi Página 3
4 sucesivamente. Cuando se asume que la ruta nombrada realmente existe, la resolución se detiene en el último nodo referido como etiqueta-n, al devolver el contenido de dicho nodo. Una búsqueda de nombre devuelve el identificador de nodo a partir del cual continúa el proceso de resolución de nombres. En especial, es necesario acceder a la tabla de directorios de un nodo identificado. Considere de nuevo un grafo de nombres para un sistema de archivos UNIX. Como ya mencionamos, un identificador de nodo se implementa como un número de índice de un i-nodo. Acceder a una tabla de directorio significa que debe leerse el primer i- nodo para descubrir en dónde se encuentran los datos reales almacenados en el disco, y luego de manera subsecuente leer los bloques de datos que contiene la tabla de directorio. Implementación de un espacio de nombre Un espacio de nombre da forma al corazón de un servicio de nombres, esto es, un servicio que permite a los usuarios y procesos agregar, quitar, y buscar nombres. Un servicio de nombres se implementa mediante servidores de nombre. Si un sistema distribuido está restringido a una red de área local, con frecuencia es factible implementar un servicio de nombres por medio de un solo servidor. Sin embargo, en los sistemas distribuidos implementados, a gran escala con muchas entidades, y posiblemente dispersos a lo largo de un gran área geográfica, es necesario distribuir la implementación del espacio de nombre sobre múltiples servidores de nombre. Distribución de los espacios de nombre Los espacios de nombre para un sistema distribuido de gran escala, posiblemente a nivel mundial, son organizados por lo general de manera jerárquica. Igual que antes, asuma dicho espacio de nombre como un solo nodo raíz. Para implementar de manera efectivo dicho espacio de nombre, es conveniente colocarlo dentro de capas lógicas: La capa global está formada por los nodos de más alto nivel, esto es, el nodo raíz y otros nodo directorio lógicamente cercanos a la raíz, a saber, sus hijos. Los nodos ubicados en la capa global con frecuencia se caracterizan por su estabilidad, en el sentido de que las tablas de directorio rara vez se modifican. Dichos nodos pudieran representar organizaciones, o grupos de organizaciones, para las cuales se almacenan los nombres dentro del espacio de nombre. La capa de administración está formada por los nodos directorio que son administrados juntos dentro de una sola organización. Una característica de los nodos directorio ubicados en la capa de administración es que representan grupos de entidades que pertenecen a la misma organización o a una unidad de administración. Por ejemplo, en una organización pudiera existir un nodo directorio para cada departamento, o un nodo directorio a partir del cual se pueden encontrar todos los servidores. Otro nodo directorio pudiera ser utilizado como punto de inicio para nombrar a todos los usuarios, y así sucesivamente. Los nodos de la capa de administración son relativamente estables, aunque por lo general los cambios ocurren con más frecuencia que en los nodos de la capa global. Por último, la capa de dirección consta generalmente de nodos que pudieran modificarse de manera regular. Por ejemplo, en la red local los nodos representan servidores que pertenecen a esta capa. Por la misma razón, la capa incluye nodos que representan archivos compartidos tales como aquellos implementados por bibliotecas o archivos binarios. Otra clase importante Tolstanov, Ezequiel J.J. Muñoz Bussi Página 4
5 de nodos incluye los que representan directorios definidos por el usuario y archivos. Al contrario de las capas global y de administración, los nodos de la capa de dirección se administran no solamente por administradores de sistemas, sino también por usuarios individuales de un sistema distribuido. Para hacer los puntos más concretos, la figura 1-3 muestra un ejemplo del particionamiento del espacio de nombres DNS, incluyendo los nombres de archivos localizados dentro de una organización y a los que se puede acceder a través de internet; por ejemplo, páginas web y archivos transferibles. El espacio de nombres está dividido en partes que no se solapan, llamadas zonas en DNS. Una zona es parte del espacio de nombre implementado mediante un servidor de nombres separado. Alguna de estas zonas se ilustran en la figura 1-3. Si observamos la disponibilidad y rendimiento, vemos que en cada capa los servidores de nombre tienen que cumplir con diferentes requerimientos. En la capa global, la alta disponibilidad es especialmente crítica para los servidores de nombre. Si un servidor de nombre falla, una gran parte del espacio de nombre será inalcanzable debido a que la resolución de nombre no puede proseguir más allá del servidor defectuoso. De alguna manera el rendimiento es sutil. Debido a la baja tasa de cambio de nodos de la capa global, los resultados de las operaciones de búsqueda generalmente permanecen válidos por largo tiempo. En consecuencia, dichos resultados pueden ser cacheados de manera efectiva por los clientes. La siguiente vez que se realice la misma operación de búsqueda, los datos se pueden recuperar desde la caché del cliente en lugar de dejar que el servidor de nombres devuelva los resultados. Como resultado, en la capa global los servidores de nombre no tienen que responder rápidamente a una simple petición de búsqueda. Por otro lado, el rendimiento de proceso pudiera ser importante; especialmente en sistemas a gran escala y con miles de millones de usuarios como lo es el caso de la infraestructura actual de DNS. Figura 1-3 Tolstanov, Ezequiel J.J. Muñoz Bussi Página 5
6 En la capa global, los requerimientos de disponibilidad y rendimiento para los servidores de nombre pueden cumplirse mediante la réplica de servidores, en combinación con el uso del caché del lado del cliente. Sin embargo, al contrario de la capa global, la capa de administración debe cuidar que los resultados de las búsquedas se devuelvan en pocos milisegundos, ya sea de manera directa desde el servidor o desde el caché local del cliente. En forma similar, por lo general las actualizaciones pueden procesar más rápido que en la capa global. Por ejemplo, es inaceptable que tome horas habilitar una cuenta para un nuevo usuario. Con frecuencia, estos rendimientos se pueden cumplir mediante el uso de computadoras de alto rendimiento para ejecutar servicios de resolución de nombres. Además, se debe aplicar el uso de la caché del lado del cliente, combinado con replicación para incrementar la disponibilidad general. Figura 1-4 En la figura 1-4 se muestra una comparación entre servidores de nombre en diferentes capas. En los sistemas distribuidos, los servidores de nombre ubicados en las capas global y de administración son los más difíciles de implementar. Las dificultades son ocasionadas por la replicación y el uso del caché, necesarios para la disponibilidad y el rendimiento, pero que además generan problemas de consistencia. Algunos problemas se agravan debido a que los cachés y las réplicas se distribuyen a lo largo de redes de área amplia, las cuales generan grandes retardos de comunicación que, de esa manera, vuelven mucho más difícil la sincronización. Implementación de la resolución de nombre La distribución de un espacio de nombre a lo largo de múltiples servidores afecta la implementación de la resolución de nombre. Para explicar la implementación de la resolución de nombre en servicios de nombre a gran escala, asumimos por el momento que los servidores de nombre no están replicados y que no se utiliza caché del lado del cliente. Cada cliente tiene acceso a un solucionador de nombre, el cual es responsable de asegurar que el proceso de resolución de nombre se lleve a cabo. Tomando como referencia la figura 1-3, asumimos que se debe resolver el siguiente nombre de ruta (absoluto): root:<n1, vu, cs, ftp, pub, globe, index.html> Tolstanov, Ezequiel J.J. Muñoz Bussi Página 6
7 Mediante el uso de la notación URL, este nombre de ruta correspondería a ftp://ftp.cs.vu.nl/pub/globe/index.html. Ahora existen 2 maneras de implementar la resolución de nombre. En una resolución iterativa de nombre, un solucionador de nombre toma el nombre completo hacia la raíz del servidor de nombre. Asumimos que la dirección en donde podemos contactar al servidor de nombre es conocida. El servidor raíz solucionará el nombre de ruta hasta donde le sea posible, y devolverá el resultado al cliente. En nuestro ejemplo, el servidor raíz puede resolver solamente la etiqueta nl para lo cual devolverá la dirección de su servidor de nombre asociado. En este punto, el cliente pasa el resto del nombre de ruta (Es decir, nl:<vu, cs, ftp, pub, globe, index.html>) a dicho servidor de nombre. Este servidor puede resolver solamente la etiqueta vu y devuelve la dirección del servidor de nombre asociado, junto con el resto del nombre de ruta vu:<cs, ftp, pub, globe, index.html>. Entonces el solucionador del nombre de cliente hará contacto con el siguiente servidor de nombre, el cual responde mediante la solución de la etiqueta cs, y en consecuencia también ftp, y devuelve la dirección del servidor FTP junto con el nombre de ruta ftp:<pub, globe, index.html>. Entonces el cliente contacta al servidor FTP, solicitando la solución de la última parte del nombre de ruta original. El servidor FTP resolverá entonces las etiquetas pub, globe e index.html y transfiere el archivo solicitado (usando en este caso al servidor FTP). Este proceso de solución iterativa de nombre aparece en la figura 1-5. Figura 1-5 En la práctica el último paso, a saber, el contacto del servidor FTP y la solicitud de que transfiera el archivo con el nombre de ruta ftp:<pub, globe, index.html>, se realiza de manera separada mediante el proceso del cliente. En otras palabras, normalmente el cliente sólo manejaría el nombre de ruta root:<nl, vu, cs, ftp> para el solucionador de nombre, a partir de Tolstanov, Ezequiel J.J. Muñoz Bussi Página 7
8 lo cual pudiéramos esperar la dirección desde donde podemos contactar al servidor FTP, tal como aparece en la figura 1-5. Una alternativa a la resolución iterativa de nombre es el uso de la recursividad durante la resolución. En lugar de devolver cada resultado inmediato de nuevo al solucionador de nombre del cliente, mediante resolución recursiva de nombre, un servidor de nombre pasa el resultado al siguiente servidor de nombre. Así, por ejemplo, cuando el servidor de nombre de raíz encuentra la dirección del servidor de nombre que implementa el nodo llamado nl, solicita al servidor de nombre que resuelva el nombre de la ruta nl:<vu, cs, ftp, pub, globe, index.html>. También mediante el uso de la resolución recursiva de nombre, este siguiente servidor resolvería la ruta completa y en algún momento devolverá el archivo index.html al servidor raíz, a su vez, pasará ese archivo al solucionador de nombre del cliente. En la figura 1-6 se muestra la resolución recursiva de nombre. Tal como la resolución iterativa de nombre, por lo general se lleva a cabo como un proceso separado del cliente. Figura 1-6 La principal desventaja de la resolución recursiva de nombre es que demanda un rendimiento más alto de cada servidor. De manera básica, se requiere un servidor de nombre para manipular la resolución completa del nombre de ruta, aunque lo haga en cooperación con otros servidores de nombre. Esta dificultad adicional por lo general es tan importante que los servidores de nombre ubicados en la capa global de un espacio de nombre soportan solamente la resolución iterativa de nombre. Existen otras ventajas importantes en la resolución recursiva de nombres. La primer ventaja es que el uso del caché resulta más efectivo comparada con el de la resolución iterativa de nombre. La segunda es que los costos de comunicación son más reducidos. Para explicar estas ventajas, asuma que el solucionador de nombre del cliente aceptará los nombres de ruta que solamente hacen referencia a los nodos localizados en las capas global o administración del espacio de nombre. Para resolver esa parte del nombre de ruta que corresponde a los nodos de la capa de dirección, un cliente hará contacto de manera separada con el servidor de nombre devuelto por su solucionador de nombre, tal como ya lo hemos visto. Tolstanov, Ezequiel J.J. Muñoz Bussi Página 8
9 La resolución recursiva de nombre permite a cada servidor de nombre aprender gradualmente la dirección de cada servidor de nombre responsable de la implementación de los nodos de más bajo nivel. Como resultado, puede utilizarse el caché para aumentar el rendimiento de manera efectiva. Por ejemplo, cuando a un servidor raíz se le solicita resolver el nombre de ruta root:<nl, vu, cs, ftp> en algún momento obtendrá la dirección del servidor de nombre que implementa el nodo referido por dicho nombre de ruta. Para llegar a este punto, el servidor de nombre para el nodo nl tiene que revisar la dirección del servidor de nombre para el nodo vu, mientras que este último servidor tiene que revisar la dirección del servidor de nombre que manipula el nodo cs. Debido a que los cambios a los nodos de las capas global y de administración no ocurren a menudo, el servidor de nombre raíz puede almacenar en caché la dirección devuelta de manera efectiva. Más aún, ya que también se devuelve la dirección, mediante recursividad, hacia el servidor de nombre responsable de la implementación del nodo vu y al que implementa el nodo nl, también pudiera usarse caché a distintos servidores. De manera similar, también pueden devolver y guardar en caché los resultados de búsquedas de nombres intermedios. Por ejemplo, el servidor para el nodo nl tendrá que buscar la dirección del servidor del nodo vu. Dicha dirección se puede devolver al servidor raíz cuando el servidor nl devuelve el resultado de la búsqueda del nombre original. En la figura 1-7 podemos ver un resumen completo para el proceso de resolución y los resultados que se pueden almacenar en caché para cada servidor de nombre. Figura 1-7 El sistema de nombres de dominio Uno de los servicios distribuidos de nombres más grande actualmente en uso es el servicio de nombres de dominio de internet (DNS por sus siglas en inglés Domain Name Service). El DNS es primordialmente utilizado para la búsqueda de direcciones IP de servidores y servidores de correo (entre otros). Después de más de 35 años, no ha recibido mayores cambios en su infraestructura, lo que da la indicación de que se ha diseñado muy eficientemente y de manera sencilla. Tolstanov, Ezequiel J.J. Muñoz Bussi Página 9
10 El espacio de nombre DNS El espacio de nombre DNS está organizado jerárquicamente como las raíces de un árbol. Una etiqueta es una cadena indiferente al uso de mayúsculas o minúsculas formada por caracteres alfanuméricos. Una etiqueta tiene una longitud máxima de 63 caracteres; la longitud del nombre de ruta completo está restringida a 255 caracteres. La representación de la cadena de un nombre de ruta consta de una lista de sus etiquetas, que comienzan por la extrema derecha y separa las etiquetas mediante un ".". Por ejemplo, el nombre de ruta root:,nl, vu, cs, flits está representado mediante la cadena flits.cs.vu.nl. Debido a que cada nodo localizado en el espacio de nombres DNS tiene exactamente una arista entrante (con excepción del nodo raíz), la etiqueta adjunta a la arista entrante del nodo también se utiliza como el nombre de dicho nodo. A un subárbol se le llama dominio; a un nombre de ruta hacia su nodo raíz se le llama nombre de dominio. Un nombre de ruta, como se puede observar, puede ser absoluto o relativo. El contenido de un nodo está formado por una colección de registros de recurso. Existen diferentes tipos de registro de recursos. Los más importantes aparecen en la figura 1-9. En el espacio de nombre DNS, un nodo representa a menudo diversas entidades al mismo tiempo. Por ejemplo, un nombre de dominio tal como vu.nl se utiliza para representar un dominio y una zona. En este caso, el dominio se implementa por medio de distintas zonas (no superpuestas). Un registro de recurso SOA (start of authority) contiene información tal como una dirección de correo electrónico del administrador responsable de la zona representada, el nombre del servidor desde donde se recuperan los datos con respecto a la zona, y así sucesivamente. Figura 1-9 Un registro (dirección) A representa un servidor particular en internet. El registro A contiene una dirección IP hacia dicho servidor para permitir la comunicación. Si un servidor contiene diversas direcciones IP, como en el caso de máquinas con diversas direcciones de inicio, el nodo contendrá un registro A para cada dirección. Otro tipo de registro es el MX (mail exchange), el cual es como un vínculo simbólico que representa a un servidor de correo. Por ejemplo, el nodo que representa al dominio cs.vu.nl Tolstanov, Ezequiel J.J. Muñoz Bussi Página 10
11 contiene un registro MX que contiene el nombre zephyr.cs.vu.nl, el cual hace referencia a un servidor de correo. Dicho servidor manipulará todos los mensajes entrantes direccionados hacia los usuarios del dominio cs.vu.nl. Pueden existir diversos registros MX almacenados dentro de un nodo. Los nodos representan una zona, contienen uno o más registros NS (name server). Tal como los registros MX, un registro NS contiene el nombre de un servidor de nombre que implementa la zona representada por el nodo. En principio, cada nodo del espacio de nombre se puede almacenar en el registro NS que hace referencia al servidor de nombre que lo implementa. Sin embargo, la implementación de un espacio de nombre DNS es tal que solamente los nodos que representan zonas requieren almacenar registros NS. Un DNS distingue un alias a partir de lo que conocemos como nombres canónicos. Se asume que cada servidor tiene un nombre primario o canónico. Un alias se implementa por medio de un nodo que almacena un registro CNAME que contiene el nombre canónico de un servidor. De esta manera, el nombre de un nodo que almacena tal registro es el nombre de un vínculo simbólico. El DNS mantiene un mapeo inverso de las direcciones IP hacia los nombres de los servidores por medio de registros PTR (pointer). Para acomodar las búsquedas de los nombres de los servidores cuando solamente se tiene la dirección IP, el DNS mantiene un dominio llamado inaddr.arpa, el cual contiene los nodos que representan a los servidores de internet y los cuales se llaman mediante la dirección IP del nodo que representan. Por ejemplo, el servidor tiene una dirección El DNS crea un nodo llamado inaddr.arpa, que se utiliza para almacenar el nombre canónico de dicho servidor en un registro PTR. Los 2 últimos tipos de registros son HINFO y TXT. Un registro HINFO se utiliza para almacenar información adicional acerca del servidor, tales como sus características de hardware y software. De manera similar, los registros TXT se utilizan para cualquier otro tipo de dato que el usuario encuentre útil para almacenar acerca de la entidad representada por el nodo. Particularmente, el registro TXT es muy utilizado para validaciones de orígenes de mails (SPF, DKIM, etc). Implementación de un DNS En esencia, el espacio de nombre DNS se puede dividir dentro de una capa global y una capa de administración, tal como aparece en la figura 1-3. La capa de dirección, que por lo general está conformada por los sistemas de archivos locales, no es parte formal del DNS, y por tanto, tampoco manejada por éste. Cada zona se implementa mediante un servidor de nombre, el cual virtualmente se replica siempre para asegurar la estabilidad. Por lo general, las actualizaciones para una zona son manipuladas por el servidor de nombre primario. Las actualizaciones toman lugar mediante la modificación de la base de datos del DNS local al servidor primario. Los servidores de nombre secundarios no tienen acceso directo a la base de datos, pero, en su lugar, solicitan al servidor primario que transfiera su contenido. A esto último se le llama transferencia de zona en la terminología DNS. Tolstanov, Ezequiel J.J. Muñoz Bussi Página 11
12 Una base de datos DNS se implementa como una colección de archivos, de los cuales los más importantes contienen todos los recursos para todos los nodos de una zona en particular. Este método permite a los nodos ser identificados empleando simplemente su nombre de dominio, por lo que la idea de un nodo identificador se reduce a un índice (implícito) dentro de un archivo. Para comprender mejor estos problemas de implementación, la figura 1-10 muestra una pequeña porción del archivo que contiene la mayor parte de la información para el dominio cs.vu.nl. El archivo muestra el contenido de diversos nodos que son parte del dominio cs.vu.nl, donde cada nodo se identifica por medio de su nombre de dominio. El nodo cs.vu.nl representa el dominio así como a la zona. Su registro de recurso SOA contiene información específica con respecto a la validez de este archivo. Existen 4 nombres de servidores para esta zona, a los que se hace referencia mediante su nombre canónico dentro de los registros NS. El registro TXT se usa para brindar información adicional con respecto a esta zona, pero no se puede procesar de manera automática por ningún servidor de nombre. Más aún, existe un solo servidor de correo que puede manipular correo entrante direccionado por usuarios en este dominio. El número que precede al nombre de un servidor de correo especifica la prioridad de selección. Un servidor de correo que envía siempre debe intentar primero hacer contacto con el servidor de correo con el número más pequeño (prioridad más alta). Tolstanov, Ezequiel J.J. Muñoz Bussi Página 12
13 Figura 1-10 El servidor star.cs.vu.nl opera como un servidor de nombre para esta zona. Los servidores de nombre son críticos para cualquier servicio de nombre. Lo que podemos ver con respecto a este servidor de nombre es que los recursos adicionales se crean para dar dos interfaces de red por separado, cada una representada por un registro de recurso A por separado. De esta manera, los efectos de un vínculo de red roto se pueden mitigar de cierta forma si el servidor se mantiene accesible. Las siguientes 4 líneas (para zephyr.cs.vu.nl) contienen la información necesaria acerca de uno de los servidores de correo del departamento. Se observa que este servidor de correo también está respaldado por otro servidor de correo, cuya dirección es tornado.cs.vu.nl. Tolstanov, Ezequiel J.J. Muñoz Bussi Página 13
14 Las siguientes seis líneas muestran una configuración común en la cual el servidor web del departamento, así como también el servidor FTP se implementan mediante una sola pc, llamada soling.cs.vu.nl. Mediante la ejecución de ambos servidores en la misma máquina, la administración de sistemas se vuelve más sencilla. Por ejemplo, ambos servidores tendrán la misma vista del sistema de archivos, y por eficiencia, parte del sistema de archivos pudiera implementarse en soling.cs.vu.nl. Con frecuencia este método puede aplicarse en el caso de servicios WWW y FTP. Las dos siguientes líneas muestran información de uno de los clústeres de servidor más viejos del departamento. En este caso, nos indica que la dirección está asociada con el nombre del servidor vucs.dasl.cs.vu.nl. Las siguientes cuatro líneas muestran información relativa a dos impresoras grandes conectadas a la red local. Notar que las direcciones ubicadas en el rango a son privadas, y sólo pueden ser accesibles desde dentro de la red local. Figura 1-11 Debido a que el dominio cs.vu.nl se implementa como una sola zona, en la figura 1-10 nbo se incluyen las referencias hacia otras zonas. La manera de hacer referencias a nodos de un subdominio que están implementadas en zonas diferentes se muestra en la figura Lo que se necesita hacer es especificar el servidor de nombre para el subdominio al simplemente dar su nombre de dominio y su dirección IP. Al resolver el nombre de un nodo que radica en el dominio cs.vu.nl, la resolución de nombre continúa en cierto punto con la lectura de la base de datos DNS almacenada mediante el servidor de nombre para el dominio cs.vu.nl. Tolstanov, Ezequiel J.J. Muñoz Bussi Página 14

References: Resolución 
 resolución 
 resolución 
 resolución 
 resolución 
 resolución 
 resolución 
 resolución 
 resolución 
 resolución 
 resolución 
 resolución 
 resolución 
 resolución 
 resolución 
 resolución 
 resolución 
 resolución 
 resolución 
 resolución 
 resolución 
 resolución 
 resolución 
 resolución 
 resolución 
 resolución 
 resolución