GNU/Linux >> Linux Esercitazione >  >> Linux

Cache DNS in Linux

Ecco altri due pacchetti software che possono essere utilizzati per la memorizzazione nella cache DNS su Linux:

  • dnsmasq
  • legare

Dopo aver configurato il software per l'inoltro DNS e la memorizzazione nella cache, imposta il resolver DNS del sistema su 127.0.0.1 in /etc/resolv.conf.

Se il tuo sistema utilizza NetworkManager puoi provare a utilizzare dns=dnsmasq opzione in /etc/NetworkManager/NetworkManager.conf oppure puoi modificare le impostazioni di connessione in Automatica (solo indirizzo) e quindi utilizzare uno script nel /etc/NetworkManager/dispatcher.d directory per ottenere il server dei nomi DHCP, impostalo come server di inoltro DNS nel tuo software di cache DNS e quindi attiva un ricaricamento della configurazione.


Su Linux (e probabilmente sulla maggior parte di Unix), non c'è memorizzazione nella cache DNS a livello di sistema operativo a meno che nscd non sia installato e in esecuzione. Anche allora, la funzionalità di memorizzazione nella cache DNS di nscd è disabilitata per impostazione predefinita almeno in Debian perché non funziona. Il risultato pratico è che molto probabilmente il tuo sistema Linux non esegue alcuna memorizzazione nella cache DNS a livello di sistema operativo.

Potresti implementare la tua cache nella tua applicazione (come hanno fatto per Squid, secondo il commento di diegows), ma lo sconsiglio. È un sacco di lavoro, è facile sbagliare (nscd ha sbagliato!!!), probabilmente non sarà facilmente sintonizzabile come una cache DNS dedicata, e duplica funzionalità che già esistono al di fuori della tua applicazione.

Se un utente finale che utilizza il tuo software deve disporre della memorizzazione nella cache DNS perché il carico di query DNS è sufficientemente grande da costituire un problema o l'RTT al server DNS esterno è sufficientemente lungo da rappresentare un problema, può installare un server DNS di memorizzazione nella cache come Unbound sulla stessa macchina della tua applicazione, configurata per memorizzare nella cache le risposte e inoltrare i messaggi mancati ai normali risolutori DNS.


Ecco un esempio di cache DNS in Debian usando dnsmasq:Local DNS caching, articolo su ManageaCloud.

Riepilogo configurazione:

/etc/default/dnsmasq

# Ensure you add this line
DNSMASQ_OPTS="-r /etc/resolv.dnsmasq"

/etc/resolv.dnsmasq

# Your preferred servers
nameserver 1.1.1.1
nameserver 8.8.8.8
nameserver 2001:4860:4860::8888

/etc/resolv.conf

nameserver 127.0.0.1

Quindi riavvia dnsmasq.

Test di benchmark utilizzando DNS 1.1.1.1:

for i in {1..100}; do time dig slashdot.org @1.1.1.1; done 2>&1 | grep ^real | sed -e s/.*m// | awk '{sum += $1} END {print sum / NR}'

Test di benchmark utilizzando il server d'inoltro DNS con memorizzazione nella cache locale (dnsmasq):

for i in {1..100}; do time dig slashdot.org; done 2>&1 | grep ^real | sed -e s/.*m// | awk '{sum += $1} END {print sum / NR}'

Linux
  1. Configurazione del server DNS solo cache non associata su RHEL 7 Linux

  2. Linux:come sovrascrivere un server DNS Vm?

  3. Comando Linux mv

  4. Linux du comando

  5. comando IP Linux

Come cancellare o svuotare la cache DNS in Linux

Come svuotare la cache DNS su Linux

Linux vs Unix

Come svuotare la cache DNS su Linux?

Come installare e configurare il server DNS in Linux

Ospita lo switcher di file su Linux