Un server DNS e DHCP su Debian: differenze tra le versioni
(Nuova pagina: ===Un server DNS e DHCP su Debian Etch=== In una rete locale con un server Linux e n client Windows "recenti" (quindi da Windows 2000 in poi), per far sì che le comunicazioni di rete ...) |
|||
Riga 9: | Riga 9: | ||
A questo punto va configurato Bind in modo che possa risolvere i nomi host per il dominio che andremo a creare. Il primo passo, consiste nel dire al server Linux che la risoluzione dei nomi dev’essere delegata a se stesso, editando opportunamente il file <tt>/etc/resolv.conf</tt>. Successivamente, bisogna modificare il file <tt>/etc/bind/named.conf</tt>, che è il file principale di configurazione di Bind, il quale indica dove sono posizionati i file in cui sono definite le zone corrispondenti ai vari domini che si vogliono configurare.<br/> | A questo punto va configurato Bind in modo che possa risolvere i nomi host per il dominio che andremo a creare. Il primo passo, consiste nel dire al server Linux che la risoluzione dei nomi dev’essere delegata a se stesso, editando opportunamente il file <tt>/etc/resolv.conf</tt>. Successivamente, bisogna modificare il file <tt>/etc/bind/named.conf</tt>, che è il file principale di configurazione di Bind, il quale indica dove sono posizionati i file in cui sono definite le zone corrispondenti ai vari domini che si vogliono configurare.<br/> | ||
Ipotizziamo quindi di avere un dominio test.lan sulla rete 192.168.1.0: dovremo configurare due file di zona, uno chiamato <tt>/etc/bind/db.test</tt> ed uno chiamato <tt>/etc/bind/db.192.168.1</tt>, che rappresenta il file in cui inserire i record PTR (quelli di ricerca inversa). Di seguito vediamo come impostare il file <tt>/etc/resolv.conf</tt>, dopodiché vedremo il contenuto del file di configurazione generico di Bind9 <tt>/etc/bind/named.conf</tt>, ed infine esamineremo i file di zona <tt>/etc/bind/db.test</tt> e <tt>/etc/bind/db.192.168.1</tt>: | Ipotizziamo quindi di avere un dominio test.lan sulla rete 192.168.1.0: dovremo configurare due file di zona, uno chiamato <tt>/etc/bind/db.test</tt> ed uno chiamato <tt>/etc/bind/db.192.168.1</tt>, che rappresenta il file in cui inserire i record PTR (quelli di ricerca inversa). Di seguito vediamo come impostare il file <tt>/etc/resolv.conf</tt>, dopodiché vedremo il contenuto del file di configurazione generico di Bind9 <tt>/etc/bind/named.conf</tt>, ed infine esamineremo i file di zona <tt>/etc/bind/db.test</tt> e <tt>/etc/bind/db.192.168.1</tt>: | ||
'''/etc/resolv.conf''': | |||
<pre> | |||
search test.lan | |||
nameserver 127.0.0.1 | |||
</pre> | |||
'''/etc/bind/named.conf''': | |||
<pre> | |||
include "/etc/bind/named.conf.options"; | |||
// prime the server with knowledge of the root servers | |||
zone "." { | |||
type hint; | |||
file "/etc/bind/db.root"; | |||
}; | |||
zone "localhost" { | |||
type master; | |||
file "/etc/bind/db.local"; | |||
}; | |||
zone "127.in-addr.arpa" { | |||
type master; | |||
file "/etc/bind/db.127"; | |||
}; | |||
zone "0.in-addr.arpa" { | |||
type master; | |||
file "/etc/bind/db.0"; | |||
}; | |||
zone "255.in-addr.arpa" { | |||
type master; | |||
file "/etc/bind/db.255"; | |||
}; | |||
zone "test.lan" { | |||
type master; | |||
file "/etc/bind/db.test"; | |||
}; | |||
zone "1.168.192.in-addr.arpa" { | |||
type master; | |||
file "/etc/bind/db.192.168.1"; | |||
}; | |||
</pre> | |||
'''/etc/bind/db.test''': | |||
<pre> | |||
$TTL 86400 ; 1 day | |||
test.lan. IN SOA ns1.test.lan. hostmaster.test.lan. ( | |||
2007081501 ; serial | |||
86400 ; refresh (1 giorno) | |||
28800 ; retry (8 ore) | |||
604800 ; expire (1 settimana) | |||
86400 ; minimum (1 giorno) | |||
); | |||
IN NS ns1.test.lan. | |||
;NOTA: ns1 è il nome del server che funge da DNS server | |||
ns1 IN A 192.168.1.1 | |||
client IN A 192.168.1.3 | |||
</pre> | |||
'''/etc/bind/db.192.168.1''': | |||
<pre> | |||
; | |||
; BIND reverse data file for local loopback interface | |||
; | |||
$TTL 604800 | |||
@ IN SOA test.lan. hostmaster.test.lan. ( | |||
2007081501 ; serial | |||
604800 ; refresh | |||
86400 ; retry | |||
2419200 ; expire | |||
604800 ; negative cache ttl | |||
); | |||
@ IN NS ns1.test.lan. | |||
1 IN PTR ns1.test.lan. | |||
3 IN PTR client.test.lan | |||
</pre> | |||
Fatta la configurazione, bisogna riavviare il demone bind9: | |||
<pre> | |||
# /etc/init.d/bind9 restart | |||
</pre> | |||
Ora il server DNS può risolvere i nomi host per il dominio test.lan presente sulla rete LAN, a condizione che gli IP indicati nel file di configurazione non cambino (da tenere presente che i valori indicati sono puramente indicativi); ciò implica che la nostra rete deve essere configurata con indirizzi IP statici, condizione accettabile se i PC non superano le 10 unità, altrimenti si deve considerare l’utilizzo di un server DHCP. Altra cosa da considerare, è che in questa situazione, Bind non riesce a risolvere i nomi di dominio Internet; per ovviare al problema, bisogna indicare a Bind uno o più server DNS pubblici che possano soddisfare le richieste che il server Linux fa per conto dei client, editando opportunamente il file <tt>/etc/bind/named.conf.options</tt> aggiungendo queste righe: | |||
<pre> | |||
forwarders { | |||
208.67.222.222; | |||
208.67.220.220; | |||
}; | |||
</pre> | |||
In questo modo i client potranno tranquillamente risolvere sia i nomi host in LAN sia i nomi di dominio Internet. |
Versione delle 22:12, 6 set 2008
Un server DNS e DHCP su Debian Etch
In una rete locale con un server Linux e n client Windows "recenti" (quindi da Windows 2000 in poi), per far sì che le comunicazioni di rete avvengano in modo efficiente, è necessario avere un server DNS che sia in grado di risolvere i nomi host dei vari PC in rete. Linux risponde benissimo a quest’esigenza col pacchetto Bind, che è appunto il server DNS più utilizzato in ambiente Linux. Il problema però è che se abbiamo una rete abbastanza estesa e con cambi frequenti, dovremmo aggiornare a mano i record A e PTR del server DNS, cosa alquanto scomoda per ovvi motivi, senza considerare che un inserimento manuale si presta benissimo ad errori di digitazione.
Per ovviare a questo problema, è bene far lavorare Bind in stretto contatto con un server DHCP (dhcp3 su Linux), il quale assegnerà dinamicamente la configurazione IP ai vari host, e contestualmente aggiornerà dinamicamente i record DNS su Bind, in modo che l’intervento manuale dell’amministratore di sistema sia ridotto al minimo. Il server DNS sarà utilizzato anche per risolvere i nomi di dominio Internet, impostando uno o più forwarders da interrogare se un dominio non è stato definito sul server DNS locale.
Installazione del server DNS
Il primo passo per organizzare questa architettura di rete è quello di installare Bind9 sul server Linux (la solita Debian Etch) e le relative utilità, col comando:
# apt-get install bind9 dnsutils
A questo punto va configurato Bind in modo che possa risolvere i nomi host per il dominio che andremo a creare. Il primo passo, consiste nel dire al server Linux che la risoluzione dei nomi dev’essere delegata a se stesso, editando opportunamente il file /etc/resolv.conf. Successivamente, bisogna modificare il file /etc/bind/named.conf, che è il file principale di configurazione di Bind, il quale indica dove sono posizionati i file in cui sono definite le zone corrispondenti ai vari domini che si vogliono configurare.
Ipotizziamo quindi di avere un dominio test.lan sulla rete 192.168.1.0: dovremo configurare due file di zona, uno chiamato /etc/bind/db.test ed uno chiamato /etc/bind/db.192.168.1, che rappresenta il file in cui inserire i record PTR (quelli di ricerca inversa). Di seguito vediamo come impostare il file /etc/resolv.conf, dopodiché vedremo il contenuto del file di configurazione generico di Bind9 /etc/bind/named.conf, ed infine esamineremo i file di zona /etc/bind/db.test e /etc/bind/db.192.168.1:
/etc/resolv.conf:
search test.lan nameserver 127.0.0.1
/etc/bind/named.conf:
include "/etc/bind/named.conf.options"; // prime the server with knowledge of the root servers zone "." { type hint; file "/etc/bind/db.root"; }; zone "localhost" { type master; file "/etc/bind/db.local"; }; zone "127.in-addr.arpa" { type master; file "/etc/bind/db.127"; }; zone "0.in-addr.arpa" { type master; file "/etc/bind/db.0"; }; zone "255.in-addr.arpa" { type master; file "/etc/bind/db.255"; }; zone "test.lan" { type master; file "/etc/bind/db.test"; }; zone "1.168.192.in-addr.arpa" { type master; file "/etc/bind/db.192.168.1"; };
/etc/bind/db.test:
$TTL 86400 ; 1 day test.lan. IN SOA ns1.test.lan. hostmaster.test.lan. ( 2007081501 ; serial 86400 ; refresh (1 giorno) 28800 ; retry (8 ore) 604800 ; expire (1 settimana) 86400 ; minimum (1 giorno) ); IN NS ns1.test.lan. ;NOTA: ns1 è il nome del server che funge da DNS server ns1 IN A 192.168.1.1 client IN A 192.168.1.3
/etc/bind/db.192.168.1:
; ; BIND reverse data file for local loopback interface ; $TTL 604800 @ IN SOA test.lan. hostmaster.test.lan. ( 2007081501 ; serial 604800 ; refresh 86400 ; retry 2419200 ; expire 604800 ; negative cache ttl ); @ IN NS ns1.test.lan. 1 IN PTR ns1.test.lan. 3 IN PTR client.test.lan
Fatta la configurazione, bisogna riavviare il demone bind9:
# /etc/init.d/bind9 restart
Ora il server DNS può risolvere i nomi host per il dominio test.lan presente sulla rete LAN, a condizione che gli IP indicati nel file di configurazione non cambino (da tenere presente che i valori indicati sono puramente indicativi); ciò implica che la nostra rete deve essere configurata con indirizzi IP statici, condizione accettabile se i PC non superano le 10 unità, altrimenti si deve considerare l’utilizzo di un server DHCP. Altra cosa da considerare, è che in questa situazione, Bind non riesce a risolvere i nomi di dominio Internet; per ovviare al problema, bisogna indicare a Bind uno o più server DNS pubblici che possano soddisfare le richieste che il server Linux fa per conto dei client, editando opportunamente il file /etc/bind/named.conf.options aggiungendo queste righe:
forwarders { 208.67.222.222; 208.67.220.220; };
In questo modo i client potranno tranquillamente risolvere sia i nomi host in LAN sia i nomi di dominio Internet.