Newsgroup: it.comp.reti.ip-admin
Titolo: durata della cache di BIND in locale

Perdonate la domanda niubba, ma è tardi :)
Se si mette BIND su una macchina solo per usarlo come server DNS
locale, cioè per non impostare alcun server esterno (tipo quelli del
proprio ISP), e non c'è nessuna zona di dominio da servire, dove si
imposta la durata della cache?
Cioè vorrei evitare che ad ogni riavvio si riparta da zero con le
richieste ai root servers, che quando apro il browser ho giusto quelle
15/20 tab da caricare...
Magari se mi sapete dire anche se tale eventuale opzione si riesce a
trovare usando Webmin, altrimenti va bene anche "a mano".
grazie :)
Gabriele


Non ci ho capito una mazza, ma
1) la durata della cache è una proprietà del singolo record, ovvero il
TTL. A decidere quindi quanto tempo le info rimangono in cache è chi è
autoritativo per le zone che interroghi, non il resolver che le richiede...
2) al riavvio la cache viene piallata comunque, dato che è per sua
natura un dato volatile che viene mantenuto in memoria e solo in memoria
-- 
Paranoia is a disease unto itself. And may I add: the person standing
next to you may not be who they appear to be, so take precaution.
-----------------------------------------------------------------------------
http://bofhskull.wordpress.com/

 solo in memoria
Ni... in BIND c'è un'opzione "cache-file" che è possibile inserire
in "named.conf" e che permette il salvataggio della cache su file
allo shutdown ed il caricamento della stessa al riavvio (all'atto
del caricamento i records "expired" vengono comunque rimossi)
anche se... si tratta di un'opzione ... diciamo così ... "unofficial"
(tra l'altro non ho controllato se l'opzione sia stata mantenuta
nelle recenti versioni di BIND)

 in "named.conf" e che permette il salvataggio della cache su file
[...]
tra l'altro nelle vecchie versioni di BIND c'era (e non ho controllato
se vi sia ancora) un "bug" per cui, specificando quell'opzione nella
config (es.)
<====================================================>
options {
  directory "/var/named";
  cache-file "named.cache";
[...]
<====================================================>
il file veniva correttamente popolato all'arresto di "named" con il
timestamp corrente e con il contenuto della cache (es.)
<====================================================>
$DATE 20050228144342
; local
iwin.com
.               263958  IN NS   
ns1.nextgame.com
.
                        263958  IN NS   
mail.nextgame.com
.
; local
www.iwin.com
.           263958  A       129.250.159.170
; local
2vjry4at4czkudw5i3tm2ntedf.lyrics.com
. 10324 A 216.139.206.243
; local
doubleclick.NET.        263959  NS      
ns1.doubleclick.net
.
                        263959  NS      
ns2.doubleclick.net
.
                        263959  NS      
ns3.doubleclick.net
.
                        263959  NS      
ns4.doubleclick.net
.
; local
ROOT-SERVERS.NET
.       171138  NS      
a.ROOT-SERVERS.NET
.
                        171138  NS      
f.ROOT-SERVERS.NET
.
[...]
<====================================================>
ma, in fase di riavvio di "named" il caricamento dei dati
poteva causare un "crash" nel caso in cui nel "cache file"
fossero contenute delle entries "NXDOMAIN" dato che il
codice non gestiva correttamente le stesse; l'unico modo
per risolvere il problema (a parte modificare il codice :D)
era quello di usare uno script che, prima di avviare "named"
provvedesse ad eliminare le voci "negative cache" dal file

 nelle recenti versioni di BIND)
ECCO, QUELLO :)
Allora cerco quell'opzione, mi serve per BIND 9.8.
Intanto grazie
Gabriele

 Allora cerco quell'opzione, mi serve per BIND 9.8.
Ma una domandina: che cosa t'aspetteresti di ottenere, da quella opzione?
Perch� a meno che tu non sia nella condizione in cui il resolver viene
riavviato spesso[1] e gestisce una cache di svariati GB, � in sostanza
priva di senso.
[1] nel qual caso la soluzione � evitare di riavviarlo...


 priva di senso.
Ho l'impressione che abbia installato BIND su un portatile (o qualcosa
del genere) e siccome il sistema viene spento/riacceso come una
normale macchina "di lavoro" (del resto non � un server) che voglia
fare in modo che BIND mantenga i dati della cache

 Allora cerco quell'opzione, mi serve per BIND 9.8.
Occhio, leggi l'altro mio post relativo al "bug" !

 [1] nel qual caso la soluzione è evitare di riavviarlo...
Lo spengo, non lo riavvio, è sul mio iMac :)
La dimensione sarà anche piccola probabilmente, non lo so, dovrei
vedere dopo qualche giorno che succede; tra l'altro, mi sapresti dire
quali siano i valori di default per la cache? Non ho capito in che
unità di misura vada impostata...
ciao
Gabriele
ps: hai portato una bottiglia buona ? :P

 Non ho capito in che unit� di misura vada impostata...
uff... se ti riferisci ai parametri che regolano il caching in BIND
quelli sono relativi all'ammontare di memoria assegnato alla
cache (e sono comunque "approssimati"); quel che potresti
fare � aumentare la cache per quanto possibile, far girare il
sistema (e named) per un tempo sufficientemente lungo, poi
usare "rndc" per fare il dump della cache su disco, controllare
la dimensione della stessa e regolare la config di conseguenza

 fare in modo che BIND mantenga i dati della cache
E'...SATTO :)
Ora cerco info su sto "cache-file" che sarà da mettere a mano, perché
ho guardato tutte le impostazioni previste da GUI e non c'è.
Comunque grazie :)
Gabriele

 c'è. Comunque grazie :)
Dal manuale di bind-9.4-ESV-R4:
cache-file
     This is for testing only. Do not use.
Ciao
Giovanni
-- 
   A computer is like an air conditioner,
   it stops working when you open Windows.
   < 
http://giovanni.homelinux.net/
 >

 config (es.)
[CUT]
Leggo che per la versione 9.8 "cache-file pathname; 	Specifies the
pathname on the server for the cache file, but is used only for
testing and should not be used."
Ho trovato l'elenco delle opzioni qui:
<
http://ipamworldwide.com/component/content/article/48-dns-isc/89-
bind-9-8-0-options.html>
Gabriele

 bind-9-8-0-options.html>
Si, come ho scritto l'opzione �... "unofficial" :) in compenso funziona
o meglio, funziona fatto salvo quel "bug" di cui ho parlato (ammesso
che sia ancora presente nel codice); considerando che si tratta di
un setup "domestico", credo che tentare non ti costi nulla; nel caso
arresta BIND, edita il file "named.conf", trova la sezione "options"
ed all'interno della stessa inserisci una riga del tipo (es.)
cache-file "/tmp/named.cache";
quindi prova a riavviare BIND, se tutto va bene dovrebbe partire
senza problemi, a questo punto prova ad aprire qualche sito web
o scaricare posta etc... quindi, per verificare il "bug" prova ad
avviare delle queries per hosts/domini inesistenti (puoi usare
"dig" allo scopo) e, fatto ci�, arresta di nuovo BIND, se il tutto
ha funzionato (come dovrebbe) sino ad ora, troverai nella
directory /tmp il file "named.cache", aprilo (ad es. con vi) e
vedrai che contiene un timestamp relativo alla data/ora in cui
il file � stato salvato ed una serie di records ciascuno con il
proprio TTL "residuo"; ora... prova a riavviare BIND ma non
come daemon, da "console" in modo da vedere eventuali
messaggi di errore, nel caso in cui il "bug" non sia risolto
il tuo BIND andr� in "bomb" al primo record "negative cache"
presente nel cache file
Per risolvere il problema dovrai modificare lo script di avvio
del daemon "rc..." in modo che, prima di avviare "named"
questo lanci un "grep..." (o sed...) eliminando dal cache file
tutte le voci relative al negative caching e mantenendo tutte
le altre inalterate, in tal modo eviterai quel problema al reload
ciao

> cache-file "/tmp/named.cache";
dimenticavo, quanto sopra vale solo per il testing, una
volta "a posto" dovresti piazzare il file in una directory
che sia accessibile solo a root ed a "named" in modo
che non sia possibile "ad altri" modificarlo :)