Fundamentos y Configuración del Sistema de Nombres de Dominio DNS

Enviado por Chuletator online y clasificado en Informática y Telecomunicaciones

Escrito el en español con un tamaño de 10,29 KB

📌 ¿Qué es DNS?

  • DNS (Domain Name System): Es el servicio esencial que traduce nombres de dominio ↔ direcciones IP.

  • Permite que los usuarios recuerden nombres amigables (ej: google.com) en lugar de direcciones IP numéricas complejas.

  • Funciona en la capa de aplicación del modelo OSI, utilizando el puerto 53 (tanto para UDP como para TCP).

  • Se caracteriza por ser un sistema jerárquico y distribuido.

1. Sistema de nombres plano

  • Consiste en un fichero local que asocia directamente un nombre con una IP.

  • Ejemplo clásico: el archivo /etc/hosts en sistemas Unix/Linux o C:\Windows\System32\drivers\etc\hosts en Windows.

  • Limitación: No es escalable para la magnitud actual de Internet.

2. Sistema jerárquico (DNS)

  • Introducido en 1983 para solventar las carencias del sistema plano.

  • Organiza los dominios en una estructura de árbol invertido: raíz → TLD → dominios → subdominios.

  • Está distribuido mediante múltiples servidores DNS autoritativos a nivel global.

Estructura del espacio de nombres

  • Dominio raíz: Representado por un punto (.).

  • TLD (Top Level Domain): Dominios de nivel superior como .com, .org, .net, .es, etc.

  • FQDN (Fully Qualified Domain Name): Nombre de dominio completo que incluye todos los niveles, ej: www.ejemplo.com.

  • Dominio absoluto: Aquel que termina explícitamente en un punto (.).

  • Dominio relativo: Aquel que no termina en punto y depende del contexto del dominio local.

🗂️ Zonas DNS

  • Una zona es una parte específica del árbol de nombres bajo la responsabilidad de una administración o servidor DNS concreto.

  • Un dominio es el nombre dentro del árbol; la zona es la base de datos que contiene los registros de esa parte del árbol.

  • La administración de subdominios puede delegarse a otros servidores DNS.

✔️ Tipos de zona

  • Primaria (Master): Contiene los ficheros de zona originales y es donde se realizan los cambios.

  • Secundaria (Slave): Es una copia de solo lectura sincronizada desde el servidor primario para aportar redundancia y robustez.

  • Se recomienda disponer de un mínimo de 2 servidores autoritativos por dominio.

🔍 Resolución de nombres

✔️ Resolver

  • Es la parte cliente del sistema DNS. Se encarga de generar las consultas (queries) y recibir las respuestas.

  • Está implementado generalmente como librerías del sistema operativo.

✔️ Resolución inversa

  • Proceso para obtener el nombre a partir de una dirección IP.

  • Utiliza dominios especiales bajo la rama in-addr.arpa (para IPv4).

✔️ Tipos de consulta

1. Recursiva

  • El servidor DNS al que se le pregunta asume la responsabilidad de buscar la respuesta completa por el cliente, consultando a otros servidores si es necesario.

  • Es el tipo de consulta habitual entre un cliente final y su DNS local (o resolver).

2. Iterativa

  • El servidor responde con la mejor información que posee en ese momento: ya sea la respuesta final o una referencia (referral) indicando: “yo no lo sé, pero pregunta en este otro servidor”.

  • Es el método de comunicación estándar entre servidores DNS.

✔️ Tipos de respuesta

  1. Autoritativa: La respuesta proviene directamente del servidor que tiene la autoridad sobre esa zona.

  2. No autoritativa: La respuesta proviene de la memoria caché de un servidor que realizó la consulta previamente.

  3. Error / NXDOMAIN: Indica que el dominio solicitado no existe.

📨 Protocolo DNS

  • Utiliza el puerto 53. Generalmente usa UDP para consultas rápidas y TCP para transferencias de zona o respuestas que exceden el límite de tamaño.

  • El tamaño típico del datagrama es de 512 bytes (sin extensiones EDNS0).

  • Un mensaje DNS se divide en varias secciones:

🧩 Estructura del mensaje

  • HEADER: Contiene flags (indicadores), tipo de mensaje y el número de registros en las siguientes secciones.

  • QUESTION: Contiene la consulta realizada (nombre, tipo y clase).

  • ANSWER: Contiene los registros de recursos que responden a la consulta.

  • AUTHORITY: Lista los servidores que son autoritativos para el dominio consultado.

  • ADDITIONAL: Información extra que puede ser útil (como las IPs de los servidores listados en la sección anterior).

🛠️ Registros DNS (Resource Records)

✔️ Formato general

nombre   ttl   clase   tipo   valor

  • Nombre: El nombre de dominio al que se refiere el registro.

  • TTL (Time To Live): Tiempo que el registro puede permanecer en caché.

  • Clase: Casi siempre IN (Internet).

  • Tipo: Define la función del registro (SOA, NS, A, MX, etc.).

📌 Tipos de registros principales

SOA (Start of Authority)

  • Es el primer registro de cualquier fichero de zona.

  • Indica el servidor primario, el correo del administrador y parámetros de sincronización (serial, refresh, retry, expire).

NS (Name Server)

  • Identifica los servidores DNS autoritativos para la zona.

  • Debe haber un mínimo de dos registros NS por zona para garantizar disponibilidad.

A (Address)

  • Asocia un nombre de host con una dirección IPv4.

  • Si un host tiene varias IPs, se definen varios registros A.

CNAME (Canonical Name)

  • Funciona como un alias; apunta un nombre a otro nombre canónico (que ya tiene un registro A).

  • El alias no apunta directamente a una IP.

PTR (Pointer)

  • Utilizado para la resolución inversa (IP → nombre).

  • Se define exclusivamente en las zonas de búsqueda inversa in-addr.arpa.

MX (Mail Exchange)

  • Especifica los servidores de correo para el dominio.

  • Incluye un valor de prioridad (donde el número más bajo indica la mayor prioridad).

🛠️ Ficheros de zona mínimos requeridos

  • Zona directa (Forward): Resolución de nombres a IPs.

  • Zona inversa (Reverse): Resolución de IPs a nombres.

  • Hint file: Contiene las direcciones de los servidores raíz (root hints).

  • Loopback reverse zone: Para la resolución de la dirección local 127.0.0.1.

Instalación y Configuración de DNS

  1. Instalar el software: El estándar en sistemas Linux es BIND (Berkeley Internet Name Domain).

  2. Crear los ficheros de zona: Definir la base de datos de nombres e IPs.

  3. Configurar los registros esenciales:

    • Registro SOA.

    • Registros NS.

    • Registros A, PTR, MX, etc.

  4. Establecer roles: Configurar el servidor como primario o secundario según corresponda.

  5. Realizar pruebas de verificación:

    • nslookup: Herramienta básica de consulta.

    • dig: Herramienta avanzada y detallada para diagnóstico.

    • host: Utilidad sencilla para resoluciones rápidas.

Ejemplo de configuración: named.conf

options {
    directory "/var/named";
    recursion yes;
    allow-query { any; };
};

zone "midominio.com" IN {
    type master;
    file "db.midominio.com";
};

zone "1.168.192.in-addr.arpa" IN {
    type master;
    file "db.192.168.1";
};

Ejemplo de Zona Directa: db.midominio.com

$TTL 86400
@   IN  SOA ns1.midominio.com. admin.midominio.com. (
        20250101 ; Serial
        3600     ; Refresh
        1800     ; Retry
        604800   ; Expire
        86400 )  ; Minimum TTL

    IN  NS  ns1.midominio.com.
    IN  NS  ns2.midominio.com.

ns1 IN  A   192.168.1.10
ns2 IN  A   192.168.1.11

www IN  A   192.168.1.20
mail IN A   192.168.1.30

@   IN  MX 10 mail.midominio.com.

Ejemplo de Zona Inversa: db.192.168.1

$TTL 86400
@   IN  SOA ns1.midominio.com. admin.midominio.com. (
        20250101 ; Serial
        3600     ; Refresh
        1800     ; Retry
        604800   ; Expire
        86400 )  ; Minimum TTL

    IN  NS  ns1.midominio.com.
    IN  NS  ns2.midominio.com.

10  IN  PTR ns1.midominio.com.
11  IN  PTR ns2.midominio.com.
20  IN  PTR www.midominio.com.
30  IN  PTR mail.midominio.com.

Entradas relacionadas: