Anda di halaman 1dari 46

+

Sistemas Distribuidos
Servicios de nombres
Rodrigo Santamara

+ Servicios de nombres
!

Introduccin
! !

Definiciones URIs

! ! !

Nombres Servicios de nombres: DNS Servicios de directorio: X.500

Introduccin
!!

El uso de nombres facilita la identificacin, comunicacin y reparto de recursos


!!

En un sistema distribuido, pueden tener nombres los computadores, servicios, objetos, archivos, usuarios

!!

A veces es suficiente la identificacin por un atributo descriptivo, sin importar el nombre de la entidad Servicio de nombres: provee a los clientes de informacin sobre nombres de elementos en un sistema distribuido Servicio de directorios: provee a los clientes de informacin sobre objetos que satisfacen una determinada descripcin

!!

!!

Introduccin
Definiciones
!!

Cualquier proceso que necesite acceder a un recurso especfico debe conocer su nombre Tipos de nombres segn su legibilidad
!!

!!

Nombres legibles: interpretables por un humano !! Rutas: /etc/passwd


!! !!

URLs: http://www.cdk5.net/ Nombres de dominio en Internet: www.cdk5.net

!!

Identificadores: interpretables slo por programas

Introduccin
Definiciones
!!

Tipos de nombres segn su pureza (Needham, 1993)


!! !!

!!

Nombres puros: patrones de bits sin interpretar Nombres no puros: incluyen informacin adicional sobre el objeto que nombran (p. ej. ubicacin) Direcciones: identificacin de la localizacin del objeto pero no del objeto en s
!!

Una direccin es til pero no constituye por s sola un identificador vlido de objetos (la localizacin puede variar)

!!

Resolucin de nombres: traduccin del nombre a datos relacionados con el recurso u objeto nombrado Enlace: asociacin entre un nombre y un objeto

!!

Introduccin
Resolucin de nombres: ejemplo

Introduccin
Identificadores de Recurso Unificados (URIs)
!!

Descritos por primera vez por Berners-Lee et al. [2005]


!! !!

Cadena de caracteres corta que identifica de forma nica un recurso Generalmente, son accesibles desde una red o sistema !! Deben ser lo suficientemente uniformes como para que cualquier software comn los pueda usar (p.ej. navegadores)

!!

Tipos de URI
!! !! !!

URL (Uniform Resource Locator): URI con informacin para localizar y acceder a un recurso ~direccin de una persona URN (Uniform Resource Name): URI utilizada como nombre identificador de recurso ~nombre de una persona URC (Uniform Resource Characteristics): URI utilizada como metainformacin sobre un recurso (restricciones de acceso, propietario, codificacin, tamao, etc.)

Introduccin
URI: sintaxis
!!

URI (genrico) " esquema:jerarqua[?peticin][#fragmento]!


!!

Esquema: informacin sobre el protocolo de acceso !! http, https, ftp, file, dns, geo, mailto, info, urn, Jerarqua: informacin jerrquica del nombre del recurso !! animal:mamfero:ratn:nariz Peticin: informacin opcional no jerarquizada Organizada en pares clave=valor, separados por ; o & Fragmento: informacin opcional sobre una localizacin secundaria dentro del recurso !! Si el recurso es un documento HTML, suele referirse a un tag
!!

!!

!!

!!

Introduccin
URL vs URN vs URI
!!

Una URL suele contener una URN (localizacin con nombre)


!!

Y una URN puede contener una URL (nombre con localizacin)

!! !!

W3C recomienda referirse genricamente a URIs URL, URN y URC utilizan la sintaxis de URI
!! !! !!

URL aade la informacin de localizacin en la jerarqua URN incorpora el nombre y espacio de nombres en la jerarqua URC se puede especificar mediante peticiones

Introduccin
URIs: ejemplos

URL
foo://usuario:password@ejemplo.com:8042/esta/es/la/ruta/index.htm?tipo=animal&nombre=rata#nariz usuario autoridad esquema jerarqua urn:ejemplo:animal:rata:nariz jerarqua host puerto ruta peticin fragmento

URN

Introduccin
Servicios de nombres
!!

Gestionan informacin sobre una coleccin de nombres


!!

En forma de enlaces entre los nombres y los atributos de las entidades a las que se refieren La coleccin suele estar dividida jerrquicamente en contextos

!!

!!

El servicio de nombres se separa de otros servicios principalmente por su exposicin en sistemas distribuidos
!!

Unificacin: es conveniente que un recurso utilizado por distintos servicios tenga el mismo esquema de nombre Integracin: no es fcil predecir quin va a hacer uso de un recurso. Sin un servicio comn de nombres, cada dominio utilizara una convencin de nombrado distinta

!!

Introduccin
Servicios de nombres: requisitos
!!

Inicialmente
!!

Enlazar nombres con direcciones en una nica LAN o WAN

!!

Con la interconexin de redes e incremento de la escala, la correspondencia nombre-direccin se complica


!!

Por ejemplo, los requisitos del Global Name Service (GNS - 1986)
!! !! !! !! !! !!

Gestionar un nmero arbitrario de nombres Dar servicio a un nmero arbitrario de organizaciones Dar servicio durante mucho tiempo (cambios de nombres, etc.) Alta disponibilidad (gran parte del sistema depende del GNS) Aislamiento de fallos (fallo local no provoca fallo del sistema) Tolerancia a la ausencia de autenticacin

+ Servicios de nombres
! !

Introduccin Nombres
! !

Espacio de nombres y dominios Resolucin de nombres y navegacin

! !

Servicios de nombres: DNS Servicios de directorio: X.500

Nombres
Espacio de nombres
!!

Coleccin de todos los nombres vlidos reconocidos para un servicio particular


!!

Requieren de una definicin sintctica

!!

Generalmente, tienen una estructura jerarquizada


!! !! !!

Alto grado de escalabilidad Posibilidad de gestin separada de cada contexto/jerarqua Ejemplos


!! !! !!

Organizaciones: nombres de dominio (www.usal.es) Directorios: rutas de fichero (/etc/passwd) URLs: jerarqua de organizaciones+directorios

Nombres
Dominios
!!

Un dominio es un espacio de nombres para el que existe una nica autoridad administrativa responsable de asignar nombres
!!

Todos los nombres en dicho dominio llevan como sufijo el dominio


!!

P. ej. el dominio usal.es contiene a roble.usal.es

!!

El administrador del dominio (usal.es) puede dar de alta nombres en su espacio (p. ej. roble.usal.es)
!!

pero el propio nombre del dominio (usal.es) debe haberse acordado con la autoridad de nivel superior (es)

Nombres
Nombres de dominio
!! !!

Nombres dentro de un dominio Sintaxis: elementos separados por .


!! !! !! !!

Cada elemento se refiere a un dominio o mquina No sensibles a maysculas/minsculas Hasta 127 niveles o 253 caracteres Se usan siempre nombres absolutos
!!

Aunque un cliente puede mantener una lista de prefijos/sufijos de dominio que aade automticamente a cualquier nombre !! cdk5.net " www.cdk5.net
!!

roble " roble.usal.es

Nombres
Resolucin de nombres
!!

Proceso iterativo por el que se va interpretando un nombre en los contextos de su jerarqua


!!

Ejemplo en la ruta /etc/passwd !! etc es presentado al contexto /


!!

passwd es presentado al contexto /etc

!!

En el caso de servicios tipo DNS, la base de datos es muy extensa " no est almacenada en un nico servidor
!!

Navegacin: proceso de resolucin de nombres cuando hay ms de un servidor implicado

Nombres
Navegacin iterativa
El cliente pregunta por la direccin al servidor de nombres local (NS1)
!!

!!

Si no la conoce, el servidor sugiere un nuevo servidor al que preguntar (NS2) El proceso contina hasta que el cliente pregunta a un servidor que conoce la direccin

!!

!!

Variante: navegacin multicast


!!

El cliente multidifunde su peticin a todo un grupo se servidores a la vez

Nombres
Navegacin coordinada por un servidor

!!

No recursiva: como la navegacin iterativa, pero gestionada por un servidor. Es el tipo de navegacin usada por DNS Recursiva:
!!

!!

El cliente pide una direccin a un servidor NS1 que se hace cargo de su bsqueda preguntando a NS2 Si NS2 no la conoce, NS2 se hace cargo de la bsqueda preguntando a NS3, etc.

!!

Nombres
Tipos de navegacin
!!

El cliente puede no tener permisos para acceder a nombres de servidores remotos


!!

Por ello la necesidad de un mtodo coordinado por un servidor

!!

Incluso un servidor de nombres puede no tener permisos para acceder a otros servidores
!!

Por ello la necesidad de un mtodo coordinado recursivo

Nombres
Cachs
!!

El software de navegacin (en cliente o servidor) mantiene una cach de nombres resueltos en anteriores consultas
!! !!

Si la peticin se encuentra en cach, la devuelve Si no, contina con la navegacin (los nuevos servidores consultados tambin harn usos de sus cachs)

+ Servicios de nombres
! ! !

Introduccin Nombres Servicios de nombres: DNS


! !

Arquitectura Resolucin de nombres

Servicios de directorio: X.500

DNS
Domain Name System
!!

Servicio de nombres para cualquier computador, servicio o recurso conectado a Internet o a una red privada
!!

Diseado por Paul Mockapetris en 1983

!!

Anteriormente se usaba un fichero HOSTS.TXT que contena los enlaces del nombre de domino al nombre IP
!! !!

No escalable NOTA: este fichero an existe (Unix), generalmente mapea por defecto 127.0.0.1 a localhost

!!

Resolucin de nombres: host (nombre de domino) " IP

DNS
Servidores DNS
!!

Contienen una fraccin de la base de datos de nombres/IPs, correspondiente a un determinado dominio


!! !!

!!

Referencias para el dominio local (la mayor parte) Referencias a otros servidores para resolver direcciones de objetos fuera del domino local Referencias de cach

!!

Replicacin: puede haber ms de un servidor DNS para el mismo dominio

DNS
Subdominios y zonas
!!

El espacio de nombres de un dominio puede dividirse a su vez en subdominios Si se ha delegado la responsabilidad administrativa del subdominio, constituye una zona, que cuenta con sus propios servidores DNS
!!

!!

Las referencias de una zona DNS no se almacenan en los servidores del dominio que la contiene

DNS
Zonas
Dominio raz Algunos subdominios como ca.bc o ca.sk no han sido delegados (quizs las autoridades no estn preparadas para su gestin, o no quieren romper la unidad del subespacio) y no constituyen zonas

El subdominio berkeley.edu es tambin una zona, y se divide en otras zonas, cada una con sus propios servidores DNS

Dominio base o top-level domain (TLD)

http://docstore.mik.ua/orelly/networking_2ndEd/dns/ch02_04.htm

Los nombres de los servidores estn en cursiva Los dominios correspondientes estn entre parntesis Las flechas indican entradas en el servidor de nombres

DNS

Jerarqua de servidores DNS

DNS
Servidores raz
!!

Responden directamente a peticiones en la zona raz y redirigen otras peticiones a servidores del domino base (o inferiores) apropiado Hay 13 servidores raz, con nombres letra.root-servers.net
!! !!

!!

!!

Donde letra va de la A a la M Estn replicados, y 9 de ellos operan en varias zonas geogrficas !! Originalmente 10 operaban en USA, 2 en Europa y 1 en Japn Cada uno es gestionado por una entidad !! Universidades (Maryland, USC) !! Gobierno de EEUU (NASA, US army, DISA) !! Empresas (Verisign -2-, Cogent, Netnod) !! Organizaciones (ISC, WIDE, RIPE, ICANN)

DNS
Servidores Raz

DNS
Autoridades relacionadas
!!

NIC (Network Information Center)


!!

Operador que mantiene la base de datos de nombres de dominio base (.es, .com., .uk) y sus zonas !! www.nic.es, www.nic.uk, etc.

!!

InterNIC (Internet Network Information Center)


!!

Entidad coordinadora de todos los NICs (1972-1998)

!!

IANA (Internet Assigned Numbers Authority)


!!

Entidad superior a InterNIC que coordina a los operadores de servidores raz (1971-1998)

!!

ICANN (Internet Corporation for Assigned Names and Numbers)


!!

Reorganizacin/unin de InterNIC e IANA (1998-)

!!

Departamento de Comercio de Estados Unidos


!!

Controla la zona raz y supervisa la ICANN

DNS
Ejercicios
!!

Cules son los nombres de los servidores DNS del dominio usal.es?
!!

Pista: www.nic.es

!!

Por qu se produce la reestructuracin de InterNIC e IANA en ICANN?


!!

Pista: Jon Postel

DNS
Solicitudes DNS
!!

Solicitudes principales
!! !!

Resolucin de nombres de host: nombre host " IP Localizacin de host de correo

!!

Otras solicitudes
!! !!

Resolucin inversa: IP " nombre host Informacin del host: arquitectura y sistema operativo del host

DNS
Servidores de agujero negro
!!

Hay rangos de direcciones IP no asignadas


!!

Una resolucin inversa DNS (IP " nombre) a una de esas direcciones implicara la consulta de dicha IP por parte del servidor DNS en busca del nombre !! Esto genera un trfico adicional innecesario
!!

Son consultas generalmente automticas, bien por redes locales mal configuradas o virus.

!!

Los servidores blackhole-1.iana.org y blackhole-2.iana.org atienden estas resoluciones inversas, dando por defecto una respuesta nonexistent address y evitando ese trfico.

DNS
Procuradores DNS (DNS resolvers)
!!

Cualquier cliente de DNS


!!

Generalmente son bibliotecas de software

!!

Aceptan peticiones, las adaptan al protocolo DNS y comunican con uno o ms servidores DNS para responderlas Usa un protocolo simple de peticin-respuesta UDP sobre Internet
!! !! !!

!!

Con un sistema de timeouts + reenvo Lista de servidores DNS alternativos si alguno no est disponible Se pueden empaquetar varias consultas o respuestas juntas

DNS
Resolucin DNS
0) El procurador DNS pregunta al servidor DNS ms cercano. Dicho servidor contiene en cach los nombres de los servidores raz 1)! El servidor raz referencia al servidor que tiene autoridad sobre el TLD (au) 2)! El servidor TLD referencia al servidor que tiene autoridad sobre el siguiente nivel (gov.au)

La resolucin DNS es una navegacin no recursiva coordinada por servidor

3)!

4)! El servidor que tiene autoridad sobre el dominio de nivel ms bajo ofrece la direccin correspondiente

DNS
Resolucin DNS y cachs
Imaginemos que se ha hecho una consulta anterior eecs.berkeley.edu
!! !!

!!

Se ha almacenado en cach la IP de eecs.berkeley.edu Se han almacenado en cach los nombres de los servidores para los dominios eecs.berkeley.edu, berkeley.edu y edu

berkeley.edu es el ancestro comn ms cercano a baobab.cs.berkeley.edu del que se tiene informacin

Time to live (TTL): tiempo mximo de permanencia de los datos en cach

DNS
Anlisis
!!

Considerando el tamao de la base de datos de nombres y el nmero de redes involucradas, DNS consigue resolver nombres en tiempos relativamente cortos
!!

Mediante una combinacin de particionado, replicacin y cachs

!!

Los objetos mayoritarios en la base de datos de nombres son computadoras (hosts), servidores y hosts de correo.
!!

Todos ellos cambian relativamente poco, as que el cach y la replicacin no merman mucho el rendimiento

!!

DNS es inconsistente: si un nombre cambia, los servidores pueden dar a sus clientes informacin antigua durante un periodo de tiempo (~das)

+ Servicios de nombres
! ! ! !

Introduccin Nombres Servicios de nombres: DNS Servicios de directorio: X.500

X.500
Servicios de directorios
!!

Un servicio de nombres almacena colecciones de pares <nombre, atributo> y busca atributos a partir de nombres
!!

Por ej. en el caso de DNS, son pares <nombre, IP>

!!

Un servicio de directorios almacena datos similares, pero tambin permite buscar nombres a partir de atributos
!!

En otras palabras, el nombre es un atributo ms

!!

Ejemplos
!! !! !!

Cul es el nombre del usuario del telfono 020-555 9980? Qu computadores de este edificio son Macs con MacOS X? Dnde puedo imprimir una imagen a color en alta resolucin?

X.500
Protocolos
!!

X.500 es una serie de protocolos para servicios de directorios, que incluye


!! !!

DAP (Directory Acess Protocol) Otros protocolos (DSP, DISP, DOP)

!!

LDAP implementa un protocolo muy similar al DAP de X.500


!!

Es una versin ms ligera (Lightweight) y que soporta comunicacin TCP/IP para permitir su uso a clientes de Internet DAP actualmente tambin soporta comunicacin TCP/IP, pero LDAP se ha hecho ms popular, principalmente entre servicios de directorio para intranets

!!

X.500
Definiciones
X.500 tiene un modelo de datos jerrquico fragmentado, que se accede mediante un modelo cliente servidor X.500 y LDAP se basan en un modelo de datos jerrquico
!! !!

!!

DIT

!!

Directory Information Tree (DIT) Directory Information Base (DIB)

!!

El DIT se encuentra fragmentado en distintos servidores


!!

Directory Service Agents (DSA)

!!

Los clientes se llaman Directory User Agents (DUA)

X.500
DIB
!!

Cada nodo del DIT tiene una entrada en la DIB

X.500
Solicitudes de acceso
!!

read(nombre, listaAtributos)
!! !!

nombre: identificador de una entrada DIB listaAtributos: atributos solicitados de la entrada (o todos)

!!

search(nodo, expresin)
!! !!

nodo: nodo del DIT por debajo del cual se har la bsqueda expresin: expresin booleana basada en atributos a evaluar por cada nodo

!!

La solicitud search puede ser costosa computacionalmente


!! !!

Limitar la porcin del DIT al que se aplica Limitar el nmero de entradas devueltas o el tiempo de bsqueda

Referencias
!!

G. Colouris, J. Dollimore, T. Kindberg and G. Blair. Distributed Systems: Concepts and Design (5th Ed). Addison-Wesley, 2011
!!

Captulo 13

!!

P. Albitz and C. Liu. DNS and BIND (3rd Ed). OReilly, 1998
!!

Especialmente el captulo 2: http://oreilly.com/catalog/dns3/chapter/ch02.html

http://xkcd.com/195/