Sunteți pe pagina 1din 64

Sistemas Distribuidos

Servicio de Nombres

ndice
Introduccin Servicio de nombres
Estudio de un ejemplo prctico: DNS

Servicio de directorio
Estudio de un ejemplo prctico: LDAP

Descubrimiento de servicios

Sistemas Distribuidos 2

Fernando Prez Costoya

Una historia basada en hechos reales


Quiero contactar con persona en un contexto para pedirle algo
Contexto: una organizacin, una ciudad, un pas, el mundo, ... Necesito su direccin de contacto (p.e. n telfono en ese contexto) Nombre (quin) [permanente] Direccin (dnde) [transitorio]

Servicio telefnico pginas blancas (Servicio de nombres)


Necesito conocer n telfono de servicio de gua del contexto dado Y especificar la persona con nombre unvoco en ese contexto
Nombre/apellidos | n empleado | n DNI

Gua proporciona nivel de indireccin respecto a direccin contacto


Permite que persona cambie n tfno (cuidado con agenda-cach)

Puede requerirse cadena de consultas; n tfno empleado?:


1 obtengo n tfno empresa; 2 centralita empresa me da tfno empleado
Sistemas Distribuidos 3 Fernando Prez Costoya

Una historia basada en hechos reales


Nombres y direcciones suelen tener carcter jerrquico
Facilita su administracin y gestin Ejs. Nombres: ID empleado internacional (ISBN, cuenta bancaria, ...)
Cambio de recurso en jerarqua puede invalidar el nombre

Ejs. Direcciones: n telfono o direccin postal Encaminamiento jerrquico

A veces quiero contactar con cualquiera que d un servicio


Necesito conocer condiciones de servicio para elegir

Servicio telefnico pginas amarillas (Servicio de directorio) Y si ni siquiera s n tfno. de servicios de gua (o no los hay)?
Quizs debera gritar pidiendo ayuda Descubrimiento de servicios
Sistemas Distribuidos 4 Fernando Prez Costoya

URI: Uniform Resource Identifier


2 tipos de identificadores de recursos URIs en Internet:
Nombres URNs y direcciones URLs

Uniform Resource Name: Nombre (qu) [permanente]


Identifican recurso sin incluir informacin de localizacin Requiere un proceso de traduccin

Uniform Resource Locator: Direccin (dnde) [transitorio?]


Pueden verse afectados si recurso se mueve

Ejemplos wikipedia URN vs. URL


urn:ietf:rfc:3187 http://tools.ietf.org/html/rfc3187.html

Sistemas Distribuidos 5

Fernando Prez Costoya

Ejemplo: Niveles de traduccin de URL


http://www.datsi.fi.upm.es/informacion.html
DNS

IP 138.100.9.2 | Puerto 80 TCP


ARP httpd

00:06:5B:F0:2B:F1 URL queda invlido slo si cambio dominio o puerto


Sistemas Distribuidos 6

/usr/local/apache/htdocs/informacion.html
SF

Disco 0; particin 5; inodo 74431


Fernando Prez Costoya

Servicio de nombres
Nombre de entidad en SD punto(s) de acceso a la entidad
Sockets: Dir(s) IP+ puerto(s)+ protocolo(s) RMI o CORBA: referencia(s) a objeto(s)

Nombre permite referirse a una entidad nica en SD Hay diversos tipos de entidades en SD

Aunque puede estar replicada (p.e. fichero en Coda) y puede haber varios nombres para la misma entidad (alias) ficheros, usuarios, grupos, procesos, dispositivos, mquinas, ...

Serv. de nombres especficos para algunos tipos de entidades


para ficheros (SFD), para mquinas (DNS), ...

Ideal: servicio de nombres integral para todas las entidades


Excepto ficheros por gran volumen y frecuencia de actualizaciones
Sistemas Distribuidos 7 Fernando Prez Costoya

Jerarqua de nombres
SD incluye muchas entidades muy diversas
Como SFD, organizacin jerrquica facilita asignacin y gestin
Impresoras de distintos departamentos con el mismo nombre

Espacio de nombres jerrquico


Entidades contenedoras de otras entidades (directorios)

Traduccin de nombres (pathnames):


Proceso iterativo que parte de un nodo inicial
Necesidad de conocer traduccin de nodo inicial Absoluta (nodo raz) vs. Relativa (nodo intermedio)

Proceso costoso: Uso de cach en traduccin


Informacin invlida si migracin

Alternativa: 2 niveles de traduccin (p.e. AFS)


Sistemas Distribuidos 8

pathname ID interno (servicio de nombres) ID interno punto de acceso a entidad (servicio de localizacin)
Fernando Prez Costoya

Interfaz de servicio de nombres


Operaciones del servicio de nombres (p.ej. CORBA)
Asociar nombre (path) a entidad
bind(Nombre, Referencia_objeto)

Desasociar nombre de entidad


unbind(Nombre)

Traducir nombre
resolve(Nombre)

Crear nuevo directorio (contexto en CORBA)


bind_new_context(Nombre_dir)

Listar directorio
list(...)

Nombre interpretado respecto a un directorio (contexto) inicial


Dir_root.resolve(path)

CORBA dispone tambin de servicio de directorio (trading)


Sistemas Distribuidos 9 Fernando Prez Costoya

Implementacin de espacio de nombres


Servidor de nombres nico:
Problemas de escala, rendimiento y fiabilidad

Tres tcnicas para paliarlos:


Cach de traducciones Distribucin de espacio de nombres Replicacin de espacio de nombres

Cach de traducciones:
Problema de coherencia En DNS: No hay garanta
Servidor retorna TTL (tiempo de vida) de informacin

Sistemas Distribuidos 10

Fernando Prez Costoya

Distribucin y replicacin
Espacio de nombres partido y distribuido entre servidores
Posibilita administracin distribuida Iterativa, Transitiva y Recursiva

Se requiere info. que monte particiones para formar rbol nico Cada particin gestionada por (al menos) un servidor Mismas alternativas de navegacin que en SFD

Particin replicada en varios servidores

Fiabilidad y rendimiento, pero hay que asegurar coherencia Esquema simtrico: Esquema asimtrico: 1 primario y N secundarios
Modo push o pull

Consulta a cualquier rplica Actualizacin simultnea en todas las rplicas

Consulta a cualquier rplica Actualizacin en primario con propagacin a rplicas


Fernando Prez Costoya

Sistemas Distribuidos 11

Domain Name System (DNS)


Servicio de nombres de mquinas en Internet: nombre IP
No es un servicio de nombres general pero es ilustrativo

Espacio de nombres de DNS


Nombre: secuencia de dominios (directorios)
www.datsi.fi.upm.es. . + es + upm + fi + datsi Dominio raz: . Dominios nivel superior genricos (com, edu, ...) o por pas

Cada dominio contiene resource records (RR)


Nombre www.google.es. www.google.com. www.l.google.com. www.l.google.com. www.l.google.com.
Sistemas Distribuidos 12

TTL 311901 483176 277 277 277

Clase Tipo IN CNAME IN CNAME IN A IN A IN A

Valor www.google.com. www.l.google.com. 66.102.9.104 66.102.9.147 66.102.9.99


Fernando Prez Costoya

Algunos tipos de Resource Records


SOA (Start of Authority): Comienzo de definicin de una zona A (IPv4) y AAAA (IPv6): Direccin de mquina CNAME: Nombre cannico Alias MX: Servidor correo para dominio (por orden de preferencia) NS: Servidor nombres (para dominio o subdominio delegado) PTR: Traduccin inversa direccin IP Nombre SRV: Asocia servicio a mquina y puerto

Ejemplo de wikipedia: _service._proto.name TTL CL TIPO prio weight port target _sip._tcp.example.com. 86400 IN SRV 0 5 5060 sipsv.example.com.
Sistemas Distribuidos 13 Fernando Prez Costoya

Zonas de DNS
Espacio de nombres distribuido en particiones (zonas)
Cada zona gestionada por al menos 1 serv. primario y N secundarios
RR de tipo NS especifica servidores de dominio

Un mismo servidor puede gestionar varias zonas Fichero de zona (slo en primarios): Contiene los RR de un dominio
Puede incluir RR de subdominios Subdominios virtuales Pero habitual: subdominio tiene su propia zona delegacin

Delegacin de zonas: dominio padre incluye punto de montaje


NS: Nombre de subdominio Servidor que lo gestiona
Podra ser el mismo que para el padre

Si servidor de subdominio (Ssub) pertenece a subdominio


Padre incluye dir. de Ssub (glue record) (problemas de coherencia)

Sistemas Distribuidos 14

Fernando Prez Costoya

Extracto de zona upm.es.


IN SOA einstein.ccupm.upm.es. hostmaster.upm.es. 2008032501 86400 7200 2592000 172800 Clase Internet; Start Of Authority; S. primario; responsable; n de serie (++por cada cambio); Periodo de actualizacin de secundario; Tiempo de reintento de secundario antes actualizacin fallida; Tiempo de expiracin de info. de secundario ante actualizacin fallida; TTL mnimo Dominio upm.es. upm.es. upm.es. upm.es. fi.upm.es. zape.fi.upm.es. eui.upm.es. fenix.eui.upm.es. etsia.upm.es. ccupm.upm.es. www.upm.es. TTL Clase Tipo Valor NS NS MX MX NS A NS A NS NS einstein.ccupm.upm.es. galileo.ccupm.upm.es. 10 relay.upm.es. 20 relay2.upm.es. zape.fi.upm.es. 138.100.8.1 fenix.eui.upm.es. 138.100.152.2 einstein.ccupm.upm.es. einstein.ccupm.upm.es. Comentario Servidor primario Servidor secundario S. de correo preferente S. de correo secundario S. de subdominio (padre) Glue record S. de subdominio (padre) Glue record S. de subdominio (=padre) S. de subdominio (=padre) Alias
Fernando Prez Costoya

86400 IN 86400 IN 86400 IN 86400 IN 86400 IN 86400 IN 86400 IN 86400 IN 86400 IN 86400 IN 86400 IN

CNAME newton.ccupm.upm.es

Sistemas Distribuidos 15

Extracto de zona fi.upm.es.


IN fi.upm.es. fi.upm.es. fi.upm.es. goofy.fi.upm.es. ns.fi.upm.es. zape.fi.upm.es. www.fi.upm.es. www.fi.upm.es. raticulin.fi.upm.es. backup.fi.upm.es. fi.upm.es. fi.upm.es. datsi.fi.upm.es. datsi.fi.upm.es. datsi.fi.upm.es. SOA goofy.fi.upm.es. hostmaster.fi.upm.es. 2008031703 28800 7200 2592000 86400 3600 IN 3600 IN 3600 IN 3600 IN 3600 IN 3600 IN 3600 IN 3600 IN 600 60 60 IN IN IN 3600 IN NS NS NS A A A A A A CNAME MX MX NS NS NS goofy.fi.upm.es. ns.fi.upm.es. zape.fi.upm.es. 138.100.8.23 138.100.240.2 138.100.8.1 138.100.8.70 138.100.8.71 138.100.8.43 raticulin.fi.upm.es. 10 relay.fi.upm.es. 100 relay.upm.es. goofy.fi.upm.es. ns.fi.upm.es. zape.fi.upm.es. Servidor primario Servidor secundario Servidor secundario Direccin de mquina Direccin de mquina Direccin de mquina Direccin de mquina Direccin de mquina Direccin de mquina Alias Servidor de correo preferente Servidor de correo secundario Servidor de subdominio (=padre) Servidor de subdominio (=padre) Servidor de subdominio (=padre)
Fernando Prez Costoya

3600 IN 3600 IN 3600 IN

Sistemas Distribuidos 16

Mantenimiento de info. de zona


Sincronizacin de secundarios
Secundario pide info. zona a primario
Peridicamente (p.e. 1 vez/da) O cuando primario avisa de cambios (NOTIFY)

Si cambio: transferencia completa (AXFR) o incremental (IXFR)

Actualizacin de DNS:
Cambio en fichero de zona y reinicio de primario Dynamic DNS: Protocolo DNS incluye ops. para actualizar zona
Aadir, modificar y borrar RR pero no crear nuevas zonas Importante aspectos de seguridad

Sistemas Distribuidos 17

Fernando Prez Costoya

Estructura de nombres en Internet


Hay 13 servidores de dominio raz (.) replicados
Desde a.root-servers.net hasta m.root-servers.net 13 porque esa informacin cabe en paquete UDP
DNS usa UDP (53); y slo TCP(53) cuando tamao lo aconseja

Problemas de escalabilidad?
Detrs de cada uno hay mltiples servidores (uso de anycast)

Incluyen NS de dominios de nivel 1 y glue records Cada serv. DNS tiene dir. de servidores raz (fichero root.servers)
Se debe actualizar peridicamente (p.e. 1 vez al ao)

Servidores dominios nivel 1: NS y glue records de los de 2,...

Sistemas Distribuidos 18

Fernando Prez Costoya

Estructura de nombres en Internet


a.root-servers.net.
es. ns1.nic.es. 172800 IN 172800 IN 7200 7200 86400 86400 IN IN IN IN NS ns1.nic.es. A 194.69.254.1 NS galileo.ccupm.upm.es. A 138.100.4.4 NS zape.fi.upm.es. A 138.100.8.1

ns1.nic.es.
upm.es. galileo.ccupm.upm.es. fi.upm.es. zape.fi.upm.es.

galileo.ccupm.upm.es.

Sistemas Distribuidos 19

Fernando Prez Costoya

Traduccin en DNS
Servidor DNS debe ofrecer naveg. iterativa; recursiva opcional Diversos tipos de servidores de nombres:
Primario, secundario, slo cach (nonauthoritative)

Operacin de traduccin (www.fi.upm.es)

Aplicacin pide a resolver traduccin de nombre de mquina Si configurado uso de DNS (/etc/nsswitch.conf)

gethostbyname(www.fi.upm.es) o getaddrinfo (www.fi.upm.es, ...) Resolver contacta con servidor de nombres SN (/etc/resolv.conf) Requiere direccin IP de SN

2 posibles situaciones en la traduccin:

Dominio de SN es subcadena de nombre (p.e. SN gestiona upm.es.) En caso contrario (p.e. SN gestiona miempresa.com.)
Hay que traducir todo el camino desde dominio raz SN, y delegados si necesario, traducen el camino restante

Sistemas Distribuidos 20

Fernando Prez Costoya

Esquema de traduccin

Pro DNS and BIND Ron Aitchison (Apress)


Sistemas Distribuidos 21 Fernando Prez Costoya

Traduccin desde dominio raz


Secuencia de operaciones (supuestos: iterativa y cach vaca)
SN contacta con Ses: obtiene dir. de un s. nombres de upm. (Supm) SN contacta con Supm: obtiene dir. de un s. nombres de fi. (Sfi) SN contacta con Sfi: obtiene dir. de mquina pedida
zape.fi.upm.es. (138.100.8.1) www.fi.upm.es. (138.100.8.70) ns1.nic.es. (194.69.254.1) galileo.ccupm.upm.es. (138.100.4.4) galileo.ccupm.upm.es. (138.100.4.4) zape.fi.upm.es. (138.100.8.1) a.root-servers.net (198.41.0.4 ) ns1.nic.es. (194.69.254.1)

SN contacta con un s. raz: obtiene dir. de un s. nombres de es. (Ses)

Informacin en cach para la prxima vez:

Traduccin de backup.fi.upm.es slo requiere el ltimo paso Uso de TTL: no garantiza coherencia (info. non-authoritative)

Sistemas Distribuidos 22

Fernando Prez Costoya

Traduccin desde dominio no raz


SN (ns.fi.upm.es.) gestiona dominio pedido (fi.upm.es.)
Retorna directamente traduccin www.fi.upm.es. (138.100.8.70)

SN (galileo.ccupm.upm.es.) gestiona dominio padre (upm.es.)


Encuentra registro NS (y glue record) para un s. nombres de fi. (Sfi)
zape.fi.upm.es. (138.100.8.1)

SN contacta con Sfi: obtiene dir. de mquina pedida


zape.fi.upm.es. (138.100.8.1) www.fi.upm.es. (138.100.8.70)

Si varias entradas A/AAAA o CNAME satisfacen una consulta


Se retornan todas a la aplicacin, que usa la que quiere
Habitualmente la primera de la lista Por ello, algunos servidores van rotando la lista (Round-robin DNS)
Sistemas Distribuidos 23 Fernando Prez Costoya

Traduccin inversa
IP nombre (gethostbyaddr: 138.100.8.70www.fi.upm.es.) Gestionada tambin por DNS: dominio especial in-addr.arpa.
Traducir 138.100.8.70 70.8.100.138.in-addr.arpa. Servidores raz incluyen NS de *.in-addr.arpa. y as sucesivamente Traduccin final usa registro PTR en vez de A
a.root-servers.net.
138.in-addr.arpa. 86400 86400 86400 86400 IN IN IN IN NS chia.arin.net. NS galileo.ccupm.upm.es. NS zape.fi.upm.es. PTR web1.fi.upm.es.
Fernando Prez Costoya

chia.arin.net.
100.138.in-addr.arpa.

galileo.ccupm.upm.es.
8.100.138.in-addr.arpa.

zape.fi.upm.es.
70.8.100.138.in-addr.arpa.
Sistemas Distribuidos 24

ndice
Introduccin Servicio de nombres
Estudio de un ejemplo prctico: DNS

Servicio de directorio
Estudio de un ejemplo prctico: LDAP

Descubrimiento de servicios

Sistemas Distribuidos 25

Fernando Prez Costoya

Servicio de directorio
Punto de acceso es slo uno de los atributos de una entidad
Pueden gestionarlos servidores especficos
Servicio de impresin gestiona informacin de impresoras Nombre impresora modelo, color, ubicacin, formatos soportados, ...

Problema: Duplicidad de funcionalidad

Solucin: Generalizacin del servicio de nombres


Nombre conjunto de atributos de la entidad

Aplicable a entidades de infraestructura del SD y de negocio


En FI: alumnos, profesores, ttulos, asignaturas, dptos., servicios, ... Repositorio de informacin de entidades de SD
Sun: globalizacin de /etc Network Information System (NIS)

Servicio de directorio (Sdir):


No todo atributo Sdir: no incluir atributos muy dinmicos
Tamao cola de trabajos debera gestionarlo el servicio de impresin
Sistemas Distribuidos 26 Fernando Prez Costoya

Tipos de resolucin de nombres


Convencional (Pginas blancas): nombre atributos Por atributos (Pginas amarillas): atributos entidades Parmetros tpicos en resolucin por atributos:
Nodo de inicio de bsqueda (base)
P.e. Slo buscar entidades en determinada sucursal de la empresa

Quiero imprimir fichero en impresora en color cerca de mi despacho

Profundidad de la bsqueda (sub-rbol, hijos directos, slo base, ...) Criterio/filtro de bsqueda:
Funcin lgica que deben satisfacer las entidades buscadas P.e. Impresoras en color que estn ubicadas en el tercer piso

Lmite de tiempo de bsqueda N mximo de entidades que se retornarn Atributos que se retornarn de las entidades seleccionadas
Sistemas Distribuidos 27 Fernando Prez Costoya

Tipos de entidades gestionadas


Qu tipos de entidades gestiona un servidor de nombres? Predeterminado:
Tipos de entidades predefinidas

Configurable:
Existe un mecanismo para definir los tipos de las entidades
hay que definir: nombre del tipo, atribs., tipos de los atribs., etc.

Separacin entre definicin de tipos de entidades y de entidades


Similitud con base de datos: esquemas y datos Similitud con POO: clases y objetos

Extensible: tipos predefinidos pero se pueden definir adicionales


Puede ser til la herencia (simple o mltiple)

Sistemas Distribuidos 28

Fernando Prez Costoya

Serv. directorio vs. Base de datos


Hay alguna similitud
Repositorio de informacin Permite bsqueda sofisticada

Pero muchas diferencias. Servicio de directorio:


Muchas consultas pero muy pocas modificaciones Transacciones muy simples Uso de esquemas estndar, siempre que sea posible Ms facilidad para cambiar esquemas para datos ya creados
P.e. Aadir a profesor FI asignaturas que imparte

Ms adecuado para datos jerrquicos Datos con mltiples valores para cada atributo Si datos replicados, no requiere coherencia estricta

Aunque muchos Sdir implementados con una base de datos


Sistemas Distribuidos 29 Fernando Prez Costoya

Lightweight Directory Access Protocol


Precedente: X.500 servicio de directorio de ISO
Concebido para ser un directorio mundial Complejo Pesado: Ejecuta sobre la pila OSI Protocolo de acceso DAP (Directory Access Protocol) Basado en X.500 Ms sencillo Ms ligero: ejecuta sobre la pila TCP/IP Es un protocolo pero define implcitamente un modelo de datos
No define aspectos de implementacin

LDAP (Lightweight Directory Access Protocol, RFC 4510)

Distintos sistemas ofrecen una interfaz LDAP (p.e. Active Directory) Actualmente versin 3
Sistemas Distribuidos 30 Fernando Prez Costoya

Objetos y clases
Entidad Objeto (entrada) en LDAP
Orientado a objetos: Objeto Clase (atributo objectClass) Tipo del atributo | obligatorio(ob) u optativo(op) | valor nico o mltiple

Clase define conjunto de atributos del objeto Herencia: clases forman una jerarqua (top raz de jerarqua)
Clase derivada hereda atributos de superclases

Tipos de clases:
Abstracta (AB): no pueden definirse objetos de esa clase (p.e. top) Estructural (ES): Objeto Una y solo una clase estructural
No puede cambiar la clase estructural de un objeto

Auxiliar (AU): Objeto puede estar asociado a varias clases auxiliares


Pueden aadirse dinmicamente: Facilitan extensin de objetos

Superclase(ES)=ES|AB; Superclase(AU)=AU|AB
Sistemas Distribuidos 31 Fernando Prez Costoya

Ejemplos de clases
top: raz; AB; ob: objectClass person: top; ES; ob: cn, sn; op: telephoneNumber, ... residentialPerson: person; ES; ob: l; op: postalAddress, ... organization: top; ES; ob: o; op: postalAddress, ... organizationalUnit: top; ES; ob: ou; op: postalAddress, ... dcObject: top; AU; ob: dc (valor nico) device: top; ES; ob: cn; op: serialNumber, o, ou, owner, ... groupOfNames: top; ES; ob: cn, member; op: o, ou, ... alias: top; ES; ob: aliasedObjectName referral: top; ES; ob: ref
Fernando Prez Costoya

Sistemas Distribuidos 32

Extracto de mi entrada en LDAP de FI


Formato de texto LDIF (LDAP Data Interchange Format): protocolo LDAP es binario objectClass: inetOrgPerson objectClass: posixAccount objectClass: fiEmployee objectClass: sambaSamAccount cn: Fernando Perez Costoya cn: F. P. Costoya sn: Perez Costoya telephoneNumber: 913367377 mail: fperez@fi.upm.es uid: fperez uidnumber: .... gidNumber: .... irisUserStatus: Activo fiRelationShip: pdi fiTeaching: ...... sambaSID: .....
Sistemas Distribuidos 33

estructural (toppersonorganizationalPersoninetOrgPerson) auxiliar (top posixAccount) auxiliar (top irisPerson fiPerson fiEmployee) auxiliar (top sambaSamAccount )

person

organizationalPerson inetOrgPerson

posixAccount irisPerson fiPerson sambaSamAccount


Fernando Prez Costoya

fiEmployee

Extracto de entrada FI en LDAP de FI


objectClass: dcObject auxiliar (top dcObject) objectClass: organization estructural (top organization) objectClass: labeledURIObject auxiliar (top labeledURIObject) dc: fi atributo especfico de dcObject o:: RmFjdWx0YWQgZGUgSW5mb3Jtw6F0aWNhIC0gVVBN postalCode: 28660 l: Boadilla del Monte st: Madrid labeledURI: http://www.fi.upm.es atributo especfico de labeledURIObject telephoneNumber: +34 913367399 Decodificacin de base 64 o: Facultad de Informtica UPM
Sistemas Distribuidos 34 Fernando Prez Costoya

Modelo de nombres
Entrada tiene un nombre: Relative Distinguished Name (RDN)
1 o ms atributos de la entrada que la hacen nica entre hermanos
uid=fperez (ej. mltiples: cn=Fernando Perez Costoya+dni=76543210)

Jerarqua de nombres (Directory Information Tree, DIT)


Nombre completo (path): Distinguished Name (DN)
RDN de la entrada + DN del padre (separados por comas) No confundir con jerarqua de clases Similar a SF pero directorios tambin tienen informacin asociada
dn: uid=fperez,ou=personal,dc=fi,dc=upm,dc=es

Nombre del objeto raz (sufijo o base): a discrecin


Convenio: a partir de dominio DNS usando clase auxiliar dcObject

Servidor LDAP gestiona 1 ms DIT Servidor devuelve metainformacin en objetos/atrib. operacionales


DIT gestionados por el servidor, esquemas soportados, ...
Sistemas Distribuidos 35 Fernando Prez Costoya

Dominio: fi.upm.es dn: dc=fi,dc=upm,dc=es

Extracto de rama del DIT del LDAP de FI


# fi.upm.es dn: dc=fi,dc=upm,dc=es dc: fi objectClass: dcObject objectClass: organization ............................................................................................................... # personal, fi.upm.es dn: ou=personal,dc=fi,dc=upm,dc=es ou: personal objectClass: organizationalUnit dn: uid=fperez,ou=personal,dc=fi,dc=upm,dc=es uid: fperez ..............................................................................................................
Sistemas Distribuidos 36 Fernando Prez Costoya

Extracto de rama del DIT del LDAP de FI


dc: fi objectClass: dcObject objectClass: organization o:: RmFjdWx0YWQgZGUgSW5mb3Jtw6F0aWNhIC0gVVBN dn: dc=fi,dc=upm,dc=es postalCode: 28660 l: Boadilla del Monte st: Madrid .......................................

dn: ou=personal,dc=fi,dc=upm,dc=es

ou: personal objectClass: organizationalUnit

objectClass: inetOrgPerson objectClass: posixAccount cn: Fernando Perez Costoya cn: F. P. Costoya sn: Perez Costoya telephoneNumber: 913367377 mail: fperez@fi.upm.es roomNumber: 4201 departmentNumber: DATSI uid: fperez ...........................................................

dn: uid=fperez,ou=personal,dc=fi,dc=upm,dc=es

Sistemas Distribuidos 37

Fernando Prez Costoya

Distribucin y replicacin
Espacio de nombres distribuido usando referrals
Objeto en DIT especifica punto de montaje No definido el modelo de navegacin
Implementacin ms habitual iterativa Aunque tambin recursiva (chaining)

Replicacin de espacio de nombres no definida por estndar


OpenLDAP admite dos esquemas:
Maestro-esclavo: asimtrico Multi-maestro: simtrico

OpenLDAP no garantiza coherencia

Sistemas Distribuidos 38

Fernando Prez Costoya

Diseo del DIT


No trivial: requiere experiencia Anlisis previo de info. del SD y cmo evolucionar
Diseo debera evitar que cambios previstos en info. modifiquen DIT
Cambio debera afectar a atributos en vez de a estructura de DIT

Mejor rbol poco profundo

Ej.: empresa donde personal cambia de dpto. con frecuencia


Diseo 1
1 organizationalUnit/dpto. + 1 inetOrgPerson/persona Entrada de persona hija de entrada de su departamento

Diseo 2
1 organizationalUnit para todo el personal + 1 inetOrgPerson/persona 1 groupOfNames/dpto. con 1 atributo member/persona Persona cambia de departamento: cambio atributos, no cambio DIT
Aunque ciertas bsquedas pueden ralentizarse
Sistemas Distribuidos 39 Fernando Prez Costoya

Diseo 1
Empresa organization

Dpto1 organizationalUnit

Dpto2 organizationalUnit

Dpto3 organizationalUnit

pers1 inetOrgPerson

pers2 inetOrgPerson

pers3 inetOrgPerson

pers4 inetOrgPerson

Sistemas Distribuidos 40

Fernando Prez Costoya

Diseo 2
Empresa organization

Dpto1 groupOfNames Personal organizationalUnit member: pers1 member: pers2

Dpto2 groupOfNames member: pers3

Dpto3 groupOfNames member: pers4

pers1 inetOrgPerson

pers2 inetOrgPerson

pers3 inetOrgPerson

pers4 inetOrgPerson

Sistemas Distribuidos 41

Fernando Prez Costoya

Extracto de jerarqua de LDAP de FI


dc: fi objectClass: dcObject objectClass: organization ........................................ dn: dc=fi,dc=upm,dc=es dn: ou=grupos,dc=fi, dc=upm,dc=es dn: ou=personal,dc=fi, dc=upm,dc=es ou: personal objectClass: organizationalUnit ou: grupos objectClass: organizationalUnit dn: cn=DATSI,ou=grupos, dc=fi,dc=upm,dc=es

objectClass: inetOrgPerson objectClass: posixAccount cn: Fernando Perez Costoya uid: fperez ..............................................

objectClass: inetOrgPerson objectClass: posixAccount cn: Francisco Rosales Garcia uid: frosal ..............................................

cn: DATSI objectClass: posixGroup memberUID: fperez memberUID: frosal ...............................

.................................

dn: uid=fperez,ou=personal, dn: uid=frosal,ou=personal, dc=fi,dc=upm,dc=es dc=fi,dc=upm,dc=es


Sistemas Distribuidos 42 Fernando Prez Costoya

Operaciones de LDAP
Bind/Unbind: conecta y autentica/desconecta Search: realiza una bsqueda basada en los parmetros:
DN base de la bsqueda mbito: Slo la entrada base, slo hijos o todo el sub-rbol Filtro de bsqueda Atributos que se devuelven (adems, si valores o slo tipos) Si se siguen los alias o no durante la bsqueda Lmite de tiempo y mximo n de entradas retornadas

Compare: comprueba si DN dado tiene un valor en atributo Add/Delete: Aade/Elimina la entrada del DN dado Modify: Modifica atributos (aade, elimina o cambia) de un DN Modify DN: Cambia DN de una entrada
Renombra si slo cambia RDN final; mueve en DIT en caso contrario
Fernando Prez Costoya

Sistemas Distribuidos 43

Acceso a operaciones de LDAP


API de programacin en C
ldap_bind(),ldap_search(),ldap_add(),ldap_delete(),ldap_modify(), ...

Mandatos
ldapsearch, ldapadd, ldapdelete, ldapmodify, ldapmodrdn, ...
La mayora usan el formato LDIF como entrada o salida

Formato URL estndar para LDAP


ldap://mquina:puerto/DNbase?atributos?mbito?filtro
ldaps si usa comunicacin segura

Sistemas Distribuidos 44

Fernando Prez Costoya

Ejemplos de bsquedas (en triqui)


Leer mi entrada
ldapsearch -x -W -H ldaps://info.fi.upm.es -D 'uid=fperez,ou=personal,dc=fi,dc=upm,dc=es -b 'uid=fperez,ou=personal,dc=fi,dc=upm,dc=es'

Nombre de profesores que comparten un despacho dado


ldapsearch -x -W -H ldaps://info.fi.upm.es -D 'uid=fperez,ou=personal,dc=fi,dc=upm,dc=es' -b 'ou=personal,dc=fi,dc=upm,dc=es' '(roomNumber=4201)' cn sn

N tel. de personal de nombre Fernando y no sean del DATSI


ldapsearch -x -W -H ldaps://info.fi.upm.es -D 'uid=fperez,ou=personal,dc=fi,dc=upm,dc=es' -b 'ou=personal,dc=fi,dc=upm,dc=es' '(&(!(departmentNumber=DATSI))(cn=*Fernando*))' cn telephoneNumber

Nombre de secciones de la FI
ldapsearch -x -W -H ldaps://info.fi.upm.es -D 'uid=fperez,ou=personal,dc=fi,dc=upm,dc=es' -b 'dc=fi,dc=upm,dc=es' -s one '(objectClass=organizationalUnit)' ou

Sistemas Distribuidos 45

Fernando Prez Costoya

Esquema
Paquete que incluye definiciones en ASN.1 y que usan OIDs Esquema incluye varios tipos de definiciones:
ldapsyntax: Define tipos bsicos de LDAP matchingRule: Op. de comparacin sobre tipos bsicos attributetype: Definicin de atributo objectclass: Definicin de clase matchingRuleUse: Para qu atributo se usa una regla de comparacin dITContentRule: qu clases auxiliares permitidas para una c. estruct. dITStructureRule: qu clases pueden ser padres de una c. estructural nameForm: qu atributos pueden usarse como RDN de c. estructural

Se usa herencia tanto en defs. de clases como de atributos Hay esquemas estandarizados:
core, cosine, inetorgperson, nis, ...
Sistemas Distribuidos 46 Fernando Prez Costoya

Sintaxis: tipos de datos de LDAP


Definidos por estndar, por interoperabilidad no deberan definirse nuevos tipos ldapsearch -H ldaps://info.fi.upm.es -x -b cn=subschema -s base ldapsyntaxes ldapSyntaxes: ( 1.3.6.1.4.1.1466.115.121.1.44 DESC 'Printable String' ) ldapSyntaxes: ( 1.3.6.1.4.1.1466.115.121.1.11 DESC 'Country String' ) ldapSyntaxes: ( 1.3.6.1.4.1.1466.115.121.1.26 DESC 'IA5 String' ) ldapSyntaxes: ( 1.3.6.1.4.1.1466.115.121.1.40 DESC 'Octet String' ) ldapSyntaxes: ( 1.3.6.1.4.1.1466.115.121.1.41 DESC 'Postal Address' ) ldapSyntaxes: ( 1.3.6.1.4.1.1466.115.121.1.50 DESC 'Telephone Number' ) ldapSyntaxes: ( 1.3.6.1.4.1.1466.115.121.1.36 DESC 'Numeric String' ) ldapSyntaxes: ( 1.3.6.1.4.1.1466.115.121.1.27 DESC 'Integer' ) ldapSyntaxes: ( 1.3.6.1.4.1.1466.115.121.1.24 DESC 'Generalized Time' ) ldapSyntaxes: ( 1.3.6.1.4.1.1466.115.121.1.7 DESC 'Boolean' ) ldapSyntaxes: ( 1.3.6.1.4.1.1466.115.121.1.6 DESC 'Bit String' )
Sistemas Distribuidos 47 Fernando Prez Costoya

Reglas de comparacin de tipos


Definidas por estndar, por interoperabilidad no deberan definirse nuevas reglas

ldapsearch -H ldaps://info.fi.upm.es -x -b cn=subschema -s base matchingRules matchingRules: ( 2.5.13.4 NAME 'caseIgnoreSubstringsMatch' SYNTAX 1.3.6.1.4.1.1466.115.121.1.58 ) matchingRules: ( 2.5.13.2 NAME 'caseIgnoreMatch' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 ) matchingRules: ( 1.3.6.1.4.1.1466.109.114.3 NAME 'caseIgnoreIA5SubstringsMatch' SYNTAX 1.3.6.1.4.1.1466.115.121.1.26) matchingRules: ( 1.3.6.1.4.1.1466.109.114.2 NAME 'caseIgnoreIA5Match' SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) matchingRules: ( 2.5.13.14 NAME 'integerMatch' SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 ) matchingRules: ( 2.5.13.13 NAME 'booleanMatch' SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 )
Sistemas Distribuidos 48 Fernando Prez Costoya

Definicin de atributos
ldapsearch -H ldaps://info.fi.upm.es -x -b cn=subschema -s base attributetypes attributetype ( 2.5.4.41 NAME 'name' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{32768} ) attributetype ( 2.5.4.3 NAME ( 'cn' 'commonName' ) SUP name ) attributetype ( 0.9.2342.19200300.100.1.25 NAME ( 'dc' 'domainComponent' ) DESC 'RFC1274/2247: domain component EQUALITY caseIgnoreIA5Match SUBSTR caseIgnoreIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
Sistemas Distribuidos 49 Fernando Prez Costoya

Definicin de clases
ldapsearch -H ldaps://info.fi.upm.es -x -b cn=subschema -s base objectClasses objectclass ( 2.5.6.0 NAME 'top' ABSTRACT MUST objectClass ) objectclass ( 2.5.6.6 NAME 'person' SUP top STRUCTURAL MUST ( sn $ cn ) MAY ( userPassword $ telephoneNumber $ seeAlso $ description ) ) objectclass ( 2.5.6.7 NAME 'organizationalPerson' SUP person STRUCTURAL MAY ( title $ x121Address $ registeredAddress $ destinationIndicator $ preferredDeliveryMethod $ telexNumber $ teletexTerminalIdentifier $ telephoneNumber $ internationaliSDNNumber $ facsimileTelephoneNumber $ street $ postOfficeBox $ postalCode $ postalAddress $ physicalDeliveryOfficeName $ ou $ st $ l ) ) objectclass ( 1.3.6.1.4.1.1466.344 NAME 'dcObject' DESC 'RFC2247: domain component object' SUP top AUXILIARY MUST dc )
Sistemas Distribuidos 50 Fernando Prez Costoya

Uso de reglas de comparacin


ldapsearch -H ldaps://info.fi.upm.es -x -b cn=subschema -s base matchingRulesUse matchingRuleUse: ( 1.3.6.1.4.1.1466.109.114.2 NAME 'caseIgnoreIA5Match' APPLIES ( altServer $ mail $ dc $ associatedDomain $ email $ aRecord $ mDRecord $ mXRecord $ nSRecord $ sOARecord $ cNAMERecord $ janetMailbox $ gecos $ homeDir.... ) ) matchingRuleUse: ( 2.5.13.13 NAME 'booleanMatch' APPLIES ( hasSubordinates $ olcGentleHUP $ olcLastMod $ olcReadOnly $ olcReverseLookup $ olcDbNoSync $ olcDbDirtyRead $ olcDbLinearIndex $ olcChainCacheURI $ olcChainReturnError $ olcDbRebindAsUser $ olcDbChaseReferrals $ olcDbProxyWhoAmI $ olcDbSingleConn $ olcDbUseTemporaryConn $ pwdLockout $ pwdMustChange $ pwdAllowUserChange $ pwdSafeModify $ sambaBoolOption $ pwdReset $ olcPPolicyHashCleartext $ olcPPolicyUseLockout $ olcSpNoPresent $ olcSpReloadHint ) )

Sistemas Distribuidos 51

Fernando Prez Costoya

Creacin de un nuevo esquema


Slo si es estrictamente necesario
Nunca cambiar comportamiento de objetos/atrib. estndar

2 alternativas para extender clase ya existente


Crear nueva clase estructural derivada de clase existente
Permite mejor control: se pueden definir reglas de contenido/estructura Pero requiere eliminar y reinsertar todos los objetos existentes

Crear clase auxiliar derivada de top e incluirla en definicin de objetos


Se puede aadir directamente usando Modify

C. auxiliar tambin permite incluir atrib. en objetos de clases


p.e. fecha de alta en organizacin, tanto personas como dispositivos

Sistemas Distribuidos 52

Fernando Prez Costoya

Extracto de esquema del LDAP de FI


attributetype ( 1.3.6.1.4.1.7547.1.19.10.4.2.4 NAME 'fiRelationShip' DESC 'Relacion del usuario con la Escuela' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 ) attributetype ( 1.3.6.1.4.1.7547.1.19.10.4.2.1 NAME 'fiGender' DESC 'Sexo de la persona (ISO 5218)' EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) attributeTypes: ( 1.3.6.1.4.1.7547.1.19.10.4.2.5 NAME 'fiTeaching' DESC 'Asignaturas impartidas por el profesor' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{20} ) objectclass ( 1.3.6.1.4.1.7547.4.3.1.2 NAME 'irisPerson' DESC 'Persons inside the IRIS community SUP top AUXILIARY MAY ( sn1 $ sn2 $ irisPersonalTitle $ irisPersonalUniqueID $ irisUserEntitlement $ irisUserPrivateAttribute $ irisUserStatus $ irisMailHost $ irisMailRoutingAddress $ irisMailbox $ irisMailMainAddress $ irisMailAlternateAddress $ irisUserPresenceID $ irisClassifCode ) ) objectclass ( 1.3.6.1.4.1.7547.1.19.10.4.1.1 NAME 'fiPerson' DESC 'Persona perteneciente a la Facultad de Informatica (UPM)' SUP irisPerson AUXILIARY MUST ( uid $ mail ) MAY ( fiPwdChangedOperTime $ fiMailQuotaSize $ fiGender $fiRelationShip ) ) objectClasses: ( 1.3.6.1.4.1.7547.1.19.10.4.1.3 NAME 'fiEmployee' DESC 'Empleado de la Facultad de Informatica (UPM)' SUP fiPerson AUXILIARY MAY fiTeaching)
Sistemas Distribuidos 53 Fernando Prez Costoya

Modelo de seguridad
3 mtodos de autenticacin
Sin autenticacin: se considera usuario annimo Autenticacin bsica: DN del usuario + contrasea Simple Authentication and Security Layer (SASL)
Entorno genrico de autenticacin y seguridad de datos Permite usar mltiples mecanismos (p.e. SASL DIGEST-MD5) SASL EXTERNAL: protocolo nivel inferior proporciona autenticacin
Como cuando se usa Transport Layer Security (TLS)

Proteccin de entradas no definida por el estndar


Habitualmente se usan listas de control de acceso (ACL)
Controlan acceso a cada atributo de una entrada

Sistemas Distribuidos 54

Fernando Prez Costoya

ndice
Introduccin Servicio de nombres
Estudio de un ejemplo prctico: DNS

Servicio de directorio
Estudio de un ejemplo prctico: LDAP

Descubrimiento de servicios
Gestin de nombres en sistemas mviles/ubicuos Auto-configuracin Servicios de descubrimiento de servicios

Sistemas Distribuidos 55

Fernando Prez Costoya

Gestin de nombres en SD convencional


Estructura del SD bastante esttica Cada nodo se configura con (suponiendo uso de IP)
Su dir. IP, mscara de red, dir. router, e info. de encaminamiento Su nombre, dominio DNS al que pertenece y direc. servidores DNS Nombre servidor(es) LDAP y conocimiento del esquema usado Los manejadores requeridos para interaccin con dispositivos en SD

Incluso en SD convencional, op. configuracin no escalable


Uso de DHCP (Dynamic Host Configuration Protocol)

Necesidad limitada de descubrimiento de servicios/dispos.


Una vez instalada nueva impresora se la da de alta en LDAP Prxima bsqueda de impresoras en LDAP la encontrar Dar de baja impresora (poco frecuente): basta con actualizar LDAP No se requiere Plug & Play en el nivel del SD
Fernando Prez Costoya

Sistemas Distribuidos 56

Gestin de nombres en SD mvil/ubicuo


Computacin ubicua invisible auto-configuracin Sistemas dinmicos, espontneos y voltiles:
Nodos entran y salen de un SD: de un espacio inteligente (EI)
Mi cmara digital y yo entramos/salimos en habitacin de hotel Un vehculo entra/sale de EI controlado por un semforo inteligente

Descubrimiento de servicios clave para computacin ubicua Nodo entra en EI:


Se autoconfigura y descubre, y es descubierto, por nodos restantes Si proveedor de servicios, hace conocerlos a quines le interesen Si consumidor de serv., descubre los de otros nodos que le interesen Necesidad de lenguaje de definicin y bsqueda de servicios
Atributos-valores (similar a LDAP), basado en XML, ontologas, ... Suficiente flexibilidad para incorporar nuevos tipos de serv./dispos.
Sistemas Distribuidos 57 Fernando Prez Costoya

Gestin de nombres en SD mvil/ubicuo


Plug & play de servicios/dispositivos en SD
Adems de descubrirlos, hay que saber hablar con ellos Nuevo tipo puede requerir nuevo manejador

Nodo abandona EI: servicio/dispositivo desaparece


Abandono abrupto uso de leases

Problema de frontera del espacio inteligente:


Delimitacin precisa de confines de un espacio inteligente
Espero que mis fotos no se impriman en habitacin contigua!

Necesidad de crear mbitos (scopes)

Limitacin de recursos y volatilidad pueden condicionar:


Estrategias de auto-configuracin y descubrimiento de servicios

Ej. Jini, UPnP, Zeroconf, Service Location Protocol (RFC 2608)


Sistemas Distribuidos 58 Fernando Prez Costoya

Ejemplo plantilla de servicio de SLP


service:printer://lj4050.tum.de:1020/queue1 scopes = tum, bmw, administrator printer-name = lj4050 printer-model = HP LJ4050 N printer-location = Room 0409 color-supported = false pages-per-minute = 9 sides-supported = one-sided, two-sided
Extrado de A Comparison Of Service Discovery Protocols And Implementation Of The Service Location Protocol, Christian Bettstetter y Christoph Renner
Sistemas Distribuidos 59 Fernando Prez Costoya

Auto-configuracin
Obtencin de direccin IP (e info asociada: mscara, router,...)
Uso de DHCP:
Nodo broadcast peticin de direccin IP Servidor DHCP asigna direccin IP con lease asociado

Si DHCP no disponible (por volatilidad o limitacin de recursos)


Dynamic Configuration of IPv4 Link-Local Addresses (RFC 3927) Nodo elige su dir. IP y usa ARP para comprobar que no est en uso Si conflicto, selecciona otra

Obtencin de nombre DNS (si requerido)


Uso de DNS con protocolo de actualizacin: Dynamic-DNS Si DNS no disponible (por volatilidad o limit. recursos): Multicast-DNS
Consultas a dominio .local. usan multicast dir. fija Nodo correspondiente responde (con unicast o multicast)

Zeroconf (Bonjour, Avahi) usa Link-Local y Multicast-DNS


Sistemas Distribuidos 60 Fernando Prez Costoya

Servicios de descubrimiento de servicios


Tres roles (usando terminologa SLP):
cliente (UA), proveedor servicio (SA), servidor descubrimiento (DA)

Alternativa principal: con o sin DA


Puede haber mltiples DA: replicacin y/o info. de distintos mbitos

Con DA (Jini, UPnP):


UA y SA deben localizar DAs (posible filtro por mbitos)
Localizacin activa: UA/SA multicast a direccin fija Localizacin pasiva: DA multicast a direccin fija
Facilita incorporacin de nuevos DAs al sistema SAs pueden registrar servicios y UAs realizar consultas

SA registra servicio mediante unicast en DAs localizados UA consulta mediante unicast a alguno de los DAs localizados UA puede pedir a DA notificacin si aparece un tipo de SA evento
Sistemas Distribuidos 61 Fernando Prez Costoya

Descubrimiento de DA en SLP

Service Location Protocol: Automatic Discovery of IP Network Services. Erik Guttman


Sistemas Distribuidos 62 Fernando Prez Costoya

Registro y bsqueda de servicio en SLP

Service Location Protocol: Automatic Discovery of IP Network Services. Erik Guttman


Sistemas Distribuidos 63 Fernando Prez Costoya

Servicios de descubrimiento de servicios


Sin DA: pull versus push
Pull: UA multicast peticin; SA la recibe y responde Push: SA multicast anuncio de servicio; UAs guardan esa info. push descubrimiento automtico nuevo SA; pull uso de polling

Esquema hbrido (SLP)


Mientras no haya ningn DA (suponiendo modelo pull como SLP):
SA escucha dir. multicast peticiones de servicio UA enva a dir. multicast peticiones de servicio SAs/UAs escuchando dir. multicast posibles altas de DAs

Cuando aparece un DA no habiendo ninguno antes


SAs registra servicio en DA mediante unicast UAs consultan DA usando unicast

Si desaparecen todos los DAs: vuelta al primer punto

Zeroconf: DA DNS (real o multicast) con extensiones


Sistemas Distribuidos 64

DNS-SD: Usa SRV, PTR y TXT y aade leases y long-lived queries

Fernando Prez Costoya

S-ar putea să vă placă și