Repository 32bit  Forum
Repository 64bit  Wiki

Usare Bind per avere una cache dns in locale: differenze tra le versioni

Da Slacky.eu.
Riga 126: Riga 126:
Buon divertimento !!
Buon divertimento !!
= Trips =
+
= Tips =
Se non avete un pc moderno, bind potrebbe risultare pesante, e in questo caso potete aggiungere a
Se non avete un pc moderno, bind potrebbe risultare pesante, e in questo caso potete aggiungere a

Versione delle 11:53, 16 set 2008

Indice

Introduzione

Con questa guida, si vuole indicare come usare BIND per realizzare una cache DNS in locale, in quanto ci rende più liberi dalle censure del nostro ISP, nonchè più veloci nella navigazione.

Disclaimer

Per la realizzazione di questa guida, è stata usata Slackware 12,1 ma con i dovuti accorgimenti, si può usare con tutte le distribuzioni GNU-Linux Inoltre, essa non vuol essere una guida definitiva su bind, in quanto su di esso, ci si potrebbe scrivere un libro, ma vuol essere un punto di partenza per far navigare l' utente con un proprio server dns in locale. Per maggiori informazioni sull' utilizzo di bind rimandiamo alle pagine man. Non mi assumo la responsabilità di eventuali danni provocati al vostro computer. Fate sempre le cose dopo averle ben capite e verificate.fate sempre un backup di ogni file modificato. I Comandi preceduti dal segno # si intendono eseguiti come root, mentre quelli preceduti da $ si intendono eseguiti come normale utente.

installare BIND

Far funzionare bind in locale, su slackware è banale, in fondo basta installare bind e dare il permesso di esecuzione del demone bind:

# chmod +x  /etc/rc.d/rc.bind

A questo punto il più è fatto, nel senso che nella Slackware è configurato per funzionare in modalità caching-only.

Ora bisogna dire al sistema di usare localhost come server dns, quindi bisogna modificare /etc/resolv.conf con un editor di testo in questo modo:

search home
nameserver 127.0.0.1

Attenzione, se si ha una connessione dhcp al propio router, questa modificherà il vostro resolv.conf ogni volta che otterrà un ip e un dns dal vostro isp, quindi, uno dei tanti modi, per evitarlo, è quello di rendere immodificabile resolv.conf con:

# chattr +i /etc/resolv.conf

Questo trucchetto, funziona solo se usate come filesystem ext3 o ancora ext2. Inoltre dovete ricordarvi di togliere tale modifica se volete tornare a poter modificare tale file.

# chattr -i /etc/resolv.conf

Bene, ora potete anche lasciare tutto cosi e avviare il demone bind con:

# sh /etc/rc.d/rc.bind start

Bene ora proviamo se il server funziona! da consolle diamo:

$ dig www.google.com

Dovrebbe dare qualcosa come

<<>> DiG 9.4.2-P2 <<>> www.google.com
global options
printcmd
Got answer
->>HEADER<<- opcode
QUERY, status: NOERROR, id: 54577
flags
qr rd ra; QUERY: 1, ANSWER: 5, AUTHORITY: 7, ADDITIONAL: 0
QUESTION SECTION
www.google.com. IN A
ANSWER SECTION

www.google.com. 604800 IN CNAME www.l.google.com. www.l.google.com. 300 IN A 74.125.39.99 www.l.google.com. 300 IN A 74.125.39.103 www.l.google.com. 300 IN A 74.125.39.147 www.l.google.com. 300 IN A 74.125.39.104

AUTHORITY SECTION

l.google.com. 85630 IN NS e.l.google.com. l.google.com. 85630 IN NS d.l.google.com. l.google.com. 85630 IN NS g.l.google.com. l.google.com. 85630 IN NS a.l.google.com. l.google.com. 85630 IN NS b.l.google.com. l.google.com. 85630 IN NS f.l.google.com. l.google.com. 85630 IN NS c.l.google.com.

Query time
898 msec
SERVER
127.0.0.1#53(127.0.0.1)
WHEN
Wed Aug 20 09:30:09 2008
MSG SIZE rcvd
228

Attenzione alla voce SERVER: se è 127.0.0.1 vuol dire che funziona!

BIND con i server root europei

Bene, ora state usando i root dns americani, ma se volete, potete usare quelli europei ossia quelli di orsn: [1] Fermate bind:

# /etc/rc.d/rc.bind stop

Scaricate il file orsn.hint da: http://european.ch.orsn.net/rootcache.php poi mettetelo nella directory

/var/named/caching-example

rinominate il file named.root in named.root.old, non sarebbe necessario, ma a volte da poblemi. Ora modificate il file /etc/named.conf cosi: da:

zone "." IN {
         type hint;
         file "caching-example/named.root";
};

a:

zone "." IN {
         type hint;
         file "caching-example/orsn.hint";
};

Oplà! il gioco è fatto! Non resta che riavviare bind e provarlo:

# sh /etc/rc.d/rc.bind start

e poi

$ dig ns . @127.0.0.1

Se avete una risposta tipo:

; <<>> DiG 9.4.2-P1 <<>> ns . @127.0.0.1
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 38016
;; flags: qr rd ra; QUERY: 1, ANSWER: 13, AUTHORITY: 0, ADDITIONAL: 14

;; QUESTION SECTION:
;.                              IN      NS

;; ANSWER SECTION:
.                       510784  IN      NS      C.ORSN-SERVERS.NET.
.                       510784  IN      NS      K.ORSN-SERVERS.NET.
.                       510784  IN      NS      E.ORSN-SERVERS.NET.

State a cavallo, funziona tutto! :D Potrebbe essere che non vi dia questi risultati subito, in questo caso, dovrete fermare bind ed aspettare un po di tempo prima di riavviarlo, in quanto Bind non usa nessun tipo di file per la cache ma la memoria e quindi a volte, può continuare a interrogare la vecchia cache. Bene abbiamo terminato il lavoro. Ora avete un server dns che gira sul vostro pc, e non avrete nessun problema nella navigazione. Buon divertimento !!

Tips

Se non avete un pc moderno, bind potrebbe risultare pesante, e in questo caso potete aggiungere a

/etc/named.conf 

queste righe nella sezione option:

datasize 5M;
max-cache-size 1M;
recursive-clients 5;
dnssec-enable yes;

Inoltre, se siete dietro a un firewall potrebbe essere necessario aprire la porta 53

Ringraziamenti

Ringrazio vivamente Corrado "Conraid" per i consigli e l' aiuto datomi, e la comunità di slacky. Ricordo anche, che su slackers.it cè una versione di questa guida "espansa".

link esterni

BIND: http://www.isc.org/sw/bind/index.php ORSN: http://european.ch.orsn.net/ Slackers.it: http://www.slackers.it/2008/09/15/caching-name-server-locale-con-bind/ Copyright (c) 2008 by NaVaJo Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover Texts, and with no Back-Cover Texts. A copy of the license is available from http://www.fsf.org/licenses/fdl.html.

Strumenti personali
Namespace

Varianti