DNS: Domain Name System Bibliografía: Redes de Computadores: un enfoque descendente basado en Internet : J.F Kurose y K.W. Ross. Por qué es necesario el DNS? Los humanos preferimos nombres a direcciones IP (ej: cacharro.cct.urjc.es frente a 212.128.1.44) Las direcciones IP están ligados a la estructura de la red, pero eso no tiene por qué reflejarse en el nombrado de máquinas (ej: www.google.com, www.google.es) Las direcciones IP están ligados a máquinas concretas, puede ser conveniente un nivel de abstracción no ligado a máquinas (ej: www.urjc.es puede cambiar de máquina, y de IP, pero no tiene por qué cambiar de nombre). Es necesario establecer una correspondencia entre nombres y direcciones IP. DNS: protocolo de nivel de aplicación, sobre UDP o TCP 1 2 Un poco de historia Estructura de nombrado Al principio (años 70), la correspondencia entre nombres y direcciones IP se mantenía en un único fichero (HOSTS.TXT) con información de todas las máquinas de ARPANET. Se obtenía periódicamente por FTP: gestión completamente manual. Con el crecimiento de ARPANET se hizo inmanejable. 1984, Paul Mockapetris: primeras RFC que describen el Domain Name System. Especificaciones actuales: RFC 104 y 10. Se descentraliza el control consiguiéndose una estructura jerárquica y fácilmente ampliable. Jerarquía de dominios: Dominio raíz (root o. ): Gestionado por ICANN (Internet Corporation for Assigned Names and Numbers). Dominios de nivel máximo (o de primer nivel): Tradicionales: com, edu, gov, mil, net, org, int, códigos ISO de paises (uk, mx, ar, de, es... ) Nuevos: biz, info, name, pro, aero, coop, museum Dominios secundarios, terciarios,... 4 1
Dominios de primer nivel Dominios secundarios Árbol de dominios Dominio raíz. com edu gov mil org net es uk sun mit acm ieee urj eng lcs escet cct theory gsyc Jerarquía de autoridades Una organización o autoridad encargada de la administración de un dominio puede decidir dividirlo en subdominios, y delegar la responsabilidad de su administración en otras organizaciones. Ej: Una universidad con varios departamentos puede decidir dividir el dominio de la universidad en diferentes subdominios, uno por cada departamento. Los departamentos con conocimientos telemáticos pueden querer gestionar su propio subdominio. Una zona es un subárbol de DNS que se administra por una organización diferente a la organización que administra el nodo padre de ese subárbol Dominio es un concepto ligado al espacio de nombres y Zona es un concepto ligado a la autoridad que administra un dominio: jerarquía de nombres y jerarquía de autoridades. 6 Estructura de gestión Estructura de gestión Cada vez que se delega un subdominio se delega también su gestión (incluyendo su posible división en subdominios), convirtiéndose en una nueva zona Si el gestor del dominio es delega un subdominio urjc, el responsable de la zona urjc manejará la correspondencia de nombres y direcciones de todas las máquinas de su dominio. Por tanto, la zona urjc quedará definida por todas las máquinas del subdominio urjc. Si el responsable de urjc lo cree conveniente, puede delegar un subdominio cct, sin que por ello tenga que informar al gestor de es. Por tanto, la zona urjc quedaría definida por todas las máquinas del dominio urjc excepto las máquinas del subdominio cct, las cuáles pertenecerían a una zona diferente. 7 La asignación de nombres de dominios de segundo nivel (subdominios de.es,.com,.org) está gestionada por organismos denominados registrars. A veces un mismo subdominio se gestiona por varios registrars en régimen de competencia. 8 2
Dominios - Zonas ICANN Registrar de.edu. edu indoecents admin finearts compsci máq1 máq2 máq1 máq2 sw hw Autoridad que gestiona.indoecents.edu excepto compsci.indoecents.edu Autoridad que gestiona compsci.indoecents.edu máq1 máq2 máq1 máq2 9 Dominios directo e inverso Dominio directo: proporciona para cada nombre una dirección IP. Dominio inverso: proporciona para cada dirección IP un nombre. El dominio inverso también se conoce como dominio inaddr.arpa. Los elementos del dominio inverso son las direcciones de red construidas invirtiendo los números que la componen, y terminando en in-addr.arpa. Ejemplo: La red 18.117.0.0 es el dominio inverso 117.18.in-addr.arpa. La inversión de los números en las direcciones IP se realiza para mantener la misma estructura jerárquica de los nombres de dominio: En los nombres de dominio, porciones del nombre situadas más a la izquierda representan entidades más específicas, mientras que en las direcciones IP es al revés. 10 Consulta de una dirección para un nombre Cada aplicación va enlazada con una biblioteca de consulta al DNS (resolver), con llamadas como gethostbyname(). La consulta normalmente sigue los pasos siguientes (en una máquina GNU/Linux): Consulta en un fichero (/etc/hosts). Si no se resuelve, consulta en un servidor de DNS (cuya dirección IP está en /etc/resolv.conf). Máquina Aplicación Solicitud Respuesta Solicitud Resolver Respuesta Ficheros: /etc/hosts /etc/resolv.conf Servidor de DNS 11 Esquema de funcionamiento de DNS Se trata de mantener la información como una base de datos distribuida. Las consultas al DNS se realizan en modo cliente-servidor: Cuando una aplicación (cliente) quiere resolver un nombre (que no aparece en el fichero local), pregunta a un servidor de DNS El servidor investiga por su cuenta y devuelve la dirección IP pedida. 12
2 Consulta a un servidor firefox: http://www.google.com www.google.com? Aplicación firefox resolver 1 66.102.9.99 Respuesta UDP 66.102.9.99 Solicitud UDP ( www.google.com?) 4 Servidor DNS UDP IP Ethernet 1 Funcionamiento básico (sin cachés) Cuando un servidor S recibe una consulta para resolver un nombre (ejemplo: www.google.com): 1. S Comprueba si el nombre pertenece a alguno de los dominios que sirve (si es que sirve alguno). Si S lo sirve, busca en su mapa y devuelve la dirección IP correspondiente. 2. Si S no lo sirve pregunta a un servidor del dominio raíz, que le contestará con la dirección IP de un servidor de DNS del dominio com.. Luego S pregunta al servidor de DNS de com, que le responde con la dirección IP de un servidor de DNS de google.com. 4. Ahora S pregunta a este último, que ya tiene en sus mapas la dirección IP pedida. Cada servidor puede servir uno o varios dominios, o ninguno. 14 Ejemplo Consultas a un servidor Servidor DNS aplicación resolver UDP 8 IP Respuesta UDP Ethernet 66.102.9.99 1 Pregunta ( www.google.com?) 7 IP de www.google.com IP www.google.com? 2 Servidor DNS Pregunta a servidor.com (IP) IP 4 www.google.com? Servidor DNS.com Pregunta al servidor.google.com (IP) 6 IP www.google.com? Servidor DNS.google.com. Cuando se hace una consulta se puede elegir si se hace en modo recursivo o iterativo : Recursivas: Las que hace un cliente, que obligan al servidor a hacer las consultas necesarias para encontrar la dirección pedida. Iterativas: Las que le hace otro servidor, a las que responden con la dirección IP del servidor del siguiente dominio en la jerarquía. Siempre que pueden, los servidores usan datos de su cache. 1 16 4
Tipos de servidores Según el origen de la información que sirven: Primario: Tiene la información actualizada por el administrador: tiene todo el mapa original Secundario: Obtiene la información (todo el mapa) mediante copia del primario. Sólo Cache: No tiene información propia (el mapa), sino que guarda en memoria los resultados de consultas que él va haciendo cuando es preguntado. Tipos de servidores Según cómo son utilizados: Reenviador ( forwarder ). Si un servidor tiene a otro como forwarder, le consulta (en modo recursivo) siempre antes de consultar al resto del DNS. Utilizados por servidores para centralizar las consultas. Evitan, por ejemplo, el acceso directo a servidores raíz. Sólo si el reenviador no responde, se hará la búsqueda normal a partir del raíz. 17 18 Tipos de servidores Mapas de dominio Según fiabilidad de la respuesta: Con autoridad ( authoritative ): Si la respuesta procede del mapa original para el dominio consultado (de un primario o de un secundario). Sin autoridad: Si procede de un servidor cache. Cada mapa de dominio incluye un conjunto de registros de recurso (RR): Son la unidad de consulta. Cada registro de recurso tiene campos: Nombre de dominio Tiempo de vida: Tiempo de validez del registro en las caches Clase: En Internet siempre IN Tipo: Define el tipo del registro Valor: Contenido que depende del campo tipo 19 20
Tipos de registro SOA: Da información de gestión de una zona del dominio (servidor de nombres primario, administrador, etc.). NS: Identifica al servidor de nombres. A: Define una dirección IP de una estación (puede tener varias). MX: Define el servidor de correo del dominio. CNAME: Permite asociar un alias a un nombre de dominio. HINFO: Da información del tipo de máquina y sistema operativo. TXT: Da información del dominio. 21 Ejemplo: mapa de urjc.es. Nombre TTL Clase Tipo Valor urjc.es. 172800 IN SOA venus.urjc.es. root.venus.urjc.es. ( 200400702 ; Nº de serie 86400 ; Refresco 7200 ; Reintento 292000 ; Expiración 172800 ) ; TTL 172800 IN NS venus.urjc.es. 172800 IN MX venus.urjc.es. venus 172800 IN A 19.147.184.8 neptuno 172800 IN A 19.147.184.2 gente 172800 IN A 19.147.72.2 www 172800 IN CNAME venus.urjc.es. cct 172800 IN NS bilo.cct.urjc.es. bilo.cct 172800 IN A 19.147.7.4 22 UDP o TCP? Referencias Se usa el puerto de TCP y el de UDP para el servidor de DNS: Normalmente el resolver hace consultas usando UDP. Normalmente el servidor responde usando el protocolo de la consulta. Si la respuesta UDP es de más de 12 bytes (truncada), el resolver la repite usando TCP. Las transferencias de zona de primario a secundario usan TCP. 2 Redes de Computadores: un enfoque descendente basado en Internet. J.J. Kurose y K.W. Ross. Pearson Educación. DNS: The Domain Name System, capítulo 14 de TCP/IP Illustrated, Volume 1,W. Richard Stevens, Ed. AddisonWesley, 1994. DNS and BIND, P. Albitz & C. Liu, Ed. O Reilly, 2001 FAQ de comp.protocols.tcp-ip.domains: http://www.intac.com/~cdp/cptd-faq/ ICANN: http://www.icann.net/ 24 6