Un name server, o DNS server, è un computer host in grado di fornire la traduzione di un nome di dominio in un numero IP e viceversa. Il computer che fornisce questo servizio è in grado di rispondere direttamente alle richieste riferite ai nomi di dominio di competenza della sua zona, e per gli altri, deve interpellare altri name server competenti.
Si dispone di una piccola rete locale composta da due computer:
Il primo di questi due computer è connesso a Internet attraverso la rete telefonica e viene predisposto per gestire un name server attraverso il daemon named.
La connessione telefonica serve solo al computer topolino e non permette all'altro computer di accedere a Internet.
Quando non si gestisce localmente un name server, e si vuole accedere a Internet, è necessario almeno di servirsi di un name server esterno, di solito messo a disposizione dallo stesso ISP (Internet Service Provider)
( host.conf) È il file di configurazione principale dei servizi di rete. Serve in particolare per determinare in che modo si intendono risolvere i nomi di dominio. L'esempio seguente è quello classico, utilizzato quasi sempre.
order hosts,bind
multi on
La riga order, indica l'ordine dei servizi. In questo caso si utilizza prima il file /etc/hosts e quindi si interpella il name server.
( hosts) Questo file permette di definire i nomi dei computer abbinati al loro indirizzo IP, senza fare uso di un DNS server. Per entrambi i computer dell'esempio, va bene il contenuto seguente.
#necessario per il loopback
127.0.0.1 localhost.localdomain localhost
192.168.1.1 topolino.zigozago.dg topolino
192.168.1.2 pippo.zigozago.dg pippo
( networks) Questo file, attribuisce i nomi agli indirizzi di rete. Per entrambi i computer dell'esempio, va bene il contenuto seguente.
localdomain 127.0.0.0
zigozago.dg 192.168.1.0
( resolv.conf) Viene usato per conoscere l'indirizzo o gli indirizzi dei name server di competenza della rete cui si appartiene. Se non si vuole gestire un name server nella propria rete locale, si deve almeno indicarne uno esterno per accedere a Internet. nell'esempio seguente, si fa riferimento a un indirizzo fornito dal proprio ISP (l'indirizzo dell'esempio è messo a caso: deve essere sostituito con uno o più indirizzi forniti dal proprio ISP).
nameserver 194.22.123.201
Il tipo di name server più semplice è quello che si occupa solo di accumulare in una memoria cache gli ultimi indirizzi richiesti, senza avere alcuna competenza di zona. Il server viene allestito all'interno del computer topolino.
( resolv.conf) Viene modificato in modo da fare riferimento all'indirizzo locale (localhost), dal momento che si intende usare il proprio computer come name server.
nameserver 127.0.0.1
Viene utilizzato da named come punto di partenza della configurazione del servizio DNS.
directory /var/named
cache . root.cache
primary 0.0.127.in-addr.arpa zone/127.0.0
La prima riga definisce la directory predefinita per contenere gli altri file di configurazione del name server.
La seconda riga indica il file root.cache contenuto in /var/named/ che serve come fonte per gli indirizzi dei name server di root (ciò è simbolicamente rappresentato dal punto isolato).
La terza riga indica il file 127.0.0 contenuto in /var/named/zone/, utilizzato come configurazione per la rete del computer locale (localhost).
<!>
in-
addr.arpa è un dominio
speciale attraverso il quale si definisce che
le cifre precedenti rappresentano un indirizzo
IP rovesciato.
Si tratta del file contenente le indicazioni necessarie a raggiungere i name server del dominio root. Questo file viene realizzato da una autorità esterna e viene quindi semplicemente utilizzato così com'è. Segue un esempio di questo.
. 3600000 IN NS A.ROOT-SERVERS.NET.
A.ROOT-SERVERS.NET. 3600000 A 198.41.0.4
. 3600000 NS B.ROOT-SERVERS.NET.
B.ROOT-SERVERS.NET. 3600000 A 128.9.0.107
. 3600000 NS C.ROOT-SERVERS.NET.
C.ROOT-SERVERS.NET. 3600000 A 192.33.4.12
. 3600000 NS D.ROOT-SERVERS.NET.
D.ROOT-SERVERS.NET. 3600000 A 128.8.10.90
. 3600000 NS E.ROOT-SERVERS.NET.
E.ROOT-SERVERS.NET. 3600000 A 192.203.230.10
. 3600000 NS F.ROOT-SERVERS.NET.
F.ROOT-SERVERS.NET. 3600000 A 192.5.5.241
. 3600000 NS G.ROOT-SERVERS.NET.
G.ROOT-SERVERS.NET. 3600000 A 192.112.36.4
. 3600000 NS H.ROOT-SERVERS.NET.
H.ROOT-SERVERS.NET. 3600000 A 128.63.2.53
. 3600000 NS I.ROOT-SERVERS.NET.
I.ROOT-SERVERS.NET. 3600000 A 192.36.148.17
. 3600000 NS J.ROOT-SERVERS.NET.
J.ROOT-SERVERS.NET. 3600000 A 198.41.0.10
. 3600000 NS K.ROOT-SERVERS.NET.
K.ROOT-SERVERS.NET. 3600000 A 193.0.14.129
. 3600000 NS L.ROOT-SERVERS.NET.
L.ROOT-SERVERS.NET. 3600000 A 198.32.64.12
. 3600000 NS M.ROOT-SERVERS.NET.
M.ROOT-SERVERS.NET. 3600000 A 198.32.65.12
Definisce la configurazione per la rete 127.0.0.0, cioè quella del localhost.
@ IN SOA topolino.zigozago.dg. root.topolino.zigozago.dg. (
1997062000 ; Serial
28800 ; Refresh
7200 ; Retry
604800 ; Expire
86400 ) ; Minimum
NS topolino.zigozago.dg.
1 PTR localhost.localdomain.
La prima riga, SOA (Start Of Authority), è il preambolo del file. Si riferisce all'origine rappresentata dal simbolo @ (0.0.127.in-addr.arpa) e definisce in particolare i dati seguenti:
La seconda riga, NS (Name Server) indica il nome del computer che svolge la funzione di name server.
La terza riga, PTR, indica che l'indirizzo locale 1 del dominio 0.0.127.in-addr.arpa (cioè 1.0.0.127.in-addr.arpa, ovvero 127.0.0.1) è chiamato localhost.localdomain.
In pratica, tutto questo è servito per definire un name server che è soltanto in grado di interrogare i name server di livello root e di tradurre l'indirizzo 127.0.0.1 in localhost.localdomain.
Perché il name server sia in grado di gestire anche la rete locale, occorre che sia in grado di tradurre i nomi utilizzati nella rete locale in indirizzi IP e viceversa.
Il file viene modificato in modo da fare riferimento ad altri due file:
directory /var/named
;
cache . root.cache
;
primary 0.0.127.in-addr.arpa zone/127.0.0
primary 1.168.192.in-addr.arpa zone/192.168.1
primary zigozago.dg zone/zigozago.dg
Definisce la configurazione per la rete locale 192.168.1.0.
@ IN SOA topolino.zigozago.dg. root.topolino.zigozago.dg. (
1997062000 ; Serial
28800 ; Refresh
7200 ; Retry
604800 ; Expire
86400 ) ; Minimum
NS topolino.zigozago.dg.
1 PTR topolino.zigozago.dg.
2 PTR pippo.zigozago.dg.
In tal modo è possibile ``scoprire'' che l'indirizzo 192.168.1.1 corrisponde a topolino.zigozago.dg e che 192.168.1.2 corrisponde a pippo.zigozago.dg
Gli indirizzi sono assoluti perché sono indicati con un punto finale.
Definisce la configurazione per la rete locale zigozago.dg.
@ IN SOA topolino.zigozago.dg. root.topolino.zigozago.dg. (
1997062000 ; Serial
10800 ; Refresh
7200 ; Retry
10800 ; Expire
86400 ) ; Minimum
NS topolino.zigozago.dg.
topolino.zigozago.dg. A 192.168.1.1
pippo.zigozago.dg. A 192.168.1.2
In tal modo è possibile ``scoprire'' che l'indirizzo topolino.zigozago.dg corrisponde a 192.168.1.1 e che pippo.zigozago.dg corrisponde a 192.168.1.2
---------
Gli altri computer della rete locale, in questo caso solo pippo.zigozago.dg, fanno uso del name server topolino.zigozago.dg, cioè di 192.168.1.1.
nameserver 192.168.1.1
Per aggiungere anche l'indicazione di un server di posta elettronica, basta modificare il file /var/named/zone/zigozago.dg contenuto nel computer topolino.zigozago.dg, aggiungendo la riga MX.
@ IN SOA topolino.zigozago.dg. root.topolino.zigozago.dg. (
1997062000 ; Serial
10800 ; Refresh
7200 ; Retry
10800 ; Expire
86400 ) ; Minimum
NS topolino.zigozago.dg.
MX 10 topolino.zigozago.dg.
topolino.zigozago.dg. A 192.168.1.1
pippo.zigozago.dg. A 192.168.1.2
Spesso è conveniente definire dei nomi fittizi riferiti a computer che ne hanno già uno.
Viene modificato in modo da aggiungere gli alias www.zigozago.dg e ftp.zigozago.dg che fanno riferimento sempre al solito topolino.zigozago.dg che però svolge anche le funzioni di server web e FTP.
@ IN SOA topolino.zigozago.dg. root.topolino.zigozago.dg. (
1997062000 ; Serial
10800 ; Refresh
7200 ; Retry
10800 ; Expire
86400 ) ; Minimum
NS topolino.zigozago.dg.
MX 10 topolino.zigozago.dg.
www.zigozago.dg. CNAME topolino.zigozago.dg.
ftp.zigozago.dg. CNAME topolino.zigozago.dg.
topolino.zigozago.dg. A 192.168.1.1
pippo.zigozago.dg. A 192.168.1.2
Se la rete locale funziona senza poter accedere alla rete Internet esterna, conviene evitare che si tenti di interrogare i name server del dominio root. basta commentare (con un punto e virgola) la riga che attiva questa ricerca nel file /etc/named.boot.
directory /var/named
; cache . root.cache
primary 0.0.127.in-addr.arpa zone/127.0.0
primary 1.168.192.in-addr.arpa zone/192.168.1
primary zigozago.dg zone/zigozago.dg
Dopo l'esempio visto nella prima parte di questo capitolo, conviene riepilogare le competenze dei vari componenti che permettono la gestione del name server.
named [<opzioni>]
[[
-
b] <file-di-avvio>]
named è il daemon che funge da name server. Si avvale di un file di avvio (o di configurazione) che normalmente è /etc/named.boot (se viene indicato un nome di file negli argomenti, viene utilizzato quel file invece di quello predefinito).
Nei sistemi in cui si attiva la gestione di un name server, named viene avviato dalla procedura di inizializzazione (init), ma può anche essere avviato manualmente.
Per conoscere maggiori dettagli conviene consultare named(8).
Il file /etc/named.boot è il punto di partenza della configurazione di un name server attraverso named.
Può contenere diversi tipi di righe (record). L'esempio seguente mostra l'utilizzo di quelle più importanti.
directory /var/named
cache . root.cache
primary 0.0.127.in-addr.arpa zone/127.0.0
primary 1.168.192.in-addr.arpa zone/192.168.1
primary zigozago.dg zone/zigozago.dg
Il record directory definisce la collocazione predefinita di altri file usati per la configurazione del name server.
Il record cache . root.cache definisce che per il dominio root (rappresentato da un punto), si utilizza il file root.cache (contenuto nella directory predefinita) e che questo viene messo in una cache di backup. Il dominio root è quello di origine e il file root.cache contiene gli indirizzi necessari a raggiungere i name server di quel dominio (cioè quelli di partenza). Il nome usato per il file root.cache può cambiare da un sistema a un altro, ma questo, è quello normalmente indicato nei documenti che trattano dei name server.
Il terzo record definisce un file (zone/127.0.0) contenente informazioni autorevoli sulla rete 0.0.127.in-addr.arpa (127.0.0.0). In pratica, il file zone/127.0.0 serve per tradurre gli indirizzi di quella sottorete in nomi. Di solito si tratta solo di tradurre 127.0.0.1 in localhost.
Il quarto record definisce un file (zone/192.168.1) contenente informazioni autorevoli sulla rete 1.168.192.in-addr.arpa (192.168.1.0). In pratica, il file zone/192.168.1 serve per tradurre gli indirizzi di quella sottorete in nomi.
Il quinto record definisce un file (zone/zigozago.dg) contenente informazioni autorevoli sulla rete zigozago.dg (192.168.1.0, ma espressa per nome). In pratica, il file zone/zigozago.dg serve per tradurre i nomi di quella sottorete in indirizzi IP. All'interno di questo file possono essere anche indicati degli alias e dei server per la gestione della posta.
Il file /var/named/root.cache è solitamente quello che definisce gli indirizzi dei name server a livello di dominio root. Questi indirizzi cambiano nel tempo e questo file aggiornato è ottenibile presso l'indirizzo seguente.
ftp://ftp.rs.internic.net/domain/named.root
Segue un esempio di questo file.
; This file holds the information on root name servers needed to
; initialize cache of Internet domain name servers
; (e.g. reference this file in the "cache . <file>"
; configuration file of BIND domain name servers).
;
; This file is made available by InterNIC registration services
; under anonymous FTP as
; file /domain/named.root
; on server FTP.RS.INTERNIC.NET
; -OR- under Gopher at RS.INTERNIC.NET
; under menu InterNIC Registration Services (NSI)
; submenu InterNIC Registration Archives
; file named.root
;
; last update: May 19, 1997
; related version of root zone: 1997051700
;
;
; formerly NS.INTERNIC.NET
;
. 3600000 IN NS A.ROOT-SERVERS.NET.
A.ROOT-SERVERS.NET. 3600000 A 198.41.0.4
;
; formerly NS1.ISI.EDU
;
. 3600000 NS B.ROOT-SERVERS.NET.
B.ROOT-SERVERS.NET. 3600000 A 128.9.0.107
;
; formerly C.PSI.NET
;
. 3600000 NS C.ROOT-SERVERS.NET.
C.ROOT-SERVERS.NET. 3600000 A 192.33.4.12
;
; formerly TERP.UMD.EDU
;
. 3600000 NS D.ROOT-SERVERS.NET.
D.ROOT-SERVERS.NET. 3600000 A 128.8.10.90
;
; formerly NS.NASA.GOV
;
. 3600000 NS E.ROOT-SERVERS.NET.
E.ROOT-SERVERS.NET. 3600000 A 192.203.230.10
;
; formerly NS.ISC.ORG
;
. 3600000 NS F.ROOT-SERVERS.NET.
F.ROOT-SERVERS.NET. 3600000 A 192.5.5.241
;
; formerly NS.NIC.DDN.MIL
;
. 3600000 NS G.ROOT-SERVERS.NET.
G.ROOT-SERVERS.NET. 3600000 A 192.112.36.4
;
; formerly AOS.ARL.ARMY.MIL
;
. 3600000 NS H.ROOT-SERVERS.NET.
H.ROOT-SERVERS.NET. 3600000 A 128.63.2.53
;
; formerly NIC.NORDU.NET
;
. 3600000 NS I.ROOT-SERVERS.NET.
I.ROOT-SERVERS.NET. 3600000 A 192.36.148.17
;
; temporarily housed at NSI (InterNIC)
;
. 3600000 NS J.ROOT-SERVERS.NET.
J.ROOT-SERVERS.NET. 3600000 A 198.41.0.10
;
; housed in LINX, operated by RIPE NCC
;
. 3600000 NS K.ROOT-SERVERS.NET.
K.ROOT-SERVERS.NET. 3600000 A 193.0.14.129
;
; temporarily housed at ISI (IANA)
;
. 3600000 NS L.ROOT-SERVERS.NET.
L.ROOT-SERVERS.NET. 3600000 A 198.32.64.12
;
; temporarily housed at ISI (IANA)
;
. 3600000 NS M.ROOT-SERVERS.NET.
M.ROOT-SERVERS.NET. 3600000 A 198.32.65.12
; End of File
nslookup [<opzioni>]
[<host-da-trovare> |
-
server ]
nslookup è un programma in grado di interrogare un name server. Ha due modalità di funzionamento: interattiva e non interattiva.
La modalità interattiva si ottiene quando:
-
)
e il secondo è il nome o un indirizzo di un
name server.La modalità non interattiva viene utilizzata quando il nome o l'indirizzo di un host da cercare viene indicato come primo argomento. In tal caso, il secondo argomento opzionale è il nome o l'indirizzo di un name server.
Per conoscere maggiori dettagli conviene consultare nslookup(8).
ndc <direttiva>...
ndc è un programma (in forma di script) che permette di inviare diversi tipi di segnali a named, il daemon per la gestione del name server.
start
Avvia named se non è già in funzione.
stop
Termina l'esecuzione di named se è in funzione.
restart
Termina l'esecuzione e quindi riavvia named.
1997.10.26 - Scritto da Daniele Giacomini daniele@calion.com (vedi copyright: Appunti Linux).