GNU/Linux >> Linux Esercitazione >  >> Linux

Come configurare systemd-resolved e systemd-networkd per utilizzare il server DNS locale per la risoluzione dei domini locali e il server DNS remoto per i domini remoti?

Nel file di configurazione per l'interfaccia di rete locale (un file che corrisponde al modello di nome /etc/systemd/network/*.network ) dobbiamo specificare che vogliamo ottenere l'indirizzo del server DNS locale dal server DHCP utilizzando DHCP= opzione:

[Network]
DHCP=yes

o specificare esplicitamente il suo indirizzo usando DNS= opzione:

[Network]
DNS=10.0.0.1

Inoltre dobbiamo specificare (nella stessa sezione) i domini locali usando Domains= opzione

Domains=domainA.example domainB.example ~example

Specifichiamo i domini locali domainA.example domainB.example per ottenere il seguente comportamento (da systemd-resolved.service, systemd-resolved pagina man):

Le ricerche di un nome host che termina con uno dei domini per interfaccia vengono indirizzate esclusivamente alle interfacce corrispondenti.

In questo modo hostX.domainA.example sarà risolto esclusivamente dal nostro server DNS locale.

Specifichiamo con ~example che tutti i domini che terminano con example devono essere trattati come domini di sola rotta per ottenere il seguente comportamento (dalla descrizione di questo commit):

I server DNS con domini di solo instradamento devono essere utilizzati solo per i domini specificati.

In questo modo hostY.on.the.internet sarà risolto esclusivamente dal nostro server DNS globale e remoto.

Nota

Idealmente, quando si utilizza il protocollo DHCP, i nomi di dominio locali dovrebbero essere ottenuti dal server DHCP invece di essere specificati esplicitamente nel file di configurazione dell'interfaccia di rete precedente. Vedi UseDomains= opzione. Tuttavia, ci sono ancora problemi in sospeso con questa funzione:vedi il problema relativo all'opzione domini di ricerca DHCP systemd-networkd.

Dobbiamo specificare il server DNS remoto come nostro server DNS globale a livello di sistema. Possiamo farlo in /etc/systemd/resolved.conf file:

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

Non dimenticare di ricaricare la configurazione e riavviare i servizi:

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

Attenzione!

Le garanzie di cui sopra si applicano solo quando i nomi vengono risolti da systemd-resolved – vedi la pagina man per nss-resolve, libnss_resolve.so.2 e pagina man per systemd-resolved.service, systemd-resolved.

Vedi anche:

  • La descrizione delle richieste di ricerca di instradamento nelle pagine man relative a systemd non è chiara
  • Come risolvere i problemi DNS con systemd-resolved?

Riferimenti:

  • Pagina man per systemd-resolved.service, systemd-resolved
  • Pagina man per resolve.conf, resolve.conf.d
  • Pagina man per systemd-network

Solo per espandere l'eccellente risposta di @piotrDobrogost, non dimenticare di configurare /etc/nsswitch.conf per usare systemd-resolved come sorgente di risoluzione DNS. Il tuo hosts direttiva dovrebbe apparire come segue per il tuo particolare caso d'uso:

/etc/nsswitch.conf

hosts:  files resolve dns

Quindi, se limiti la risoluzione solo ai domini specificati nel Domains direttiva in /etc/systemd/resolved.conf come indicato sopra da Piotr, il DNS dovrebbe essere successivamente consultato nell'ordine delle fonti di risoluzione dei nomi specificate /etc/nsswitch.conf quando i domini sono NON trovato in Domains direttiva:

Il collegamento seguente fa riferimento al requisito per specificare resolve in /etc/nsswitch.conf quindi systemd-resolved viene consultato durante la risoluzione dei nomi:

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

La documentazione di SystemD che ho trovato terribile. Ho dovuto mettere insieme una comprensione da più collegamenti, inclusa la risposta di Piotr sopra;-)


Linux
  1. Come utilizzo Ansible e anacron per l'automazione

  2. Come abilitare la registrazione del server DNS BIND per monitorare le query e per la risoluzione dei problemi?

  3. Come installare e configurare Bind per configurare il server DNS?

  4. Come identificare il nome del software del server DNS remoto e la sua versione?

  5. Come installare WordPress su Ubuntu 18.04 e configurarlo per utilizzare un database remoto

Come installare e utilizzare il server Xrdp (desktop remoto) su un sistema Linux

Come configurare il DNS in Windows Server 2012

Come installare e configurare Parse Server su Ubuntu 20.04

Come installare e configurare Sandstorm Server su CentOS 8

Come installare e configurare il firewall CSF per Linux

Come installare e configurare il server DNS in Linux