Cómo Configurar un Sistema Linux para Resolver Dominios .local

Artículos Guías Manuales Sistemas Linux Windows Binario 0

En sistemas Linux, los dominios .local no se resuelven automáticamente porque .local se reserva generalmente para mDNS (Multicast DNS) mediante herramientas como Avahi o systemd-resolved. Sin embargo, puedes configurar un Linux para que resuelva dominios .local de forma personalizada. Aquí tienes una guía paso a paso:

Paso 1: Verifica la existencia de Avahi o systemd-resolved

Si tu dominio .local debe resolverse mediante mDNS:

  1. Asegúrate de que avahi-daemon esté instalado y ejecutándose.

    sudo systemctl status avahi-daemon

    Si no está instalado:

    sudo apt update && sudo apt install avahi-daemon
    sudo systemctl start avahi-daemon
  2. Alternativamente, verifica si systemd-resolved maneja .local:

    sudo systemctl status systemd-resolved

Paso 2: Configura la resolución DNS para .local

  1. Edita /etc/nsswitch.conf Este archivo define el orden de búsqueda para nombres de dominio. Asegúrate de que mdns esté en la línea de hosts:

    sudo nano /etc/nsswitch.conf

    Modifica la línea de hosts para que se vea así:

    hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4

    • files: Busca en /etc/hosts.mdns4_minimal: Activa mDNS para dominios .local.

    Guarda y cierra el archivo.
  2. Configura el archivo /etc/hosts (opcional, si quieres resolver .local manualmente): Agrega las entradas necesarias:

    sudo nano /etc/hosts

    Ejemplo:

    192.168.1.100 server.local

Paso 3: Habilita mDNS si no lo está

Asegúrate de que Avahi o systemd-resolved manejen mDNS. Verifica el archivo de configuración:

Con Avahi

Edita /etc/avahi/avahi-daemon.conf:

sudo nano /etc/avahi/avahi-daemon.conf

Asegúrate de que el parámetro domain-name esté configurado:

domain-name=local

Reinicia Avahi:

sudo systemctl restart avahi-daemon

Con systemd-resolved

Edita /etc/systemd/resolved.conf:

sudo nano /etc/systemd/resolved.conf

Agrega o verifica lo siguiente:

MulticastDNS=yes

Reinicia el servicio:

sudo systemctl restart systemd-resolved

Paso 4: Prueba la configuración

  1. Intenta resolver un dominio .local:

    ping server.local

    Si funciona, verás una respuesta del dominio configurado.
  2. Usa dig o nslookup para mayor detalle:

    dig server.local

Ejemplo de ficheros configurados

  1. /etc/nsswitch.conf:

    hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4
  2. /etc/hosts:

    127.0.0.1 localhost
    192.168.1.100 server.local
  3. /etc/avahi/avahi-daemon.conf:

    [server] domain-name=local
  4. /etc/systemd/resolved.conf:

    [Resolve] MulticastDNS=yes

Recomendación: Uso de systemd-resolved para Resolver Dominios .local

Si estás configurando un sistema Linux para resolver dominios .local, systemd-resolved es una solución moderna, integrada y altamente eficiente. Es preferible usarlo en entornos actuales por las siguientes razones:

Ventajas de systemd-resolved

Si ya utilizas systemd en tu sistema (que es común en distribuciones modernas), systemd-resolved funciona de manera natural y eficiente.

Soporte Nativo para Multicast DNS (mDNS):

Maneja dominios .local de manera integrada sin necesidad de herramientas adicionales como Avahi.

Configuración sencilla para habilitar MulticastDNS.

Compatibilidad con Resolvencia Tradicional y DNS Moderno:

Puede funcionar junto con /etc/resolv.conf o mediante una configuración personalizada.

Admite características avanzadas como DNS over TLS y split DNS para redes complejas.

Gestión Centralizada de Resolución de Nombres:

Simplifica el manejo de servidores DNS y búsqueda de dominios desde una única configuración.

Integración Sólida con systemd:

Si ya utilizas systemd en tu sistema (que es común en distribuciones modernas), systemd-resolved funciona de manera natural y eficiente.