systemd-resolved (Español)
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
.
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:
- 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 local127.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
- 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.
/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
$ 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
.
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
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.
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
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
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
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:
- Para systemd-networkd (Español) la configuración es
MulticastDNS=
en la sección[Network]
. Consulte systemd.network(5). - Para NetworkManager (Español) la configuración es
mdns=
en la sección[connection]
; consulte nm-settings(5). Los valores son0
- desactivado,1
- solo resuelve,2
- resuelve y responde. [1]
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
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:
- Para systemd-networkd (Español) la configuración es
LLMNR=
en la sección[Network]
. Consulte systemd.network(5). - Para NetworkManager (Español) la configuración es
llmnr=
en la sección[connection]
; consulte nm-settings(5). Los valores son0
- desactivado,1
- solo resolver,2
- resolver y responder.
{{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.