Domanda Memorizzazione nella cache DNS in linux


Sono confuso circa il caching DNS. Sto scrivendo un piccolo server proxy diretto e voglio usare la cache DNS OS su un sistema Linux.

Se ho capito bene, c'è il caching DNS a livello di browser. Poi c'è il caching DNS a livello di sistema operativo (Windows ce l'ha. Non sono sicuro che le distribuzioni Linux lo abbiano per impostazione predefinita).

Quindi, in che modo un browser / proxy_server utilizza la cache del sistema operativo DNS? Sto cercando di trovare se posso fare affidamento su Linux per il caching DNS invece di farlo da solo all'interno del mio proxy.

Grazie


44
2018-06-13 17:17


origine


risposte:


Su Linux (e probabilmente su Unix), a meno che non sia presente un caching DNS a livello di sistema operativo nscd è installato e in esecuzione. Anche in questo caso, la funzionalità di caching DNS di nscd è disabilitata di default almeno in Debian perché è rotto. Il risultato pratico è che molto probabilmente il tuo sistema Linux non fa alcuna cache DNS a livello di sistema operativo.

Si potrebbe implementare la propria cache nella propria applicazione (come hanno fatto per Squid, secondo diegows's commento), ma vorrei raccomandare contro di esso. È un sacco di lavoro, è facile sbagliarlo (nscd ha sbagliato !!!), probabilmente non sarà facilmente sintonizzabile come una cache DNS dedicata, e duplica la funzionalità che esiste già al di fuori dell'applicazione.

Se un utente finale che utilizza il tuo software deve disporre della cache DNS perché il carico della query DNS è abbastanza grande da essere un problema o la RTT al server DNS esterno è abbastanza lunga da costituire un problema, è possibile installare un server DNS di caching come Unbound sullo stesso computer dell'applicazione, configurato per memorizzare le risposte e inoltrare i miss ai normali resolver DNS.


67
2018-06-13 18:35



Ecco altri due pacchetti software che possono essere utilizzati per il caching DNS su Linux:

  • dnsmasq
  • legare

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

Se il tuo sistema sta usando NetworkManager puoi provare a usare il dns=dnsmasq opzione in /etc/NetworkManager/NetworkManager.conf oppure è possibile modificare le impostazioni di connessione su Automatico (solo indirizzo) e quindi utilizzare uno script in /etc/NetworkManager/dispatcher.d directory per ottenere il server dei nomi DHCP, impostarlo come server di inoltro DNS nel software di cache DNS e quindi attivare una ricarica della configurazione.


22
2018-06-13 21:27



Hai qui disponibile un esempio di Cache DNS in Debian usando dnsmasq.


5
2017-09-08 22:51



Firefox contiene una cache DNS. Per disabilitare la cache DNS:

  1. Apri il tuo browser
  2. Digitare about: config nella barra degli indirizzi
  3. Fare clic con il tasto destro del mouse sull'elenco di Proprietà e selezionare Nuovo> Intero nel menu di scelta rapida
  4. Immettere 'network.dnsCacheExpiration' come nome di preferenza e 0 come valore intero

Se disabilitato, Firefox utilizzerà la cache DNS fornita dal sistema operativo.


2
2017-12-23 19:44