Skip to content

Dns

This content is not available in your language yet.


En cualquier infraestructura moderna, los humanos no trabajan con direcciones IP, sino con nombres. Recordar 192.168.10.25 es inviable a escala; en su lugar utilizamos nombres como app.interna.local o www.example.com. Aquí es donde entra el DNS (Domain Name System), el servicio responsable de traducir nombres de dominio en direcciones IP.

Para un Sysadmin, comprender el funcionamiento del DNS es crítico: una mala configuración puede provocar desde lentitud en aplicaciones hasta la completa indisponibilidad de servicios. Además, el DNS es un punto clave tanto en rendimiento como en seguridad.


Al finalizar este capítulo serás capaz de:

  • Entender cómo funciona el sistema DNS a nivel conceptual.
  • Configurar resolvers en Linux correctamente.
  • Diagnosticar problemas de resolución de nombres.
  • Utilizar herramientas como dig, nslookup y host.
  • Implementar configuraciones locales con /etc/hosts.
  • Analizar latencias y errores de resolución.

El Domain Name System (DNS) es un sistema distribuido jerárquico que traduce nombres de dominio en direcciones IP.

Ejemplo:

www.google.com → 142.250.x.x
  1. Aplicación solicita resolución.
  2. El sistema consulta el resolver local.
  3. Si no existe en caché:
    • consulta al servidor DNS configurado.
  4. Se obtiene la IP.
  5. Se devuelve al cliente.

El DNS está estructurado en niveles:

  • Root Servers (.)
  • TLD (.com, .org, .es)
  • Dominios autoritativos

Ejemplo:

www.example.com
│
├── Root (.)
├── .com
└── example.com (autoritativo)

Archivo clave para la resolución DNS:

Ventana de terminal
cat /etc/resolv.conf

Ejemplo:

nameserver 8.8.8.8
nameserver 1.1.1.1

Campos importantes:

  • nameserver: servidor DNS.
  • search: dominios de búsqueda.

Sistema local de resolución estática:

Ventana de terminal
cat /etc/hosts

Ejemplo:

127.0.0.1 localhost
192.168.1.10 app.local

El sistema consulta primero /etc/hosts antes que DNS.


En sistemas modernos, systemd introduce:

  • resolución DNS gestionada
  • caché local
  • soporte DNSSEC

Consulta estado:

Ventana de terminal
systemd-resolve --status

Define el orden de resolución:

Ventana de terminal
cat /etc/nsswitch.conf

Ejemplo:

hosts: files dns

Orden:

  1. /etc/hosts
  2. DNS

Un servidor no puede acceder a intranet.local. Necesitas:

  • verificar resolución DNS
  • comprobar configuración
  • corregir problemas

Ventana de terminal
ping google.com

Si falla:

Ventana de terminal
ping 8.8.8.8

  • ✅ IP funciona, DNS no → problema de resolución
  • ❌ ambos fallan → problema de red

Ventana de terminal
dig google.com
;; ANSWER SECTION:
google.com. 300 IN A 142.250.x.x

Campos clave:

  • ANSWER SECTION: resultado
  • Query time: latencia

Ventana de terminal
dig @8.8.8.8 intranet.local

Sirve para aislar problemas locales.


Ventana de terminal
nslookup google.com

Ejemplo output:

Server: 8.8.8.8
Address: 8.8.8.8#53

Ventana de terminal
cat /etc/resolv.conf

Corregir:

Ventana de terminal
sudo nano /etc/resolv.conf

Ventana de terminal
host google.com

Ventana de terminal
sudo nano /etc/hosts

Añadir:

192.168.1.50 intranet.local

Validar:

Ventana de terminal
ping intranet.local

Systemd:

Ventana de terminal
sudo systemd-resolve --flush-caches

-Causa:*

  • DHCP o NetworkManager

No edites resolv.conf manualmente en sistemas gestionados.

-Solución:*

  • Configurar DNS en Netplan o nmcli.

Verificar:

Ventana de terminal
dig google.com

Alta latencia → cambiar DNS.


Verificar:

Ventana de terminal
dig dominio

Si no hay ANSWER → problema externo.


Ventana de terminal
systemd-resolve --flush-caches

Entradas incorrectas pueden romper servicios.


nameserver 1.1.1.1
nameserver 8.8.8.8

  • systemd-resolved
  • dnsmasq

Reduce latencia.


Ventana de terminal
dig google.com | grep "Query time"

Solo usa /etc/hosts para casos controlados.


  • Evita DNS públicos en entornos sensibles.
  • Usa DNS internos (AD, Bind).

Revisar periódicamente:

Ventana de terminal
cat /etc/resolv.conf

Ejemplo con Ansible:

- name: Configurar DNS
lineinfile:
path: /etc/resolv.conf
line: "nameserver 1.1.1.1"

Ahora entiendes cómo funciona el sistema DNS en Linux, cómo configurarlo y cómo diagnosticar problemas reales de resolución. Este conocimiento es crítico para garantizar conectividad y rendimiento en infraestructuras modernas.

El siguiente paso es dominar el acceso remoto seguro:

➡️ 6.3 SSH Profesional, donde aprenderás a securizar accesos, gestionar claves y operar servidores de forma eficiente y segura.