DNS
El sistema de nombres de dominio es un sistema de nomenclatura jerárquico descentralizado para dispositivos conectados a redes IP como Internet o una red privada. Este sistema asocia información variada con nombres de dominio asignados a cada uno de los participantes. El servidor DNS escucha peticiones en los puertos 53 TCP/UDP
Para facilitar el uso de los servicios y recursos que ofrece una red se han creado sistemas de nombres utilizados por servicios de resolución de nombres que permiten asociar nombres sencillos con direcciones muméricas. Los servicios de nombres almacenan las direcciones y sus nombres (por ejemplo, alejandroalsa.es
se corresponde con la dirección IP 82.223.108.51
). El proceso por el canal, se traduce entre, un nombre y una dirección numérica es lo que se denomina. resolver el nombre
.
El principal servicio de resolución de nombres usado en redes TCP/IP, y por lo tanto en Internet es el servicio DNS (Domain Name System o Sistema do Nombres de Dominio)
Características y utilidades del servicio DNS
DNS ofrece un servicios de almacenamiento y consulta de información, esta información se guarda en una base de datos distribuida. A los servidores de nombres se les pueden realizar preguntas y para ello se utilizan clientes DNS.
DNS puede almacenar varios tipos de información sobre cada nombre de domino como:
- Resolucion de Nombres (Directa)
- Obtener información asociada a un nombre de domino
- ¿aleajndroalsa.es? ->
82.223.108.51
- Resolucion inversa de direcciones (Inversa)
- Mismo mecanismo que en la directa pero a la inversa
- ¿82.223.108.51? ->
aleajndroalsa.es
- Resolucion de servidores de correo
- Dado un nombre de dominio, por ejemplo
alejandroalsa.es
, obtener el servidor a traves del cual debe realizarse la entrega del correo electrónico.
- Dado un nombre de dominio, por ejemplo
Componentes y funcionamiento
El servicio que ofrece DNS se basa en los siguientes componentes:
Espacio de nombres de dominio (domain name space). Conjunto de nombres que se pueden utilizar para identificar máquinas o servicios de una red.
Base de datos DNS. Almacena información, por ejemplo direcciones IP, sobre los nombres de dominio.
Servidores de nombres (o servidores DNS) (name servers). Programas que guardan parte de la base de datos DNS y que responden a preguntas sobre la información almacenada.
Clientes DNS (resolvers). Programas que realizan preguntas a los servidores de nombres y procesan las respuestas para ofrecerle la información a los usuarios y/o a las aplicaciones que los invocan.
Protocolo DNS. Conjunto de normas y reglas en base a las cuales “dialogan” los clientes y los servidores DNS.
El funcionamiento del servicio DNS se basa en el modelo cliente/servidor:
Espacio de nombres de dominio
El espacio de nombres de dominio es el conjunto de nombres que se pueden utilizar para identificar máquinas o servicios de una red.
Nombres de dominio
Cada nombre de dominio puede estar formado por una o varias cadenas de caractetes separadas por puntos, no se distingue entre mayúsculas y minúsculas.
El conjunto de nombres formen el denominado espacio de nombres de dominio que se puede representar mediante una estructura jerárquica organizada en forma de árbol
Se pueden usar nombre que tengan como maxiomo 127 niveles y cada parte separada por puntos, es decir, un nodo del arbol puede tener max 63 caracteres y el total de un dominio 255 caracteres
Dominio raíz. Dominios y subdominios
Observa que en los ejemplos anteriores los nombres de dominio terminan en punto “>. Esto es así porque el árbol de nombres de dominio empieza en el dominio “.” que se conoce como dominio raíz (root). Realmente es un nombre nulo con O caracteres pero se representa usando un punto.
Como consecuencia de la organización jerárquica de los nombres de dominio es posible utilizar los términos dominio y subdominio. Por ejemplo, alejandroalsa.es.
es un subdominio del dominio es.
, blog.alejandroalsa.es.
es un subdominio del dominio alejandroalsa.es.
. Los dominios o subdominios que cuelgan”\ del dominio raíz se conocen como dominios de primer nivel o dominios de nivel superior (TLD, Top Level Domains), los que “cuelgan” de los dominios de primer nivel se denominan dominios de segundo nivel y así sucesivamente.
Nombres relativos y absolutos. FQDN
Supongamos que hemos decido usar dominio alejandroalsa.es.
para nombrar a todos los equipos de la red de área local. En la red hay varios equipos y a cada uno se le identifica con uno o varios nombres que formen parte del dominio alejandroalsa.es.
.
Si hacemos referencia a apps.alejandroalsa.es.
sabemos que se trata del equipo con IP 10.10.10.11
, y si hacemos referencia a www.google.es.
sabemos que es otro equipo diferente.
- Nombres Relativos Es necesario saber el contexto del dominio superior para determinar a que nombre hace referencia
- Nombres Absolutos Nombre formado por todas las pertes, seperadas por puntos,
blog.alejandroalsa.es.
a estos se les llama Nombres de dominios completos
ICANN
La Corporación de Internet para la Asignación de Nombres y Números es una organización sin fines de lucro fundada el 18 de septiembre de 1998 con objeto de encargarse de cierto número de tareas realizadas con anterioridad a esa fecha por otra organización, la IANA.
Esta administra los dominios de nivel superior TLD y estos se clasifican en:
- Genericos (gTLD) Nombre significativo en funcion de la organizacion:
aero.
,gov.
,travel.
,com.
,info.
,org.
,net.
,info.
… - Geograficos Nombre segnitifativo en funcion de la localidad geografica:
es.
,us.
,mx.
,np.
… - arpa Infraestructura tecnica de internet:
in-addr.arpa.
,ip6.arpa.
, - Dominios Reservados Dominios de uso exclusivo para entornos y redes privadas:
test
,localhost
,example
Zonas
Los servidores de nombres mantienen información de una parte del espacio de nombres de dominio que se conoce como zona. Cuando un servidor de nombres contiene una zona se dice que es autorizado (authoritative) para esa zona.
Las zonas se almacenan en ficheros de texto o en bases de datos, su formato está definido en la RFC 1035.
Se puede observar una parte del fichero de zona del dominio alejandroalsa.es.
, cada una de las líneas del fichero es lo que se conoce como registro de recursos.
1
2
3
4
5
6
7
8
alejandroalsa.es IN NS ns1.alejandroalsa.es
ns1.alejandroalsa.es IN A 10.10.10.10
blog.alejandroalsa.es IN A 10.10.10.11
apps.alejandroalsa.es IN A 10.10.10.12
server.alejandroalsa.es IN A 10.10.10.13
apps.alejandroalsa.es IN A 10.10.10.14
ftp.alejandroalsa.es IN CNAME server.alejandroalsa.es
mail.alejandroalsa.es IN CNAME server.alejandroalsa.es
Uun registro de tipo A
permite asociar una dirección IP con un nombre de dominio y un registro NS
permite definir un servidor DNS autorizado para la zona. Cuando un servidor DNS es autorizado para una zona es responsable de los nombres de dominio de la misma. El registro CNAME
, un Registro de Nombre Canónico es un tipo de registro de recurso en el Sistema de nombres de dominio que asigna un nombre de dominio a otro.
Servidor maestro (o primario)
Define una o varias zonas para las que es autorizado. Si un cliente DNS u otro servidor DNS le pregunta por un nombre de dominio para el que es autorizado, consulta con los ficheros de zona y responde a la pregunta. Si un cliente DNS u otro servidor DNS le pregunta por un nombre de dominio para el que el que no es autorizado, tendrá que buscar la información en otros servidores DNS o responder que no conoce la respuesta.
Servidor esclavo (o secundario)
Un servidor esclavo (también denominado secundario) define una o varias zonas para las que es autorizado. La diferencia con un maestro es que obtiene los ficheros de zona de otro servidor utorizado para la zona (normalmente wn servidor maestro) mediante un proceso que se denomina, transferencia de zona.
Pueden existir varios servidores esclavos para una misma zona. Las principales razones para. Su implantación son:
- Reducir y repartir la carga entre varios servidores.
- Favorecer la tolerancia a fallos
- Ofrecer respuestas más rápidas.
Servidor Cache
Cuando un servidor DNS recibe una pregunta sobre un nombre de dominio de una zona para la que no es autorizado, es decir, de un nombre del que no tiene información, puede preguntar (si así se ha configurado) a otros servidores para que le den la respuesta. Si el servidor actúa como caché guarda durante un tiempo.
Servidor reenviador
Cuando un servidor DNS recibe una pregunta sobre un dominio del que no dispone de información, puede preguntar a otros servidores DNS.
Servidores raíz
Existen en Internet un conjunto de servidores DNS autorizados para el dominio raíz .
, conocidos como servidores raíz (root servers). Contienen, por lo tanto, el fichero de la zona que almacena cuáles son los servidores DNS autorizados para cada uno de los dominios TLD.
Clientes DNS (resolvers)
Se puede considerar que un resolver
es cualquier software capaz de preguntar a un servidor DNS e interpretar sus respuestas.
Los sistemas operativos incluyen o permiten instalar un conjunto de librerías, denominadas stub resolver
, que realizan estas funciones. Si se configuran para ello pueden mantener una caché de respuestas, al igual que los servidores de nombres, para minimizar los accesos a la red e incrementar el rendimiento.
Cuando una aplicación quiere resolver
un nombre invoca al resolver
.
El
resolver
consulta la caché de resolución de nombres del hosts. Si obtiene una respuesta positiva se la entrega a la aplicación.Si el nombre buscado no está en la caché, el
resolver
buscará en el archivo hosts local del equipo. En sistemas Windows el archivo es %S YSTEMROOT %lsystem32driverslete hosts y en sistemas Linua/Uniz el archivo es /ete/hosts.Si el nombre buscado no está en el archivo hosts, el resolver efectuará una consulta recursiva al servidor de nombres que esté configurado
Consultas recursivas
Una consulta recursiva es aquella en la que el servidor tiene que dar una respuesta completa o exacta. Hay tres posibles respuestas:
- Respuesta positiva Da la información del nombre por el que se ha preguntado. En ella se indica si es autorizada o no. No es posible suber si el servidor que responde con autoridad es maestro o esclavo para el dominio preguntado.
- Respuesta negativa Indica que el nombre no se pudo resolver (NXDOMAIN).
- Una indicación de error Por ejemplo, que no se puede preguntar a otros servidores poz un fallo en la red
Si es autorizado para alguna zona (maestro o esclavo) comprueba sus archivos de zona. Si encuentra la respuesta responde indicando que la respuesta es autoritativa.
Si no encuentra la respuesta o no es autorizado y actúa como caché, consulta su caché de respuestas anteriores.
Si tiene configurados reenviadores entonces reenvía la consulta recursiva a otro servido! DNS.
Consultas iterativas
Una consulta iterativa (o no recursiva) es aquella en la que el servidor DNS puede proporcionar una respuesta parcial. Hay cuatro posibles respuestas:
- Respuesta positiva Da la información del nombre por el que se ha preguntado. En ella se indica si es autorizada o no.
- Respuesta negativa Indica que el nombre no se pudo resolver (NXDOMAIN).
- Respuesta indicando una referencia a otros servidores Autorizados o no, a las que se puedo preguntar para resolver la pregunta (una referencia no se es válida como respuesta a una consulta recursiva).
- Una indicación de error Por ejemplo, que no se puede preguntar a otros servidores poz un fallo en la red
Si es autorizado para alguna zona (maestro o esclavo) comprueba sus archivos de zona. Si encuentra la respuesta responde indicando que la respuesta es autoritativa.
Si no encuentra la respuesta o no es autorizado y actúa como caché, consulta su caché de respuestas anteriores. Si encuentra la respuesta responde indicando que la respuesta no os autoritativa.
Si no se encuentra respuesta exacta con el nombre, devuelve una referencia que apunta a un servidor DNS que está autorizado para un nivel inferior del espacio de nombres de dominio, Como ya se ha explicado, esta información es usada por el servidor que realizó la consulta iterativa para continuar su proceso de resolución (proceso recursivo).
Tipos de registros
SOA
1
2
3
4
5
6
7
8
Contacto
↕
alejandroalsa.es IN SOA ns1.alejandroalsa.es admin.alejandroalsa.es (
↕ 1 # Numero de serie
MNAME 604800 # Tiempo de refresco
86400 # Tiempo de reintento
2419200 # Tiempo de expiracion
604800) # TTL negativo
El registro SOA (Start Of Authority) es el primer registro de una zona y define una serie de opciones generales de la misma.
Los datos asociados con un registro SOA son los siguientes:
- MNAME Nombre FQDN del servidor de nombres maestro del dominio.
- Contacto Correo de la persona responsable del dominio.
- Numero de serie Indica la versión del archivo de zona, y debe ser incrementado cada vez que el archivo se modifique.
- Actualización Tiempo que esperan los servidores esclavos para preguntar al servidor maestro si hay cambios en la zona.
- Reintentos Si la transferencia de zona a fallado el tiempo que espera el servidor secundario antes de volver a intentarlo
- Caducidad Determina el tiempo en que el servidor esclavo puede estar intentando contactar con el maestro
- TTL Negativo Tiempo maxiomo que se almacenan las respuestas negativas sobre esa zona.
NS
1
2
alejandroalsa.es IN NS ns1.alejandroalsa.es
ns1.alejandroalsa.es IN A 10.10.10.10
El registro del servidor de nombres indica qué servidor DNS es autoritativo para un dominio. Básicamente, los registros NS indican a Internet a dónde ir para buscar la dirección IP de un dominio.
A
1
2
3
4
5
ns1.alejandroalsa.es IN A 10.10.10.10
blog.alejandroalsa.es IN A 10.10.10.11
apps.alejandroalsa.es IN A 10.10.10.12
server.alejandroalsa.es IN A 10.10.10.13
apps.alejandroalsa.es IN A 10.10.10.14
El registro A es el tipo más básico de registro DNS, y se utiliza para apuntar su nombre de dominio a una dirección IP específica.
AAAA
1
2
ns1.alejandroalsa.es IN AAAA 2001:db8:3333:4444:5555:6666:7777:8888
blog.alejandroalsa.es IN AAAA 2001:db8:3333:4444:CCCC:DDDD:EEEE:FFFF
Los registros AAAA de DNS hacen coincidir un nombre de dominio con una dirección IPv6. Los registros AAAA de DNS son exactamente como los registros A de DNS, salvo que almacenan la dirección IPv6 de un dominio en lugar de su dirección IPv4.
CNAME
1
2
3
server.alejandroalsa.es IN A 10.10.10.13
ftp.alejandroalsa.es IN CNAME server.alejandroalsa.es
mail.alejandroalsa.es IN CNAME server.alejandroalsa.es
Un nombre canónico o registro CNAME es un tipo de registro DNS que asigna un alias a un nombre de dominio auténtico o canónico. Los registros CNAME se suelen utilizar para asignar un subdominio, como www o mail, al dominio que aloja el contenido de dicho subdominio.
MX
1
2
3
4
server.alejandroalsa.es IN A 10.10.10.13
mail.alejandroalsa.es IN CNAME server.alejandroalsa.es
alejandroalsa.es IN MX 20 mail01.alejandroalsa.es
alejandroalsa.es IN MX 20 mail02.alejandroalsa.es
Un registro MX (Mail eXchange) es un tipo de registro de DNS que otorga uno o más nombres de host de los servidores de correo electrónico que son responsables por y autorizados a recibir correos electrónicos para un dominio determinado.
SRV
1
2
alejandroalsa.es IN A 10.10.10.10
_https._tcp.alejandroalsa.es IN SRV 0 5 443 alejandroalsa.es
El registro de recuroso SRV permite definir equipos que soportan un servicio en particular.
PTR
1
2
3
4
5
10.10.10.10.in-addr.arpa. IN PTR ns1.alejandroalsa.es
11.10.10.10.in-addr.arpa. IN PTR blog.alejandroalsa.es
12.10.10.10.in-addr.arpa. IN PTR apps.alejandroalsa.es
13.10.10.10.in-addr.arpa. IN PTR server.alejandroalsa.es
14.10.10.10.in-addr.arpa. IN PTR apps.alejandroalsa.es
Un registro de puntero de DNS (abreviado, PTR) proporciona el nombre de dominio asociado a una dirección IP. Un registro PTR de DNS es exactamente lo contrario del registro “A”, que proporciona la dirección IP asociada a un nombre de dominio. Los registros PTR de DNS se utilizan en las búsquedas de DNS inverso.
Transferencia de Zona
Los servidores DNS que declaran zonas esclavas o secundarias obtienen los archivos de zona (los registros de recursos) de otros servidores DNS autorizados para esas zonas. Á este proceso se le denomina transferencia de zona. Existen diferentes formas de llevarlo a cabo y es posible configurarlo en los servidores de nombres.
Transferencias de zona completas (AXFR)
En una transferencia de zona completa el servidor maestro le envía al servidor esclavo todos los datos de la zona. Una petición AXFR de un servidor esclavo a uno maestro es una solicitud para una transferencia de zona completa.
Transferencias de zona incrementales (IXFR)
En una transferencia de zona incremental el servidor maestro le envía al servidor esclavo solo los datos que han cambiado desde la última transferencia de zona. Una petición TXFR de un servidor esclavo a uno maestro es una solicitud para una transferencia de zona incremental.