1 DNS: Domain Name System Sistemas Telemáticos I Por qué es necesario el DNS? 2 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.
Un poco de historia 3 Un poco de historia 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 1034 y 1035. Estructura de nombrado 4 Estructura de nombrado 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,...
Estructura de nombrado (cont.) 5 Árbol de dominios. com edu gov mil org net es uk... sun mit acm ieee urjc eng lcs theory escet gsyc cct Estructura de nombrado (cont.) 6 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 in-addr.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 138.117.0.0 es el dominio inverso 117.138.in-addr.arpa
Estructura de gestión 7 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). Si el gestor del dominio es delega un subdominio urjc, el responsable de urjc manejará la correspondencia de nombres y direcciones de todas las máquinas de su dominio. Si el responsable de urjc lo cree conveniente, puede delegar un subdominio cct, sin que por ello tenga que informar al gestor de es. Estructura de gestión (cont.) 8 La asignación de nombres de subdominios del primer nivel (ejemplo: 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.
Consulta de una dirección para un nombre 9 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). Consulta en un servidor de DNS (su dirección IP está en /etc/resolv.conf). Esquema de funcionamiento del DNS 10 Esquema de funcionamiento del 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.
Esquema de funcionamiento del DNS (cont.) 11 Consulta a un servidor ssh gsyc.escet.urjc.es Servidor DNS gsyc.escet.urjc.es? UDP(gsyc.escet.urjc.es?) ssh resolver UDP(212.128.1.45) 212.128.1.45 Esquema de funcionamiento del DNS (cont.) 12 Funcionamiento básico (sin caches) Cuando un servidor recibe una consulta para resolver un nombre (ejemplo: www.urjc.es): 1. Comprueba si el nombre pertenece a alguno de los dominios que sirve (si es que sirve alguno). Si lo encuentra busca en su mapa y devuelve la dirección IP correspondiente. 2. En caso contrario pregunta a un servidor del dominio raíz, que le contestará con la dirección IP de un servidor del dominio es. 3. Luego regunta a ese, obteniendo la dirección IP de un servidor de urjc.es. 4. Ahora se 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.
Esquema de funcionamiento del DNS (cont.) 13. gsyc.escet.urjc.es.? pregunta a es es urjc escet cct gsyc gsyc.escet.urjc.es.? pregunta a urjc gsyc.escet.urjc.es.? pregunta a escet gsyc.escet.urjc.es.? 212.128.1.45 gsyc.escet.urjc.es? ssh resolver 212.128.1.45 Esquema de funcionamiento del DNS (cont.) 14 Consultas a un servidor Por lo tanto, los servidores de DNS responden dos tipos de consultas: Recursivas: Las que le 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.
Tipos de servidores 15 Tipos de servidores Según cómo reciben los datos: Primario: Tiene la información actualizada. Secundario: Tiene la información mediante copia del primario. Sólo Cache: No tiene información propia, sino que simplemente guardan en memoria los resultados de consultas previas. Según el lugar de procedencia del dato: Con autoridad ( authoritative ): Tiene el mapa original para el dominio consultado (primario o secundario). Sin autoridad: Tiene el dato en su cache. Tipos de servidores (cont.) 16 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 forwarder no responde, se hará la búsqueda normal a partir del raíz.
Mapas de dominio 17 Mapas de dominio Cada mapa de dominio incluye un conjunto de registros de recurso (RR): Son la unidad de consulta. Cada registro de recurso tiene 5 campos: Nombre de dominio. Tiempo de vida. Tiempo de validez del registro en las cachés. Clase. En Internet siempre IN. Tipo. Define el tipo del registro. Valor. Contenido que depende del campo tipo. Mapas de dominio (cont.) 18 Tipos de registro SOA: Da información de gestión una zona del dominio (servidor de nombres primario, administrador, etc.). NS: Identifica al servidor de nombres. A: Define una dirección IP de la 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.
Mapas de dominio (cont.) 19 Ejemplo urjc.es. 172800 IN SOA venus.urjc.es. root.venus.urjc.es. ( 2004030702 ; Número de serie 86400 ; Refresco 7200 ; Reintento 2592000 ; Expiración 172800 ) ; Ttl 172800 IN NS venus.urjc.es. 172800 IN MX venus.urjc.es. venus 172800 IN A 193.147.184.8 neptuno 172800 IN A 193.147.184.2 gente 172800 IN A 193.147.72.23 www 172800 IN CNAME venus.urjc.es. cct 172800 IN NS bilo.cct.urjc.es. bilo.cct 172800 IN A 193.147.73.54 UDP o TCP? 20 UDP o TCP? Se usa el puerto 53 de TCP y 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 512 bytes (truncada), el resolver al repite usando TCP. Las transferencias de zona de primario a secundario usan TCP.
Referencias 21 Referencias DNS: The Domain Name System, capítulo 14 de TCP/IP Illustrated, Volume 1, W. Richard Stevens, Ed. Addison Wesley, 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/