TEMA 2 DNS (SRC)

¿Qué es lo importante de este tema?

  • DNS es el servicio que convierte nombres de máquina legibles (ej. www.ejemplo.com) en direcciones IP (ej. 93.184.216.34) y viceversa.
  • Un servidor DNS (en Linux habitualmente BIND/named) puede ser maestro de zonas (donde guarda la información) o esclavo (copia de otro).

Conceptos clave (muy básicos)

  • Zona directa: mapea nombre → IP (registros A, CNAME, MX, NS).
  • Zona inversa: mapea IP → nombre (registros PTR).
  • SOA (Start of Authority): bloque principal en cada zona que contiene metadatos (Serial, Refresh, Retry, Expire, Negative TTL).
  • Serial: número de versión de la zona — siempre súbelo cuando cambies la zona.

Archivos y rutas importantes en BIND

  • /etc/bind/named.conf — archivo principal que incluye otros.
  • /etc/bind/named.conf.options — opciones globales (forwarders, listen-on, dnssec).
  • /etc/bind/named.conf.local — donde declaran las zonas que creas (master, file “/etc/bind/db.tuzona”).
  • Ficheros de zona: p.ej. /etc/bind/db.tu-dominio.com (directa) y /etc/bind/db.1.30.175 (inversa).

Estructura típica de un fichero de zona (qué contiene)

  • Primera línea: $TTL 1800 (tiempo por defecto en segundos).
  • @ IN SOA ns.tu-dominio. admin.tu-dominio. (
    • Serial (versión), Refresh, Retry, Expire, Negative Cache TTL.
  • @ IN NS ns.tu-dominio. → servidor de nombres.
  • ns IN A 175.30.1.10 → registro A del nameserver.
  • www IN A 175.30.1.10, ftp IN A ... → otros A.
  • En inversa: 10 IN PTR ns.tu-dominio.

Pasos básicos para montar un servidor DNS (resumen práctico)

  1. Instalar: sudo apt update && sudo apt install -y bind9 bind9utils dnsutils.
  2. Declarar zonas en /etc/bind/named.conf.local (poner zone "dominio" { type master; file "ruta"; };).
  3. Crear/editar los ficheros de zona (/etc/bind/db.tudominio, /etc/bind/db.rev).
  4. Validar antes de recargar:
    • sudo named-checkconf (comprobar config general)
    • sudo named-checkzone tudominio /etc/bind/db.tudominio (comprobar zona)
  5. Recargar servicio: sudo systemctl reload named o sudo systemctl restart named.
  6. Probar: dig @IP_SERVIDOR www.tudominio.com y dig -x IP @IP_SERVIDOR (inversa).

Opciones y ajustes útiles

  • named.conf.options:
    • listen-on { IP; }; → en qué interfaces escucha el servidor.
    • forwarders { 1.1.1.1; 8.8.8.8; }; → reenviar consultas que no puede resolver.
    • dnssec-validation auto; → activar DNSSEC si interesa.
  • resolv.conf y netplan: asegúrate que los clientes usan tu DNS (poner tu IP en nameservers y search para nombres cortos).

Errores comunes y cómo detectarlos

  • «no current owner name» → líneas con indentación inicial: las entradas deben comenzar en columna 1; quita espacios al principio.
  • CRLF / ^M → ficheros con formato Windows; usa dos2unix.
  • Olvidar el punto final (ns.tu-dominio.) en FQDN dentro de zonas provoca problemas.
  • No incrementar el Serial → los esclavos/caches no verán los cambios.
  • Usa logs y comandos para diagnosticar: journalctl -u named, tail /var/log/syslog.

Comandos clave para tu práctica

  • Instalación: sudo apt install bind9 bind9utils dnsutils
  • Estado: sudo systemctl status named
  • Validación config: sudo named-checkconf
  • Validación zona: sudo named-checkzone zona archivo
  • Probar resolución: dig @IP_SERVIDOR nombre / dig -x IP @IP_SERVIDOR / nslookup

Buenas prácticas (rápido)

  • Hacer copia de seguridad antes de editar (cp archivo archivo.bak).
  • Mantener ficheros con permisos seguros (root:root, no world-writable).
  • Documentar cambios y capturas para la práctica (named-checkzone OK, status active, salidas de dig).
  • Incrementar Serial cada vez que modifiques la zona.

EJERCICIO PRÁCTICO

Resumen rápido

  • IP del servidor: 175.30.1.10/26
  • Dominio: javier.com
  • Zonas: directa javier.com y inversa 1.30.175.in-addr.arpa
  • Paquetes: bind9, bind9utils, dnsutils
  • Demonio: named (BIND)

0) Preparar VirtualBox

  • Adaptador 1: Red interna → nombre ubuntudns.
  • Adaptador 2 (temporal): NAT para tener Internet e instalar paquetes.
  • Arranca la VM.

1) Configurar netplan (IP estática, nameserver y search)

Edita /etc/netplan/01-netcfg.yaml (o el fichero que haya en /etc/netplan/) y pega esto:

network:
  version: 2
  renderer: networkd
  ethernets:
    enp0s3:
      dhcp4: no
      addresses: [175.30.1.10/26]
      nameservers:
        addresses: [175.30.1.10]
        search: [javier.com]

Si tu interfaz no es enp0s3, sustitúyela por la que ip addr muestre.

Aplica y comprueba:

sudo cp /etc/netplan/01-netcfg.yaml /etc/netplan/01-netcfg.yaml.bak
sudo netplan apply
ip addr show enp0s3
cat /etc/resolv.conf

Si netplan da advertencia por permisos:

sudo chown root:root /etc/netplan/01-netcfg.yaml
sudo chmod 644 /etc/netplan/01-netcfg.yaml
sudo netplan apply

2) Instalar bind9

Con el adaptador NAT activo:

sudo apt update
sudo apt install -y bind9 bind9utils dnsutils
sudo systemctl enable --now named.service
sudo systemctl status named --no-pager

Asegúrate de ver active (running).


3) Declarar las zonas (named.conf.local)

Edita /etc/bind/named.conf.local y añade:

zone "javier.com" {
    type master;
    file "/etc/bind/db.javier.com";
};

zone "1.30.175.in-addr.arpa" {
    type master;
    file "/etc/bind/db.175.30.1";
};

Guarda el archivo.


4) Crear fichero de zona directa /etc/bind/db.javier.com

Crea el archivo con este contenido (usa exactamente esto):

sudo cp /etc/bind/db.local /etc/bind/db.javier.com.bak 2>/dev/null || true
sudo tee /etc/bind/db.javier.com > /dev/null <<'EOF'
$TTL 1800
@ IN SOA ns.javier.com. admin.javier.com. (
        20251013 ; Serial
        604800   ; Refresh
        86400    ; Retry
        2419200  ; Expire
        604800 ) ; Negative Cache TTL

; Nameserver
@ IN NS ns.javier.com.

; Registros A
ns   IN A 175.30.1.10
@    IN A 175.30.1.10
www  IN A 175.30.1.10
ftp  IN A 175.30.1.10

; pc1 según enunciado -> 170.170.170.1
pc1  IN A 170.170.170.1
EOF

Nota: el campo pc1 se solicita con IP 170.170.170.1 según el enunciado.


5) Crear fichero de zona inversa /etc/bind/db.175.30.1

Crea el archivo con este contenido:

sudo tee /etc/bind/db.175.30.1 > /dev/null <<'EOF'
$TTL 1800
@ IN SOA ns.javier.com. admin.javier.com. (
        20251013 ; Serial
        604800   ; Refresh
        86400    ; Retry
        2419200  ; Expire
        604800 ) ; Negative Cache TTL

@ IN NS ns.javier.com.

10 IN PTR ns.javier.com.
45 IN PTR pc2.javier.com.
EOF

6) Comprobación sintaxis y recarga de BIND

Valida los ficheros y recarga:

sudo named-checkconf || echo "named-checkconf ERROR"
sudo named-checkzone javier.com /etc/bind/db.javier.com
sudo named-checkzone 1.30.175.in-addr.arpa /etc/bind/db.175.30.1

# Si OK:
sudo systemctl reload named || sudo systemctl restart named
sudo systemctl status named --no-pager

Si named-checkzone devuelve errores como no current owner name o unexpected end of line, revisa:

  • que no haya espacios al principio de las líneas importantes,
  • que los FQDN terminen con punto . (por ejemplo ns.javier.com.),
  • que no existan finales Windows (^M). Para limpiar espacios y CRLF:
sudo cp /etc/bind/db.javier.com /etc/bind/db.javier.com.bak
sudo sed -i 's/^[ \t]\+//; s/[ \t]\+$//' /etc/bind/db.javier.com
sudo apt update && sudo apt install -y dos2unix
sudo dos2unix /etc/bind/db.javier.com

sudo cp /etc/bind/db.175.30.1 /etc/bind/db.175.30.1.bak
sudo sed -i 's/^[ \t]\+//; s/[ \t]\+$//' /etc/bind/db.175.30.1
sudo dos2unix /etc/bind/db.175.30.1

Luego vuelve a named-checkzone.


7) Ajustes adicionales

7.1 named.conf.options

Editar /etc/bind/named.conf.options para que BIND escuche en la IP interna y tenga forwarder público:

options {
    directory "/var/cache/bind";

    listen-on { 175.30.1.10; };
    allow-query { any; };

    forwarders { 1.1.1.1; };

    dnssec-validation auto;
    auth-nxdomain no;
};

Reinicia BIND tras editar:

sudo named-checkconf
sudo systemctl restart named

7.2 nsswitch.conf

Editar /etc/nsswitch.conf y poner:

hosts: dns files

(de forma que DNS se consulte antes de /etc/hosts).


8) Probar resoluciones y añadir pc2

Pruebas y pasos pedidos en la práctica:

Comprobar resolución directa:

dig @175.30.1.10 www.javier.com +short
dig @175.30.1.10 pc1.javier.com +short

Añadir pc2 (A record) y actualizar Serial:

# Incrementa Serial en SOA manualmente; aquí se reemplaza con 20251014
sudo sed -i 's/20251013/20251014/' /etc/bind/db.javier.com

# Añadir pc2
sudo tee -a /etc/bind/db.javier.com > /dev/null <<'EOF'
pc2 IN A 175.30.1.45
EOF

sudo named-checkzone javier.com /etc/bind/db.javier.com
sudo systemctl reload named

# Comprobar A de pc2
dig @175.30.1.10 pc2.javier.com +short

Comprobar resolución inversa (antes de PTR, debe fallar):

dig -x 175.30.1.45 @175.30.1.10 +short
nslookup 175.30.1.45 175.30.1.10

Añadir PTR y actualizar Serial de la zona inversa:

sudo sed -i 's/20251013/20251014/' /etc/bind/db.175.30.1

# Añadir PTR para .45 (si no está)
sudo tee -a /etc/bind/db.175.30.1 > /dev/null <<'EOF'
45 IN PTR pc2.javier.com.
EOF

sudo named-checkzone 1.30.175.in-addr.arpa /etc/bind/db.175.30.1
sudo systemctl reload named

# Comprobar inversa ahora
dig -x 175.30.1.45 @175.30.1.10 +short
nslookup 175.30.1.45 175.30.1.10

9) Comandos útiles para diagnóstico y logs

  • Ver puertos DNS escuchando:
ss -ltnup | grep :53
  • Revisar logs de named:
sudo journalctl -u named -n 80 --no-pager
sudo tail -n 80 /var/log/syslog
  • Validar configuración global:
sudo named-checkconf
  • Validar zona:
sudo named-checkzone zona archivo

10) Errores comunes y soluciones rápidas

  • no current owner name → quitar espacios al principio de la línea que debería empezar en columna 1.
  • unexpected end of line → falta ) en SOA o fichero truncado; revisa SOA y balanceo de paréntesis.
  • Finales Windows (^M) → dos2unix archivo.
  • Olvidar . al final de FQDNs → añade . (ej. ns.javier.com.).
  • Olvidar incrementar Serial → no se aplican los cambios correctamente.

11) Capturas/entregables (lo mínimo que debes incluir)

  1. /etc/netplan/01-netcfg.yaml (muestra IP y search).
  2. cat /etc/resolv.conf (muestra nameserver 175.30.1.10 y search javier.com).
  3. /etc/bind/named.conf.local (declaración de zonas).
  4. /etc/bind/db.javier.com y /etc/bind/db.175.30.1 (contenido).
  5. Salida de sudo named-checkzone ... (OK).
  6. sudo systemctl status named (active).
  7. Salidas de dig/nslookup pedidas en la práctica.

Publicaciones Similares

  • |

    Descarga Win11

    COMO CREAR UNA UNIDAD USB CON WINDOWS 11 LISTO PARA INSTALAR. Una vez mas nuestro salvador Microsoft nos brinda la posibilidad gratuita (aunque necesitas una licencia válida) de descargar totalmente gratis Windows 11. Como? pues sigue estos sencillos pasos: Ahora, sólo selecciona la unidad USB como arranque inicial e instala tu nuevo y flamante Win11.

  • |

    Herramientas

    Como a lo largo del curso, están surgiendo herramientas muy interesantes, abro esta entrada para listarlas aquí. CALCULADORA DE BASES Introduce un número Base de origen BinarioOctalDecimalHexadecimal Base de destino BinarioOctalDecimalHexadecimal Resultado Convertir Calculadora de Fuentes de Alimentación (PSU) Calcula las necesidades de potencia de tu PC, introduce los datos y elige sabiamente. By Be-Quiet…

  • |

    TEMA 03 (RDE)

    CONFIGURACIÓN Y ADMINISTRACIÓN DE REDES LOCALES 3.-Configuración a nivel de capa de red 3.2. Subredes (Subneting): 192.168.0 y 192.168.1 identifican la red. Por lo que el PC A y el PC B pueden comunicarse, al estar en la misma red, pero no se comunicarán con el PC C y PC D, que están en otra…

  • | |

    COMANDOS CONSOLA

    1.-Configurar un Router con DHCP IP de red: 192.168.1.0 (las IPs son de ejemplo) 2.-Conexión de 2 Routers Podemos duplicar la red anterior teniendo en cuenta que debemos cambiar las ips: IP de Red: 192.168.3.0 (las IPs son de ejemplo) IP de Router A: 192.168.1.1 IP de Router B: 192.168.3.1 Configuración del enrutamiento estático: (Al…

  • ¡EMPEZAMOS!

    Te damos la bienvenida a Informaticayredes.incuve.es, otra forma de estudiar. No es mas que los apuntes, resúmenes y tareas de un estudiante del CGM de Sistemas Microinformáticos y redes, que ha tenido la suerte de empezar en el CIFP César Manrique, Centro Integrado de Formación Profesional, con una oferta formativa actualizada a los tiempos que…

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *