GNU/Linux >> Linux Esercitazione >  >> Linux

Come svuotare la cache DNS su Linux

DNS, abbreviazione di Domain Name System protocollo, viene utilizzato sui sistemi Linux per recuperare gli indirizzi IP associati ai nomi.

Ad esempio, quando esegui una richiesta ping, è molto probabile che tu stia utilizzando il protocollo DNS per recuperare l'IP del server.

Nella maggior parte dei casi, le richieste DNS che esegui vengono archiviati in una cache locale del tuo sistema operativo.

Tuttavia, in alcuni casi, potresti voler svuotare la cache DNS del tuo server .

Potrebbe essere perché hai modificato l'IP di un server sulla tua rete e desideri che le modifiche si riflettano immediatamente.

In questo tutorial imparerai come puoi svuotare facilmente la cache DNS su Linux , indipendentemente dal fatto che tu stia utilizzando systemd o dnsmasq.

Prerequisiti

Per poter svuotare la cache DNS, devi sapere come funziona la risoluzione DNS sul tuo sistema Linux .

A seconda della tua distribuzione, potresti trovarti di fronte a diversi servizi Linux che fungono da risolutore DNS .

Prima di iniziare, è molto importante per te sapere come avverrà effettivamente la risoluzione DNS sul tuo sistema operativo.

Se stai leggendo questo articolo, stai cercando di svuotare la cache del tuo resolver DNS locale . Ma come puoi vedere, ci sono molte cache diverse dalla tua applicazione locale fino ai server DNS Internet effettivi.

In questo tutorial, ci concentreremo sulla casella gialla che indica il risolutore di stub locale implementato su ogni sistema Linux.

Trovare il tuo resolver DNS locale

Sulla maggior parte dei sistemi Linux, il risolutore DNS è "systemd-resolved" o dnsmasq. Per sapere se hai a che fare con l'uno o l'altro, puoi eseguire il seguente comando

$ sudo lsof -i :53 -S

Nota :quindi perché stiamo eseguendo questo comando? Poiché il DNS viene eseguito sulla porta 53, stiamo cercando i comandi associati al servizio in esecuzione sulla porta 53, che è il tuo resolver DNS locale o "stub".

Come puoi vedere, su una recente distribuzione Ubuntu 20.04, il servizio in ascolto sulla porta 53 è risolto con systemd. Tuttavia, se dovessi eseguire questo comando su Ubuntu 14.04, otterresti un output diverso.

In questo caso, il DNS locale utilizzato in dnsmasq e nei comandi è ovviamente diverso.

Conoscendo queste informazioni, puoi andare al capitolo che ti interessa. Se dovessi avere un output diverso sul tuo server, assicurati di lasciare un commento per farci aggiornare questo articolo.

Svuota DNS utilizzando systemd-resolved

Il modo più semplice per svuotare il DNS su Linux, se stai usando systemd-resolved, è usare il comando "systemd-resolve" seguito da "–flush-caches".

In alternativa, puoi utilizzare il comando "resolvectl" seguito dall'opzione "flush-caches".

$ sudo systemd-resolve --flush-caches

$ sudo resolvectl flush-caches

Per verificare che la tua cache DNS DNS sia stata effettivamente svuotata, puoi utilizzare le "–statistiche " opzione che evidenzierà la "Dimensione attuale della cache" nella sezione "Cache".

$ sudo systemd-resolve --statistics

Congratulazioni, hai svuotato con successo la tua cache DNS su Linux!

Svuota la cache DNS utilizzando i segnali

Un altro modo per svuotare la cache DNS può essere ottenuto inviando un segnale "USR2" al servizio "risolto dal sistema" che gli indicherà di svuotare la sua cache DNS.

$ sudo killall -USR2 systemd-resolved

Per verificare che la cache DNS sia stata effettivamente svuotata, puoi inviare un "USR1 ” segnale al servizio systemd-resolved. In questo modo, scaricherà il suo stato attuale nel diario di sistema.

$ sudo killall -USR1 systemd-resolved

$ sudo journalctl -r -u systemd-resolved

Fantastico, la tua cache DNS è stata svuotata correttamente utilizzando i segnali!

Svuota DNS utilizzando dnsmasq

Il modo più semplice per svuotare il tuo resolver DNS, quando usi dnsmasq, è inviare un segnale "SIGHUP" al processo "dnsmasq" con il comando "killall".

$ sudo killall -HUP dnsmasq

Analogamente a systemd-resolved, puoi inviare un "USR1 ” al processo in modo che stampi le sue statistiche nel file di registro “syslog”. Utilizzando un semplice comando "tail", siamo in grado di verificare che la cache DNS sia stata effettivamente svuotata.

E se esegui dnsmasq come servizio?

Dnsmasq esegue un servizio

In alcuni casi, puoi eseguire "dnsmasq" come servizio sul tuo server. Per verificare se questo è il caso o meno, puoi eseguire il comando “systemctl” o quello “service” se sei su un sistema SysVinit.

$ sudo systemctl is-active dnsmasq

# On SysVinit systems
$ sudo service dnsmasq status

Se noti che dnsmasq è in esecuzione come servizio, puoi riavviarlo utilizzando il solito "systemctl ” o “servizio ” comandi.

$ sudo systemctl restart dnsmasq

# On SysVinit systems
$ sudo service dnsmasq restart

Dopo aver eseguito questi comandi, assicurati sempre che i tuoi servizi siano stati riavviati correttamente.

$ sudo systemctl status dnsmasq

# On SysVinit systems
$ sudo service dnsmasq status

Conclusione

In questo tutorial, hai imparato come svuotare rapidamente e facilmente la tua cache DNS su Linux.

Utilizzando questo articolo, puoi facilmente svuotare la cache per i resolver locali systemd e dnsmasq. Tuttavia, dovresti sapere che esiste un altro DNS comune, chiamato bind , che viene omesso di proposito in questo articolo.

Un altro articolo sulla configurazione di un server cache DNS locale utilizzando BIND dovrebbe arrivare nel prossimo futuro.

Se sei interessato alle query DNS e al modo in cui vengono eseguite, puoi utilizzare questo articolo molto utile di "zwischenzugs" chiamato " Anatomia di una query DNS . L'articolo è particolarmente utile se vuoi eseguire il debug di query DNS e ti chiedi come vengono eseguite.

Anche se sei interessato a Amministrazione di sistema Linux , abbiamo una sezione completa a riguardo sul sito Web, quindi assicurati di controllarla.


Linux
  1. Come cancellare la cache di memoria in Linux

  2. Come svuotare la cache DNS in Ubuntu e LinuxMint

  3. Linux:come sovrascrivere un server DNS Vm?

  4. Cache DNS in Linux

  5. Come svuotare la cache del resolver DNS su Linux (e FreeBSD)

Come svuotare la cache DNS su Ubuntu 20.04

Come svuotare la cache DNS su Ubuntu

Come cancellare la cache DNS su Ubuntu

Come svuotare la cache DNS su Linux?

Come svuotare la cache DNS su Ubuntu

Come installare e configurare il server DNS in Linux