Fundamentos de la configuración DNS en Headscale
Headscale, una implementación de código abierto del servidor de control Tailscale, permite establecer redes privadas seguras. La configuración DNS es crucial para la resolución de nombres de dominio. Para habilitar DNS, ajusta los parámetros en el archivo de configuración.
Activación de MagicDNS
MagicDNS asigna automáticamente dominios a los nodos. Configura en la sección dns del archivo config-example.yaml:
habilitar_magic_dns: verdaderopara activar la función.dominio_base: "ejemplo.org"define el dominio base, los nodos serán accesibles comonombre-nodo.ejemplo.org.sobrescribir_dns_local: verdaderopara reemplazar la configuración DNS local del cliente.
Definición de servidores DNS
Especifica los servidores DNS en la configuración. Ejemplo:
servidores_dns:
- 1.1.1.1
- 9.9.9.9
Puedes usar servidores públicos o internos según los requisitos de tu red.
Diagnóstico de problemas de resolución DNS
Si la resolución de dominios falla, sigue estos pasos para identificar la causa.
Revisión de la configuración
Verifica en el archivo de configuración:
- Que MagicDNS esté habilitado.
- Que el nombre de dominio base sea correcto.
- Que la lista de servidores DNS esté bien definida.
Refiérete a config-example.yaml para ejemplos detallados.
Análisis de la topología de red
La estructura de red afecta el DNS. Un esquema típico incluye headscale como nodo central gestionando conexiones. ACLs mal configuradas pueden interferir; consulta docs/ref/acls.md para reglas de acceso.
Inspección en el cliente
En dispositivos clientes, ejecuta comandos para verificar:
tailscale status
tailscale debug dns
Esto muestra los servidores DNS activos y los dominios de búsqueda configurados.
Configuraciones avanzadas de DNS
Con DNS básico funcional, aplica técnicas avanzadas para mejorar el rendimiento.
Implementación de Split DNS
Asigna servidores DNS diferentes por dominio. Ejemplo en config-example.yaml:
dns_dividido:
"interno.ejemplo.org":
- 10.0.0.50
"ejemplo.org":
- 1.1.1.1
Esta opción permite resolver dominios internos con servidores locales y externos con públicos.
Incorporación de registros DNS adicionales
Añade registros personalizados directamente en la configuración:
registros_extra:
- nombre: "app.interna"
tipo: "A"
valor: "192.168.1.10"
Alternativamente, usa un archivo JSON referenciado con archivo_registros_extra para gestionar múltiples entradas.
Ajuste de dominios de búsqueda
Configura dominios_busqueda: ["interno.ejemplo.org"] para acceder a nodos usando nombres cortos, como servidor1 en lugar de servidor1.interno.ejemplo.org.
Solución a inconvenientes frecuentes
Configuración DNS no efectiva
Si los cambios no se aplican:
- Reinicia el servicio headscale.
- En el cliente, ejecuta
tailscale up --force-reauthpara reautenticar. - Revisa el archivo de configuración por errores de sintaxis.
Resolución parcial de dominios
Dominios específicos que no resuelven pueden deberse a configuraciones incorrectas en dns_dividido o reglas ACL. Revisa secciones relevantes en config-example.yaml y docs/ref/acls.md.
Uso con Exit Node
Al emplear Exit Nodes, establece sobrescribir_dns_local: verdadero para estabilidad. Consulta los comentarios en config-example.yaml para más detalles.
Estos pasos abordan la mayoría de problemas DNS en Headscale. Una configuración DNS precisa es vital para una red operativa completa. Para información adicional, accede a la documentación oficial en docs/ref/dns.md.