DNS

46
+ Sistemas Distribuidos Servicios de nombres Rodrigo Santamaría

description

DNS

Transcript of DNS

Page 1: DNS

+

Sistemas Distribuidos Servicios de nombres Rodrigo Santamaría

Page 2: DNS

+ Servicios de nombres •  Introducción

•  Definiciones

•  URIs

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

Page 3: DNS

+Introducción

n  El uso de nombres facilita la identificación, comunicación y reparto de recursos n  En un sistema distribuido, pueden tener nombres los

computadores, servicios, objetos, archivos, usuarios…

n  A veces es suficiente la identificación por un atributo descriptivo, sin importar el nombre de la entidad

n  Servicio de nombres: provee a los clientes de información sobre nombres de elementos en un sistema distribuido

n  Servicio de directorios: provee a los clientes de información sobre objetos que satisfacen una determinada descripción

Page 4: DNS

+Introducción

n  Cualquier proceso que necesite acceder a un recurso específico debe conocer su nombre

n  Tipos de nombres según su legibilidad n  Nombres legibles: interpretables por un humano

n  Rutas: /etc/passwd

n  URLs: http://www.cdk5.net/

n  Nombres de dominio en Internet: www.cdk5.net

n  Identificadores: interpretables sólo por programas

Definiciones

Page 5: DNS

+Introducción

n  Tipos de nombres según su pureza (Needham, 1993) n  Nombres puros: patrones de bits sin interpretar

n  Nombres no puros: incluyen información adicional sobre el objeto que nombran (p. ej. ubicación)

n  Direcciones: identificación de la localización del objeto pero no del objeto en sí

n  Una dirección es útil pero no constituye por sí sola un identificador válido de objetos (la localización puede variar)

n  Resolución de nombres: traducción del nombre a datos relacionados con el recurso u objeto nombrado

n  Enlace: asociación entre un nombre y un objeto

Definiciones

Page 6: DNS

+Introducción Resolución de nombres: ejemplo

Page 7: DNS

+Introducción

n  Descritos por primera vez por Berners-Lee et al. [2005] n  Cadena de caracteres corta que identifica de forma única un recurso n  Generalmente, son accesibles desde una red o sistema

n  Deben ser lo suficientemente uniformes como para que cualquier software común los pueda usar (p.ej. navegadores)

n  Tipos de URI n  URL (Uniform Resource Locator): URI con información para localizar y

acceder a un recurso ~dirección de una persona n  URN (Uniform Resource Name): URI utilizada como nombre

identificador de recurso ~nombre de una persona n  URC (Uniform Resource Characteristics): URI utilizada como meta-

información sobre un recurso (restricciones de acceso, propietario, codificación, tamaño, etc.)

Identificadores de Recurso Unificados (URIs)

Page 8: DNS

+Introducción

n  URI (genérico) à esquema:jerarquía[?petición][#fragmento]!n  Esquema: información sobre el protocolo de acceso

n  http, https, ftp, file, dns, geo, mailto, info, urn, …

n  Jerarquía: información jerárquica del nombre del recurso

n  animal:mamífero:ratón:nariz

n  Petición: información opcional no jerarquizada

n  Organizada en pares clave=valor, separados por “;” o “&”

n  Fragmento: información opcional sobre una localización secundaria dentro del recurso

n  Si el recurso es un documento HTML, suele referirse a un tag

URI: sintaxis

Page 9: DNS

+Introducción

n  Una URL suele contener una URN (localización con nombre) n  Y una URN puede contener una URL (nombre con localización)

n  W3C recomienda referirse genéricamente a URIs

n  URL, URN y URC utilizan la sintaxis de URI n  URL añade la información de localización en la jerarquía

n  URN incorpora el nombre y espacio de nombres en la jerarquía

n  URC se puede especificar mediante peticiones

URL vs URN vs URI

Page 10: DNS

+Introducción URIs: ejemplos

foo://usuario:[email protected]:8042/esta/es/la/ruta/index.htm?tipo=animal&nombre=rata#nariz

urn:ejemplo:animal:rata:nariz

esquema jerarquía

autoridad ruta

puerto usuario host

jerarquía

fragmento petición

URL

URN

Page 11: DNS

+Introducción

n  Gestionan información sobre una colección de nombres n  En forma de enlaces entre los nombres y los atributos de las

entidades a las que se refieren

n  La colección suele estar dividida jerárquicamente en contextos

n  El servicio de nombres se separa de otros servicios principalmente por su exposición en sistemas distribuidos n  Unificación: es conveniente que un recurso utilizado por distintos

servicios tenga el mismo esquema de nombre

n  Integración: no es fácil predecir quién va a hacer uso de un recurso. Sin un servicio común de nombres, cada dominio utilizaría una convención de nombrado distinta

Servicios de nombres

Page 12: DNS

+Introducción

n  Inicialmente n  Enlazar nombres con direcciones en una única LAN o WAN

n  Con la interconexión de redes e incremento de la escala, la correspondencia nombre-dirección se complica n  Por ejemplo, los requisitos del Global Name Service (GNS - 1986)

n  Gestionar un número arbitrario de nombres

n  Dar servicio a un número arbitrario de organizaciones

n  Dar servicio durante mucho tiempo (cambios de nombres, etc.)

n  Alta disponibilidad (gran parte del sistema depende del GNS)

n  Aislamiento de fallos (fallo local no provoca fallo del sistema)

n  Tolerancia a la ausencia de autenticación

Servicios de nombres: requisitos

Page 13: DNS

+ Servicios de nombres •  Introducción •  Nombres

•  Espacio de nombres y dominios

•  Resolución de nombres y navegación

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

Page 14: DNS

+Nombres

n  Colección de todos los nombres válidos reconocidos para un servicio particular n  Requieren de una definición sintáctica

n  Generalmente, tienen una estructura jerarquizada n  Alto grado de escalabilidad

n  Posibilidad de gestión separada de cada contexto/jerarquía

n  Ejemplos

n  Organizaciones: nombres de dominio (www.usal.es)

n  Directorios: rutas de fichero (/etc/passwd)

n  URLs: jerarquía de organizaciones+directorios

Espacio de nombres

Page 15: DNS

+Nombres

n  Un dominio es un espacio de nombres para el que existe una única autoridad administrativa responsable de asignar nombres n  Todos los nombres en dicho dominio llevan como sufijo el

dominio

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

n  El administrador del dominio (usal.es) puede dar de alta nombres en su espacio (p. ej. roble.usal.es) n  pero el propio nombre del dominio (usal.es) debe haberse

acordado con la autoridad de nivel superior (es)

Dominios

Page 16: DNS

+Nombres

n  Nombres dentro de un dominio

n  Sintaxis: elementos separados por “.” n  Cada elemento se refiere a un dominio o máquina

n  No sensibles a mayúsculas/minúsculas

n  Hasta 127 niveles o 253 caracteres

n  Se usan siempre nombres absolutos

n  Aunque un cliente puede mantener una lista de prefijos/sufijos de dominio que añade automáticamente a cualquier nombre

n  cdk5.net à www.cdk5.net

n  roble à roble.usal.es

Nombres de dominio

Page 17: DNS

+Nombres

n  Proceso iterativo por el que se va interpretando un nombre en los contextos de su jerarquía n  Ejemplo en la ruta /etc/passwd

n  ‘etc’ es presentado al contexto ‘/’

n  ‘passwd’ es presentado al contexto ‘/etc’

n  En el caso de servicios tipo DNS, la base de datos es muy extensa à no está almacenada en un único servidor n  Navegación: proceso de resolución de nombres cuando hay más

de un servidor implicado

Resolución de nombres

Page 18: DNS

+Nombres

n  El cliente pregunta por la dirección al servidor de nombres local (NS1) n  Si no la conoce, el servidor sugiere un

nuevo servidor al que preguntar (NS2)

n  El proceso continúa hasta que el cliente pregunta a un servidor que conoce la dirección

n  Variante: navegación multicast n  El cliente multidifunde su petición a

todo un grupo se servidores a la vez

Navegación iterativa

Page 19: DNS

+Nombres

n  No recursiva: como la navegación iterativa, pero gestionada por un servidor. Es el tipo de navegación usada por DNS

n  Recursiva: n  El cliente pide una dirección a un servidor NS1 que se hace cargo de su

búsqueda preguntando a NS2

n  Si NS2 no la conoce, NS2 se hace cargo de la búsqueda preguntando a NS3, etc.

Navegación coordinada por un servidor

Page 20: DNS

+Nombres

n  El cliente puede no tener permisos para acceder a nombres de servidores remotos n  Por ello la necesidad de un método coordinado por un servidor

n  Incluso un servidor de nombres puede no tener permisos para acceder a otros servidores n  Por ello la necesidad de un método coordinado recursivo

Tipos de navegación

Page 21: DNS

+Nombres

n  El software de navegación (en cliente o servidor) mantiene una caché de nombres resueltos en anteriores consultas n  Si la petición se encuentra en caché, la devuelve

n  Si no, continúa con la navegación (los nuevos servidores consultados también harán usos de sus cachés)

Cachés

Page 22: DNS

+ Servicios de nombres •  Introducción •  Nombres •  Servicios de nombres: DNS

•  Arquitectura

•  Resolución de nombres

•  Servicios de directorio: X.500

Page 23: DNS

+DNS

n  Servicio de nombres para cualquier computador, servicio o recurso conectado a Internet o a una red privada n  Diseñado por Paul Mockapetris en 1983

n  Anteriormente se usaba un fichero HOSTS.TXT que contenía los enlaces del nombre de domino al nombre IP n  No escalable

n  NOTA: este fichero aún existe (Unix), generalmente mapea por defecto 127.0.0.1 a localhost

n  Resolución de nombres: host (nombre de domino) à IP

Domain Name System

Page 24: DNS

+DNS

n  Contienen una fracción de la base de datos de nombres/IPs, correspondiente a un determinado dominio n  Referencias para el dominio local (la mayor parte)

n  Referencias a otros servidores para resolver direcciones de objetos fuera del domino local

n  Referencias de caché

n  Replicación: puede haber más de un servidor DNS para el mismo dominio

Servidores DNS

Page 25: DNS

+DNS

n  El espacio de nombres de un dominio puede dividirse a su vez en subdominios

n  Si se ha delegado la responsabilidad administrativa del subdominio, constituye una zona, que cuenta con sus propios servidores DNS n  Las referencias de una zona DNS no se almacenan en los

servidores del dominio que la contiene

Subdominios y zonas

Page 26: DNS

+DNS Zonas

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

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

Algunos subdominios como ca.bc o ca.sk no han sido delegados (quizás las autoridades no están

preparadas para su gestión, o no quieren romper la unidad del subespacio) y no constituyen zonas

Dominio raíz

Dominio base o top-level domain (TLD)

Page 27: DNS

+DNS Jerarquía de servidores DNS

Los

nom

bre

s d

e lo

s se

rvid

ores

est

án e

n cu

rsiv

a Lo

s d

omin

ios

corr

esp

ond

ient

es e

stán

ent

re p

arén

tesi

s La

s fl

echa

s in

dic

an e

ntra

das

en

el s

ervi

dor

de

nom

bre

s

Page 28: DNS

+DNS

n  Responden directamente a peticiones en la zona raíz y redirigen otras peticiones a servidores del domino base (o inferiores) apropiado

n  Hay 13 servidores raíz, con nombres letra.root-servers.net n  Donde letra va de la A a la M n  Están replicados, y 9 de ellos operan en varias zonas geográficas

n  Originalmente 10 operaban en USA, 2 en Europa y 1 en Japón n  Cada uno es gestionado por una entidad

n  Universidades (Maryland, USC) n  Gobierno de EEUU (NASA, US army, DISA) n  Empresas (Verisign -2-, Cogent, Netnod) n  Organizaciones (ISC, WIDE, RIPE, ICANN)

Servidores raíz

Page 29: DNS

+DNS Servidores Raíz

Page 30: DNS

+DNS

n  NIC (Network Information Center) n  Operador que mantiene la base de datos de nombres de dominio base

(.es, .com., .uk) y sus zonas n  www.nic.es, www.nic.uk, etc.

n  InterNIC (Internet Network Information Center) n  Entidad coordinadora de todos los NICs (1972-1998)

n  IANA (Internet Assigned Numbers Authority) n  Entidad superior a InterNIC que coordina a los operadores de servidores raíz

(1971-1998)

n  ICANN (Internet Corporation for Assigned Names and Numbers) n  Reorganización/unión de InterNIC e IANA (1998-)

n  Departamento de Comercio de Estados Unidos n  Controla la zona raíz y supervisa la ICANN

Autoridades relacionadas

Page 31: DNS

+DNS

n  ¿Cuáles son los nombres de los servidores DNS del dominio usal.es? n  Pista: www.nic.es

n  ¿Por qué se produce la reestructuración de InterNIC e IANA en ICANN? n  Pista: Jon Postel

Ejercicios

Page 32: DNS

+DNS

n  Solicitudes principales n  Resolución de nombres de host: nombre host à IP

n  Localización de host de correo

n  Otras solicitudes n  Resolución inversa: IP à nombre host

n  Información del host: arquitectura y sistema operativo del host

Solicitudes DNS

Page 33: DNS

+DNS

n  Hay rangos de direcciones IP no asignadas n  Una resolución inversa DNS (IP à nombre) a una de esas

direcciones implicaría la consulta de dicha IP por parte del servidor DNS en busca del nombre

n  Esto genera un tráfico adicional innecesario

n  Son consultas generalmente automáticas, bien por redes locales mal configuradas o virus.

n  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 tráfico.

Servidores de agujero negro

Page 34: DNS

+DNS

n  Cualquier cliente de DNS n  Generalmente son bibliotecas de software

n  Aceptan peticiones, las adaptan al protocolo DNS y comunican con uno o más servidores DNS para responderlas

n  Usa un protocolo simple de petición-respuesta UDP sobre Internet n  Con un sistema de timeouts + reenvío

n  Lista de servidores DNS alternativos si alguno no está disponible

n  Se pueden empaquetar varias consultas o respuestas juntas

Procuradores DNS (DNS resolvers)

Page 35: DNS

+DNS Resolución DNS

0) El procurador DNS pregunta al servidor DNS más cercano. Dicho servidor contiene en caché los nombres de los servidores raíz 1)  El servidor raíz 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)

3)  …

4)  El servidor que tiene autoridad sobre el dominio de nivel más bajo ofrece la dirección correspondiente

La resolución DNS es una navegación no recursiva coordinada por servidor

Page 36: DNS

+DNS

n  Imaginemos que se ha hecho una consulta anterior eecs.berkeley.edu n  Se ha almacenado en caché la IP de

eecs.berkeley.edu n  Se han almacenado en caché los

nombres de los servidores para los dominios eecs.berkeley.edu, berkeley.edu y edu

Resolución DNS y cachés

berkeley.edu es el ancestro común más cercano a baobab.cs.berkeley.edu del que se tiene información

Time to live (TTL): tiempo máximo de permanencia de los datos en caché

Page 37: DNS

+DNS

n  Considerando el tamaño de la base de datos de nombres y el número de redes involucradas, DNS consigue resolver nombres en tiempos relativamente cortos n  Mediante una combinación de particionado, replicación y cachés

n  Los objetos mayoritarios en la base de datos de nombres son computadoras (hosts), servidores y hosts de correo. n  Todos ellos cambian relativamente poco, así que el caché y la

replicación no merman mucho el rendimiento

n  DNS es inconsistente: si un nombre cambia, los servidores pueden dar a sus clientes información antigua durante un periodo de tiempo (~días)

Análisis

Page 38: DNS

+ Servicios de nombres •  Introducción •  Nombres •  Servicios de nombres: DNS •  Servicios de directorio: X.500

Page 39: DNS

+X.500

n  Un servicio de nombres almacena colecciones de pares <nombre, atributo> y busca atributos a partir de nombres n  Por ej. en el caso de DNS, son pares <nombre, IP>

n  Un servicio de directorios almacena datos similares, pero también permite buscar nombres a partir de atributos n  En otras palabras, el nombre es un atributo más

n  Ejemplos n  ¿Cuál es el nombre del usuario del teléfono 020-555 9980?

n  ¿Qué computadores de este edificio son Macs con MacOS X?

n  ¿Dónde puedo imprimir una imagen a color en alta resolución?

Servicios de directorios

Page 40: DNS

+X.500

n  X.500 es una serie de protocolos para servicios de directorios, que incluye n  DAP (Directory Acess Protocol)

n  Otros protocolos (DSP, DISP, DOP)

n  LDAP implementa un protocolo muy similar al DAP de X.500 n  Es una versión más ligera (Lightweight) y que soporta

comunicación TCP/IP para permitir su uso a clientes de Internet

n  DAP actualmente también soporta comunicación TCP/IP, pero LDAP se ha hecho más popular, principalmente entre servicios de directorio para intranets

Protocolos

Page 41: DNS

+X.500

n  X.500 tiene un modelo de datos jerárquico fragmentado, que se accede mediante un modelo cliente servidor

n  X.500 y LDAP se basan en un modelo de datos jerárquico n  Directory Information Tree (DIT) n  Directory Information Base (DIB)

n  El DIT se encuentra fragmentado en distintos servidores n  Directory Service Agents (DSA)

n  Los clientes se llaman Directory User Agents (DUA)

Definiciones

DIT

Page 42: DNS

+X.500

n  Cada nodo del DIT tiene una entrada en la DIB

DIB

Page 43: DNS

+X.500

n  read(nombre, listaAtributos) n  nombre: identificador de una entrada DIB

n  listaAtributos: atributos solicitados de la entrada (o todos)

n  search(nodo, expresión) n  nodo: nodo del DIT por debajo del cual se hará la búsqueda

n  expresión: expresión booleana basada en atributos a evaluar por cada nodo

n  La solicitud search puede ser costosa computacionalmente n  Limitar la porción del DIT al que se aplica

n  Limitar el número de entradas devueltas o el tiempo de búsqueda

Solicitudes de acceso

Page 44: DNS
Page 45: DNS

+Referencias

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

n  P. Albitz and C. Liu. DNS and BIND (3rd Ed). O’Reilly, 1998 n  Especialmente el capítulo 2:

http://oreilly.com/catalog/dns3/chapter/ch02.html

Page 46: DNS

http://xkcd.com/195/