Sistemas Distribuidos
Servicios de nombres
Introducción
 Propósito de los nombres
 Compartir objetos (=recursos)
 Ejemplo: archivos, usuarios, servicios, …
 Identificadores únicos
 Independencia de la localización
 Comunicación
 Alternativa a los nombres: Atributos descriptivos
Introducción
 Los nombres pueden ser leíbles por el humano,
por ejemplo: aretha.informatik.uni-siegen.de
 O, pueden ser identificadores del sistema elegidos
para una manipulación y almacenamiento
eficientes. Ejemplo: 141.99.92.8
Introducción
URL
http://www.cdk3.net:8888/WebExamples/earth.html
Búsqueda DNS
Identificador del recurso(número IP, número de puerto, ruta)
55.55.55.55
8888
WebExamples/earth.html
Servidor Web
Dirección de red
Archivo
2:60:8c:2:b0:5a
Conector
Uso de nombres
 Binding de nombres: Asociar nombre-objeto
Ejemplos: usuarios (nombres reales, nombre de
login, direcciones de email), computadoras
(nombres de host), servicios (de archivos, de
impresión)
 O más correcto: asociar nombre-atributo. Ejemplo:
DNS asocia aretha.informatik.uni-siegen.de con
141.99.92.8.
 Resolución de nombres: Hallar el objeto
referenciado por un nombre
Servicio de nombres
 Almacena un conjunto de contextos de nombres
 Bindings entre nombres textuales y atributos
de objetos
 Principal servicio: Resolución de nombres
 Otros servicios:
 Crear nuevos bindings Actualizar bindings
 Borrar bindings
 Listar nombres válidos
 Añadir/borrar contextos
 Manejar aliases
Servicio de nombres
 Motivación para separarlo de otros servicios
 Unificación
 conveniente para diferentes servicios que
usan el mismo esquema de nombres
(ej.: URLs)
 Integración
 Puede ser necesario compartir objetos
creados en diferentes dominios
 Servicio de nombres común/separado
idéntica convención de nombres 
integración más simple
Requerimientos del servicio
de nombres
 Escalabilidad
 Largo tiempo de vida
 Alta disponibilidad
 Aislación de fallas
 Tolerancia a la desconfianza
Espacio de nombres
 Conjunto de todos los nombres válidos usados en
un cierto contexto. Por ej.: todas las URLs válidas
en WWW
 Pueden ser descriptos usando una gramática
generativa. Por ej.: BNF para URLs
 Estructura interna
 Conjunto plano de identificadores numéricos o
simbólicos
 Jerárquico representando la posición. Por ej.:
sistema de archivos de UNIX
 Jerárquico representando estructura
organizacional. Por ej.:dominios de Internet
Espacio de nombres
 Potencialmente infinito
 Aliases
 En general permite que un nombre más
conveniente sustituya uno más complicado
 Dominio de elección de nombres
 Espacio de nombres para el cual existe una
única autoridad administrativa que asigne
nombres dentro de él
Atributos almacenados por
un servicio de nombres
Tipo
Valor
<login name, computadora donde se
entregan los mail, nro. TE., etc.>
Servicio
<dirección, versión del servicio>
Computadora <arquitectura, SO, dirección de red,
propietario>
Grupo
<nombre1, nombre2,…>
Alias
<nombre>
Directorio
<nombreComponente1,
nombreComponente2,…>
Usuario
Resolución de nombres
 Translación de un nombre en sus atributos
asociados
 A menudo, un proceso iterativo
 El servicio de nombres retorna los atributos si
la resolución puede ser realizada en elcontexto
del nombre (directorio)
 Si no es así el servicio envía el requerimiento a
a otro contexto
 Podría tratar con aliases que introduzcan ciclos
 Si no se obtienen resultados, aborta resolución
después de un predefinido número de intentos
Navegación
 Acceder a datos de nombres desde más de un
servidor de nombres, para resolver
 Navegación iterativa
 Usada en DNS
 El cliente contacta un servidor de nombres (NS)
 El NS resuelve el nombre o sugiere otro NS a
contactar
 La resolución continúa hasta que el nombre
es resuelto o se encuentra que el nombre es
unbound
Navegación iterativa
NS2
2
Cliente
1
NS1
Servidores de
nombres
3
NS3
Un cliente contacta de forma iterativa con los servidores
de nombres NS1-NS3 para resolver un nombre
Navegación
 No recursiva, controlada por servidor
 El servidor contacta a sus pares si no puede
resolverlo
 Por multicast o iterativamente por contacto
directo
 Recursiva, controlada por servidor
 Si el server no puede resolver contacta otro server
superior responsable, por un prefijo más extenso
del espacio de nombres
 Aplicado recursivamente hasta resolver
 Puede usarse si clientes y server de bajo nivel
no tienen derecho a contactar directamente los
de alto nivel
Navegación no recursiva
NS2
2
1
NS1
Cliente
4
3
NS3
Un cliente contacta con el servidor de nombres NS1
quien se comunica con otros servidores de nombres
representando al cliente
Navegación recursiva
NS2
2
1
Cliente
4
3
NS1
5
NS3
Un cliente de nombres NS1 se comunica con otros
servidores de nombres representando a un cliente
Cuestiones en Servicio de
nombres
 Particionado
 Un solo servidor no puede mantener todas las
entradas, nombres-atributos, para toda la
red, en particular en el caso de Internet
 Datos del servidor de nombres particionados de
acuerdo al dominio
 Replicación
 Un dominio usualmente tiene más de un
servidor de nombres
 Se mejora disponibilidad y performance
 Caching
 Los servidores pueden cachear la resolución de
nombres realizadas en otros servidores
 Evita contactar repetidamente el mismo
servidor de nombres para buscar el mismo
nombre
Internet Domain Name
System (DNS)
 Realiza el mapeo nombre-direcciones de IP
 Base de datos distribuida
 Implementada en una jerarquía de muchos
servidores de nombre
 Protocolo de la capa de aplicación
 host, routers, servidores de nombre se comunican
para resolver nombres
 Porqué no centralizar DNS?
 único punto de falla
 volumen del tráfico
 base de datos centralizada distante
 mantenimiento
 no escalable!
Servidores de nombre DNS
 Ningún servidor tiene todos los mapeos nombredirecciones de IP
 Servidores de nombres locales
 Cada compañía tiene un servidor de nombres
local (por defecto)
 Un query de un host del DNS va primero a éste
 Servidor de nombres autorizado
 Para un host: almacena nombre, dirección de
IP
 Puede realizar resolución de nombres para el
nombre de este host
 Servidor de nombres raíz
Servidores de nombre raíz
 Contactados por los servidores de nombre locales
que no pueden resolver nombres
 Servidor de nombres raíces:
 contacta los servidores de nombre autorizados
si no se conoce el mapeo de nombres
 realiza mapeo
 retorna el mapeo al servidor de nombres local
 Existen en el mundo aproximadamente una
docena de servidores de nombres raíces
Servidores de nombre raíz
Ejemplo simple de DNS
 Host db.utoronto.ca desea la dirección de IP de
malliag.math.uwaterloo.ca
 contacta su servidor de nombres local
dns.utoronto.ca
 dns. utoronto.ca contacta el servidor de
nombres raíz, si es necesario
 el servidor raíz contacta al servidor autorizado,
dns.uwaterloo.ca, si es necesario
Ejemplo simple de DNS
Ejemplo de DNS
 Servidor de nombres raíz:
 Puede no conocer el servidor de nombres
autorizado
 Puede conocer el servidor de nombres
intermediario: a quién contactar para hallar el
servidor de nombres autorizado
Ejemplo de DNS
DNS: queries iteradas
 Query recursiva
 Pone la responsabilidad de la resolución de
nombres en el servidor de nombres contactado
 Carga pesada?
 Query iterada
 El servidor contactado responde con el servidor
de nombres a contactar
 “No conozco este nombre, pero pregunte a
este servidor”
DNS: queries iteradas
Tipos de registros DNS
Tipo de registro
A
NS
CNAME
SOA
WKS
PTR
HINFO
MX
TXT
Significado
Una dirección de computador
Un servidor de nombres autorizado
El nombre canónico de un alias
Marca el comienzo de datos en una
zona
Una descripción de servicio bien
conocido
Puntero de nombre de dominio
(búsquedas inversas)
Información de host
Contenidos principales
Número IP
Nombre de dominio para un servidor
Nombre de dominio para un alias
Parámetros que gobiernan en una zona
Lista de nombres de servicio y protocolo
Nombre de dominio
Intercambio de correo
Arquitectura de la máquina y del sistema
operativo
Lista de pares <preferencia, host>
Cadena de texto
Texto arbitrario
Registros DNS - Ejemplos
 DNS mantiene registros de recursos (RR)
 Formato de RR: (nombre, valor, tipo, tt1)
 Ejemplos de registros:
 Tipo=A
 nombre=hostname
 valor= su dirección de IP
 Tipo= NS
 nombre=dominio (por ej.: foo.com)
 valor= dirección de IP del servidor de
nombres
autorizado para este dominio
 Tipo= CNAME
 nombre= es un alias para algún nombre
“canónico” (el real)
 valor= su nombre canónico
 Tipo= MX
 valor= hostname del server de mail asociado
con nombre
DNS Protocolos y mensajes
Descargar

DNS - Departamento de Sistemas e Informática