GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo configurar systemd-resolved y systemd-networkd para usar el servidor DNS local para resolver dominios locales y el servidor DNS remoto para dominios remotos?

En el archivo de configuración de la interfaz de red local (un archivo que coincide con el patrón de nombre /etc/systemd/network/*.network ) tenemos que especificar que queremos obtener la dirección del servidor DNS local del servidor DHCP usando DHCP= opción:

[Network]
DHCP=yes

o especifica su dirección explícitamente usando DNS= opción:

[Network]
DNS=10.0.0.1

Además necesitamos especificar (en la misma sección) dominios locales usando Domains= opción

Domains=domainA.example domainB.example ~example

Especificamos dominios locales domainA.example domainB.example para obtener el siguiente comportamiento (de systemd-resolved.service, systemd-resolved página man):

Las búsquedas de un nombre de host que termina en uno de los dominios por interfaz se enrutan exclusivamente a las interfaces coincidentes.

De esta manera hostX.domainA.example se resolverá exclusivamente por nuestro servidor DNS local.

Especificamos con ~example que todos los dominios que terminan en example deben tratarse como dominios de solo ruta para obtener el siguiente comportamiento (de la descripción de esta confirmación):

Los servidores DNS que tienen dominios de solo ruta solo deben usarse para los dominios especificados.

De esta manera hostY.on.the.internet se resolverá exclusivamente por nuestro servidor DNS global y remoto.

Nota

Idealmente, al usar el protocolo DHCP, los nombres de dominio locales deben obtenerse del servidor DHCP en lugar de especificarse explícitamente en el archivo de configuración de la interfaz de red anterior. Ver UseDomains= opción. Sin embargo, todavía hay problemas pendientes con esta característica:consulte el problema de la opción de dominios de búsqueda DHCP de systemd-networkd.

Necesitamos especificar el servidor DNS remoto como nuestro servidor DNS global para todo el sistema. Podemos hacer esto en /etc/systemd/resolved.conf archivo:

[Resolve]
DNS=8.8.8.8 8.8.4.4 2001:4860:4860::8888 2001:4860:4860::8844

No olvide volver a cargar la configuración y reiniciar los servicios:

$ sudo systemctl daemon-reload
$ sudo systemctl restart systemd-networkd
$ sudo systemctl restart systemd-resolved

¡Cuidado!

Las garantías anteriores se aplican solo cuando los nombres están siendo resueltos por systemd-resolved – consulte la página del manual para nss-resolve, libnss_resolve.so.2 y página de manual para systemd-resolved.service, systemd-resolved.

Véase también:

  • La descripción de las solicitudes de búsqueda de enrutamiento en las páginas man relacionadas con systemd no está clara
  • ¿Cómo solucionar problemas de DNS con systemd-resolved?

Referencias:

  • Página man para systemd-resolved.service, systemd-resolved
  • Página del manual para resolve.conf, resolve.conf.d
  • Página man para systemd-network

Solo para ampliar la excelente respuesta de @piotrDobrogost, no olvide configurar /etc/nsswitch.conf usar systemd-resolved como fuente de resolución de DNS. Tu hosts La directiva debería tener el siguiente aspecto para su caso de uso particular:

/etc/nsswitch.conf

hosts:  files resolve dns

Entonces, si limita la resolución a solo aquellos dominios especificados en el Domains directiva en /etc/systemd/resolved.conf como Piotr detalla arriba, el DNS debe consultarse a continuación en el orden de las fuentes de resolución de nombres especificadas /etc/nsswitch.conf cuando los dominios son NO encontrado en Domains directiva:

El siguiente enlace hace referencia al requisito de especificar resolver en /etc/nsswitch.conf entonces systemd-resolved se consulta durante la resolución de nombres:

https://github.com/systemd/systemd/issues/940

La documentación de SystemD que he encontrado es nefasta. Tuve que armar un entendimiento de varios enlaces, incluida la respuesta de Piotr anterior;-)


Linux
  1. Cómo uso Ansible y Anacron para la automatización

  2. ¿Cómo habilitar el registro del servidor BIND DNS para monitorear consultas y solucionar problemas?

  3. ¿Cómo instalar y configurar Bind para configurar su servidor DNS?

  4. ¿Cómo identificar el nombre del software del servidor DNS remoto y su versión?

  5. Cómo configurar RDP en Windows Server 2008 R2

Cómo instalar y usar el servidor Xrdp (escritorio remoto) en el sistema Linux

Cómo configurar DNS en Windows Server 2012

Cómo instalar y configurar Parse Server en Ubuntu 20.04

Cómo instalar y configurar Sandstorm Server en CentOS 8

Cómo instalar y configurar el cortafuegos CSF para Linux

Cómo instalar y configurar el servidor DNS en Linux