Dns
This content is not available in your language yet.
6.2 Resolución de Nombres (DNS) en Linux
Sección titulada «6.2 Resolución de Nombres (DNS) en Linux»Introducción
Sección titulada «Introducción»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.
Objetivos de aprendizaje
Sección titulada «Objetivos de aprendizaje»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,nslookupyhost. - Implementar configuraciones locales con
/etc/hosts. - Analizar latencias y errores de resolución.
Conceptos Teóricos
Sección titulada «Conceptos Teóricos»1. ¿Qué es DNS?
Sección titulada «1. ¿Qué es DNS?»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.xFlujo de resolución:
Sección titulada «Flujo de resolución:»- Aplicación solicita resolución.
- El sistema consulta el resolver local.
- Si no existe en caché:
- consulta al servidor DNS configurado.
- Se obtiene la IP.
- Se devuelve al cliente.
2. Jerarquía DNS
Sección titulada «2. Jerarquía DNS»El DNS está estructurado en niveles:
- Root Servers (.)
- TLD (.com, .org, .es)
- Dominios autoritativos
Ejemplo:
www.example.com│├── Root (.)├── .com└── example.com (autoritativo)3. /etc/resolv.conf
Sección titulada «3. /etc/resolv.conf»Archivo clave para la resolución DNS:
cat /etc/resolv.confEjemplo:
nameserver 8.8.8.8nameserver 1.1.1.1Campos importantes:
- nameserver: servidor DNS.
- search: dominios de búsqueda.
4. /etc/hosts
Sección titulada «4. /etc/hosts»Sistema local de resolución estática:
cat /etc/hostsEjemplo:
127.0.0.1 localhost192.168.1.10 app.localEl sistema consulta primero /etc/hosts antes que DNS.
5. systemd-resolved
Sección titulada «5. systemd-resolved»En sistemas modernos, systemd introduce:
- resolución DNS gestionada
- caché local
- soporte DNSSEC
Consulta estado:
systemd-resolve --status6. NSS (Name Service Switch)
Sección titulada «6. NSS (Name Service Switch)»Define el orden de resolución:
cat /etc/nsswitch.confEjemplo:
hosts: files dnsOrden:
/etc/hosts- DNS
Laboratorio Práctico
Sección titulada «Laboratorio Práctico»Escenario
Sección titulada «Escenario»Un servidor no puede acceder a intranet.local. Necesitas:
- verificar resolución DNS
- comprobar configuración
- corregir problemas
Paso 1: Test básico de resolución
Sección titulada «Paso 1: Test básico de resolución»ping google.comSi falla:
ping 8.8.8.8Interpretación
Sección titulada «Interpretación»- ✅ IP funciona, DNS no → problema de resolución
- ❌ ambos fallan → problema de red
Paso 2: Uso de dig
Sección titulada «Paso 2: Uso de dig»dig google.comOutput esperado
Sección titulada «Output esperado»;; ANSWER SECTION:google.com. 300 IN A 142.250.x.xCampos clave:
- ANSWER SECTION: resultado
- Query time: latencia
Paso 3: Consulta a servidor específico
Sección titulada «Paso 3: Consulta a servidor específico»dig @8.8.8.8 intranet.localSirve para aislar problemas locales.
Paso 4: Uso de nslookup
Sección titulada «Paso 4: Uso de nslookup»nslookup google.comEjemplo output:
Server: 8.8.8.8Address: 8.8.8.8#53Paso 5: Verificar resolver local
Sección titulada «Paso 5: Verificar resolver local»cat /etc/resolv.confCorregir:
sudo nano /etc/resolv.confPaso 6: Test con host
Sección titulada «Paso 6: Test con host»host google.comPaso 7: Uso de /etc/hosts para override
Sección titulada «Paso 7: Uso de /etc/hosts para override»sudo nano /etc/hostsAñadir:
192.168.1.50 intranet.localValidar:
ping intranet.localPaso 8: Limpiar caché DNS
Sección titulada «Paso 8: Limpiar caché DNS»Systemd:
sudo systemd-resolve --flush-cachesErrores Comunes y Troubleshooting
Sección titulada «Errores Comunes y Troubleshooting»1. resolv.conf se sobrescribe
Sección titulada «1. resolv.conf se sobrescribe»-Causa:*
- DHCP o NetworkManager
No edites resolv.conf manualmente en sistemas gestionados.
-Solución:*
- Configurar DNS en Netplan o nmcli.
2. DNS lento
Sección titulada «2. DNS lento»Verificar:
dig google.comAlta latencia → cambiar DNS.
3. Dominio no resuelve
Sección titulada «3. Dominio no resuelve»Verificar:
dig dominioSi no hay ANSWER → problema externo.
4. Cache obsoleta
Sección titulada «4. Cache obsoleta»systemd-resolve --flush-caches5. Error en /etc/hosts
Sección titulada «5. Error en /etc/hosts»Entradas incorrectas pueden romper servicios.
Buenas Prácticas (Nivel Senior)
Sección titulada «Buenas Prácticas (Nivel Senior)»1. Usa DNS redundantes
Sección titulada «1. Usa DNS redundantes»nameserver 1.1.1.1nameserver 8.8.8.82. Implementa caché local
Sección titulada «2. Implementa caché local»- systemd-resolved
- dnsmasq
Reduce latencia.
3. Monitoriza latencia
Sección titulada «3. Monitoriza latencia»dig google.com | grep "Query time"4. Evita hardcoding innecesario
Sección titulada «4. Evita hardcoding innecesario»Solo usa /etc/hosts para casos controlados.
5. Seguridad DNS
Sección titulada «5. Seguridad DNS»- Evita DNS públicos en entornos sensibles.
- Usa DNS internos (AD, Bind).
6. Auditoría
Sección titulada «6. Auditoría»Revisar periódicamente:
cat /etc/resolv.conf7. Automatización
Sección titulada «7. Automatización»Ejemplo con Ansible:
- name: Configurar DNS lineinfile: path: /etc/resolv.conf line: "nameserver 1.1.1.1"Resumen y Siguiente Paso
Sección titulada «Resumen y Siguiente Paso»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.
