systemd-resolved (Español)

From ArchWiki

Estado de la traducción: esta traducción de systemd-resolved fue revisada el 2019-10-29. Si existen cambios puede actualizarla o avisar al equipo de traducción.

systemd-resolved es un servicio de systemd (Español) que proporciona resolución de nombres de red a aplicaciones locales a través de una interfaz D-Bus (Español), el servicio NSS de resolve (nss-resolve(8)), y un receptor de escucha de DNS local en 127.0.0.53. Consulte systemd-resolved(8) para conocer su utilización.

Instalación

systemd-resolved es una parte del paquete systemd que se instala por defecto.

Configuración

systemd-resolved proporciona servicios de resolución para sistema de nombres de dominio (DNS) (incluyendo DNSSEC y DNS mediante TLS), DNS de multidifusión (mDNS) y resolución de nombres de multidifusión de enlace local (LLMNR).

La resolución se puede configurar editando /etc/systemd/resolved.conf y/o colocando archivos con extensión .conf en /etc/systemd/resolved.conf.d/. Véase resolved.conf(5).

Para utilizar systemd-resolved inicie y active systemd-resolved.service.

Sugerencia: para comprender el contexto en torno a las opciones y los cambios, se puede activar la información detallada de depuración de errores para systemd-resolved como se describe en systemd (Español)#Diagnosticar un servicio.

DNS

systemd-resolved tiene cuatro modos diferentes para manejar la resolución de nombres de dominio (los cuatro modos se describen en systemd-resolved(8) § /ETC/RESOLV.CONF). Nos centraremos aquí en los dos modos más relevantes:

  1. Utilizar el archivo «stub» de DNS de systemd: el archivo «stub» de DNS de systemd /run/systemd/resolve/stub-resolv.conf contiene el código local 127.0.0.53 como el único servidor DNS y una lista de dominios de búsqueda. Este es el modo de operación recomendado. Se aconseja a los usuarios del servicio que redirijan el archivo /etc/resolv.conf al archivo local de resolución de DNS /run/systemd/resolve/stub-resolv.conf administrado por systemd-resolved. Esto extiende la configuración administrada por systemd a todos los clientes. Se puede consiguir reemplazando /etc/resolv.conf con un enlace simbólico al archivo «stub» de systemd:
    # ln -sf /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf
  2. Preservar resolv.conf: este modo conserva /etc/resolv.conf y systemd-resolved es simplemente un cliente de aquel archivo. Este modo es menos disruptivo ya que /etc/resolv.conf puede continuar siendo administrado por otros paquetes.
Nota: el modo en que opera systemd-resolved se detecta automáticamente, dependiendo de si /etc/resolv.conf es un enlace simbólico al archivo de resolución de DNS del archivo «stub» local o contiene nombres de servidores.

Configurar servidores DNS

Sugerencia: para verificar el DNS realmente utilizado por systemd-resolved, utilice la orden:
$ resolvectl status
Automáticamente

systemd-resolved funcionará de forma inmediata con un gestor de red utilizando /etc/resolv.conf. No se requiere ninguna configuración particular ya que systemd-resolved se detectará siguiendo el enlace simbólico /etc/resolv.conf. Este será el caso con systemd-networkd (Español) o NetworkManager (Español).

Sin embargo, si los clientes DHCP y VPN utilizan el programa resolvconf para configurar servidores de nombres y dominios de búsqueda (consulte openresolv#Users para obtener una lista de software que use resolvconf), se necesita el paquete adicional systemd-resolvconf para proporcionar el enlace simbólico /usr/bin/resolvconf.

Nota: systemd-resolved tiene una interfaz resolvconf limitada y es posible que no funcione con todos los clientes; consulte resolvectl(1) § COMPATIBILITY WITH RESOLVCONF(8) para obtener más información.
Manualmente

Con el modo de archivo «stub» de DNS local, se proporcionan servidores DNS alternativos en el archivo resolved.conf(5):

/etc/systemd/resolved.conf.d/dns_servers.conf
[Resolve]
DNS=91.239.100.100 89.233.43.71
Nota: los gestores de red tienen su propia configuración de DNS que anula el valor predeterminado de systemd-resolved'.
Reserva

Si systemd-resolved no recibe las direcciones del servidor DNS del gestor de red y no hay servidores DNS configurados [[#Manualmente|manualmente], entonces systemd-resolved vuelve a las direcciones DNS de reserva, garantizando así que la resolución de DNS funcione siempre.

Nota: los DNS de reserva están en este orden: Cloudflare, Quad9 (sin filtrar y sin DNSSEC) y Google; vea el PKGBUILD de systemd donde se definen los servidores.

Las direcciones se pueden cambiar configurando FallbackDNS= en resolved.conf(5). Por ejemplo:

/etc/systemd/resolved.conf.d/fallback_dns.conf
[Resolve]
FallbackDNS=127.0.0.1 ::1

Para desactivar la funcionalidad de reserva de DNS, configure la opción FallbackDNS sin especificar ninguna dirección:

/etc/systemd/resolved.conf.d/fallback_dns.conf
[Resolve]
FallbackDNS=

DNSSEC

Por defecto, la validación DNSSEC (Español) solo se activará si el servidor DNS ascendente lo admite. Si desea validar siempre DNSSEC, rompiendo así la resolución de DNS con servidores de nombres que no lo admiten, establezca DNSSEC=true:

/etc/systemd/resolved.conf.d/dnssec.conf
[Resolve]
DNSSEC=true
Sugerencia: si su servidor DNS no es compatible con DNSSEC y experimenta problemas con el modo predeterminado de degradación permitida (por ejemplo, systemd issue 10579), puede desactivar explícitamente el soporte DNSSEC de systemd-resolve estableciendo DNSSEC=false.

Pruebe la validación de DNSSEC consultando un dominio con una firma no válida:

$ resolvectl query sigfail.verteiltesysteme.net
sigfail.verteiltesysteme.net: resolve call failed: DNSSEC validation failed: invalid

Ahora pruebe un dominio con firma válida:

$ resolvectl query sigok.verteiltesysteme.net
sigok.verteiltesysteme.net: 134.91.78.139

-- Information acquired via protocol DNS in 266.3ms.
-- Data is authenticated: yes

DNS mediante TLS

Advertencia: systemd-resolve solo valida el certificado del servidor DNS si el mismo se emite para la dirección IP del servidor (una solución rara). Los certificados de servidores DNS sin una dirección IP, no se comprueban, lo que hace que el sistema de resolución sea vulnerable a los ataques de intermediarios. Consulte systemd issue 9397.

DNS mediante TLS está desactivado por defecto. Para activarlo, cambie la configuración DNSOverTLS= en la sección [Resolve] en resolved.conf(5).

/etc/systemd/resolved.conf.d/dns_over_tls.conf
[Resolve]
DNSOverTLS=yes
Nota: el servidor DNS utilizado debe admitir DNS mediante TLS; de lo contrario, todas las solicitudes DNS fallarán.

mDNS

systemd-resolved es capaz de funcionar solucionando y respondiendo a DNS de multidifusión.

Para actuar como «solucionador» se proporciona la resolución del nombre del equipo utilizando un esquema de nombres tal como «hostname.local».

mDNS solo se activará para la conexión si tanto la configuración global de systemd-resolved (MulticastDNS= en resolved.conf(5)) como la configuración del gestor de red por conexión están activadas. Por defecto, systemd-resolved activa el «respondedor» mDNS, pero tanto systemd-networkd (Español) como NetworkManager (Español) no lo activan para las conexiones:

Nota: si Avahi está instalado, considere desactivar avahi-daemon.service y avahi-daemon.socket para evitar conflictos con systemd-resolved.

{{Sugerencia|el valor predeterminado para todas las conexiones de NetworkManager (Español) se puede establecer creando un archivo de configuración en /etc/NetworkManager/conf.d/ y configurando connection.mdns= en la sección [connection]. Por ejemplo, lo siguiente activará el solucionador mDNS para todas las conexiones:

/etc/NetworkManager/conf.d/mdns.conf
[connection]
connection.mdns=1

Vea NetworkManager.conf(5).

Si planea usar mDNS y un firewall, asegúrese de abrir el puerto UDP 5353.

LLMNR

La resolución de nombres de multidifusión de enlace local es un protocolo de resolución de nombres de equipo creado por Microsoft.

LLMNR solo se activará para la conexión si tanto la configuración global de systemd-resolved (LLMNR= en resolved.conf(5)) como la configuración del gestor de red por conexión están activadas. Por defecto, systemd-resolved activa el «respondedor» LLMNR para systemd-networkd (Español) y NetworkManager (Español) lo activa para las conexiones:

{{Sugerencia|el valor predeterminado para todas las conexiones de NetworkManager (Español) se puede establecer creando un archivo de configuración en /etc/NetworkManager/conf.d/ y configurando connection.llmnr= en la sección [connection]. Por ejemplo, lo siguiente desactivará LLMNR para todas las conexiones:

/etc/NetworkManager/conf.d/llmnr.conf
[connection]
connection.llmnr=0

Consulte NetworkManager.conf(5).

Si planea usar LLMNR y un firewall, asegúrese de abrir los puertos UDP y TCP 5355.

Buscar

Para consultar registros DNS, servidores mDNS o LLMNR puede usar la utilidad resolvectl.

Por ejemplo, para consultar un registro DNS:

$ resolvectl query archlinux.org
archlinux.org: 2a01:4f8:172:1d86::1
               138.201.81.199

-- Information acquired via protocol DNS in 48.4ms.
-- Data is authenticated: no

Consulte resolvectl(1) § EXAMPLES para conocer más ejemplos.