Nel numero di maggio/giugno abbiamo visto
come fare l'aliasing degli IP, gestire
server Web virtuali per questi
indirizzi e come aggiungere il dominio
e nomi alias alla nostra rete per renderla più professionale e flessibile.
In questo articolo vedremo di andare ancora un passo avanti riguardo quest'ultimo
argomento dei domini e dei nomi delle macchine in una rete TCP/IP, esaminando l'installazione ed il funzionamento di un name server per
OS/2 (BIND, gratuito) un programma indubbiamente necessario
quando la rete che si amministra è di tipo professionale.
Il name server
Chiunque abbia un minimo di esperienza di internet ha sentito parlare del DNS o
Domain Name Server, se non altro perché è uno dei parametri che vanno
forniti al dialer per collegarsi al proprio provider, ma non tutti sanno che cosa
é; ebbene è il software che mappa gli scomodi indirizzi IP numerici nei più
semplici nomi equivalenti.
Quando il Netscape o il PM Mail cercano di collegarsi a un server usando un nome come per esempio www.ibm.com
o popmail.iol.it, il DNS fornisce il rispettivo indirizzo IP e il colloquio tra il client e il server
inizia.
Nel primo articolo di questa serie sulle intranet
fatte con OS/2 e nei successivi
avevamo risolto il problema di determinare la corrispondenza tra indirizzi IP e
nomi usando il file \MPTN\ETC\HOSTS, un semplice file di testo che viene
consultato dallo stack TCP di Warp, cosicché a www.bertinet.net corrispondeva
192.168.0.1.
Lo svantaggio di usare questo sistema è che si può utilizzare comodamente
solo finché l'intranet è composta da pochi PC, infatti ogni aggiunta
di una macchina o spostamento di un server da un PC ad un altro richiede che il
file venga aggiornato su tutti i PC della rete, con conseguenti possibilità
di errore o ritardi di aggiornamento.
Quando si tratta di un'intranet professionale o che si vuole trasformare
in extranet pubblica, come BBS o rete civica o come extranet
privata di una ditta, ecco che si ha la necessità di usare un name server,
in modo che tutti i cambiamenti possano essere effettuati da un responsabile su
un'unica macchina e siano immediatamente disponibili a tutta la rete.
Tutto questo come negli articoli precedenti verrà fatto a costo zero, cosa
che dovrebbe far riflettere chiunque abbia la necessità di costruire un'intranet o extranet, sull'opportunità di usare Warp
o Warp Server; inoltre è da notare che l' installazione del name server
non darà assolutamente noia alla condivisione dell' accesso ad internet che
si era visto sul numero 2/97 di Just Warp!
Installazione del name server BIND
Il name server che prenderemo in considerazione è BIND (Berkley Internet
Name Domain) 4.9.5 per OS/2, un server gratuito e molto noto, tanto che il DNS di
IBM fornito con Warp Server si basa su di esso; inoltre il carico di questo name
server sul sistema è praticamente nullo.
Al momento in cui scrivo nella directory \incoming di Hobbes è presente la
versione 8.1.1 che è la versione successiva alla 4.9.5; può stupire
il salto di numerazione, ma è stato deciso così per tutte le piattaforme
supportate da BIND. Per usarlo è necessario aver installato il runtime di
Emx 0.9c (emxrt.zip, 500 kB, per la 8.1.1 deve essere la 0.9c Fix 3) che potete
trovare anche sul mirror
VOLFtp di Hobbes), dato che proviene dal mondo UNIX; è inoltre in preparazione
il porting sotto VAC++.
Una volta decompresso il file bind495a.zip
(1 Mb, comprende anche i sorgenti in C), in una directory temporanea, per esempio
\BIND495 bisogna effettuare i seguenti spostamenti di file:
Da
|
A
|
\BIND495\NAMED\NAMED.EXE
|
\TCPIP\BIN
|
\BIND495\NAMED\NAMED-XFER.EXE
|
\TCPIP\BIN
|
\BIND495\TOOLS\DIG.EXE
|
\TCPIP\BIN
|
\BIND495\TOOLS\DNSQUERY.EXE
|
\TCPIP\BIN
|
\BIND495\TOOLS\HOST.EXE
|
\TCPIP\BIN
|
\BIND495\TOOLS\ADDR.EXE
|
\TCPIP\BIN
|
\BIND495\TOOLS\NSLOOKUP\NSLOOKUP.EXE
|
\TCPIP\BIN
|
\BIND495\TOOLS\NSLOOKUP\NSLOOKUP.HELP
|
\MPTN\HELP
|
A questo punto si deve creare la directory \MPTN\NAMEDB e i file di dati
per il server.
Chi volesse porre questi file in una directory diversa da \TCPIP\BIN e \TCPIP\HELP
può farlo a patto di configurare nel file CONFIG.SYS tre variabili di sistema,
in questo caso va consultato il semplice manuale fornito con BIND.
I file di configurazione
I file di configurazione di BIND vanno creati con un qualsiasi editor ASCII come
l'editor di sistema, consiglio di porli in \MPTN\ETC\NAMEDB dato che è
il default.
Il file più importante è NAMED.BOOT, gli altri hanno nome e
posizione a discrezione dell'amministratore di sistema, personalmente mi sono limitato
a seguire una struttura consigliata nella documentazione sui DNS, che mi pare flessibile
e facile da mantenere.
Vediamo quindi questo file:
; File: MPTN\ETC\NAMEDB\NAMED.BOOT per Bind 4.9.5
;
; Cache
; contiene le informazioni usate da named (Bind) per iniziare
; Attenzione al doppio slash (\\) !
cache . f:\\mptn\\etc\\namedb\\named.cache
; Server primari
; formato: primary nome dominio file
; Forward mapping
primary bertinet.net f:\\mptn\\etc\\namedb\\named.domain
; Reverse mapping
primary 0.0.127.in-addr.arpa f:\\mptn\\etc\\namedb\\0.0.127.in-addr.arpa
primary 0.168.192.in-addr.arpa f:\\mptn\\etc\\namedb\\0.168.192.in-addr.arpa
La struttura è semplice, i ' ; ' indicano i commenti, le informazioni
di cache servono al DNS per avviarsi e sono contenute nel file
indicato; il primo primary indica quale file usare per
la mappatura diretta del dominio bertinet.net, ovvero quale file deve essere consultato
per trovare per esempio l'indirizzo IP di www.bertinet.net; gli altri
due primary indicano quali file usare per la mappatura inversa, ovvero trovare
gli indirizzi conoscendo i nomi.
È da notare la forma del primo parametro, che inverte l'indirizzo
IP della rete che si amministra, se per esempio si dovesse gestire la 130.34.56.x
si avrebbe:
primary 56.34.130.in-addr.arpa f:\\xxxxxxxxxxxx
Nel caso il DNS debba servire più reti si aggiungono i relativi dati, come
si vede i file di mappatura possono essere messi dove si vuole anche se mi pare
più ordinato tenerli insieme a NAMED.BOOT ; consiglio inoltre di stare attenti
a usare "\\" nel percorso dei file di mappatura, per evitare noiosi
errori.
Vediamo ora il file NAMED.CACHE:
; File: f:\MPTN\ETC\NAMEDB\NAMED.CACHE
; file di cache per named (Bind)
; leggere il manuale di Bind per maggiori informazioni sul file cache standard
; definisce domain name server padri
; ATTENZIONE al punto alla fine del nome !
bertinet.net. 99999999 IN NS 194.20.24.1.
in-addr.arpa. 99999999 IN NS 194.20.24.1.
. 99999999 IN NS 194.20.24.1.
; indirizzo del name server del provider
; attenzione al punto in fondo al nome !
194.20.24.1. 99999999 IN A 194.20.24.1
Questo è usato per riferirsi ai DNS padre, in questo caso usa il DNS di IOL
che ha indirizzo 194.20.24.1, e che non avendo nome è stato chiamato 194.20.24.1.
(notate il punto finale!), nel caso il DNS del vostro provider si chiami dns.provider.it
ed abbia indirizzo 196.10.10.1 basta sostituire il nome a
194.20.24.1. e l'indirizzo.
Passiamo quindi al file di mappatura diretta, NAMED.DOMAIN :
; File: f:\MPTN\ETC\NAMEDB\NAMED.DOMAIN
; File di Forward Mapping per Bind
; Descrizione del dominio bertinet.net che si trova in NAMED.BOOT
; SOA : Start Of Authority
@ IN SOA psvp.bertinet.net. psvp.bertinet.net. (
97080901 ; Numero seriale forma: aammgg##
86400 ; tempo di refresh = 24 h.
3600 ; tempo di retry = 1 h.
864000 ; tempo di scadenza 10 giorni
86400 ) ; TTL minimo
NS psvp.bertinet.net.
; Informazioni sugli indirizzi del dominio
; localhost.bertinet.net
localhost IN A 127.0.0.1
IN HINFO PC Loopback
; psvp (psvp.bertinet.net)
psvp IN A 192.168.0.1
IN HINFO PC WARP4
; thinkpad
thinkpad IN A 192.168.0.2
IN HINFO THINKPAD WARP4
; merlin
merlin IN A 192.168.0.3
IN HINFO PC WARP4
; Per gestire più agevolmente eventuali spostamenti dei server
; Attenzione al punto finale !
www IN CNAME psvp.bertinet.net.
news IN CNAME psvp.bertinet.net.
mail IN CNAME merlin.bertinet.net.
proxy IN CNAME psvp.bertinet.net.
Permettetemi di tralasciare la discussione del campo SOA, è
descritto nel manuale del DNS e se avete bisogno di cambiare quei cinque numeri
vuol dire che dovete proprio leggerlo.
Passiamo ai campi seguenti, come è intuibile attribuiscono
ad ogni nome il relativo indirizzo IP e aggiungono informazioni sul tipo di macchina
e sul sistema operativo usato, informazioni che possono essere lette con nslookup
con il comando ls -h bertinet.net.
Ogni volta che viene aggiunta una macchina alla rete basterà quindi aggiornare
questo file e quello di mappatura inversa.
Per finire esaminiamo l'ultima parte del file, nella quale
vengono definiti degli alias per il server web, news, proxy e posta; con questo
sistema diventa facilissimo spostare un server da un PC ad un altro più potente
o meno usato, dovendo così aggiornare solo il campo
a destra di CNAME.
Concludiamo lo studio dei file di configurazione con i file di mappatura inversa
sia per il localhost (127.0.0.1) che per la rete:
; File: f:\MPTN\ETC\NAMEDB\0.0.127.in-addr.arpa
; File di Reverse mapping per Bind
; SOA : Start Of Authority
; ripreso da NAMED.DOMAIN
@ IN SOA psvp.bertinet.net. psvp.bertinet.net. (
97080901 ; Numero seriale forma: aammgg##
86400 ; tempo di refresh = 24 h.
900 ; tempo di retry = 15 min
864000 ; tempo di scadenza 10 giorni
86400 ) ; TTL minimo
NS psvp.bertinet.net.
; attenzione al punto finale !
1 IN PTR localhost.bertinet.net.
Come si vede è banale, per la rete invece ci sono i campi relativi a tutte
le macchine:
; File: f:\MPTN\ETC\NAMEDB\0.168.192.in-addr.arpa
; File di Reverse mapping per Bind del dominio 192.168.0.x
; SOA : Start Of Authority
; ripreso da NAMED.DOMAIN
@ IN SOA psvp.bertinet.net. psvp.bertinet.net. (
97080901 ; Numero seriale forma: aammgg##
86400 ; tempo di refresh = 24 h.
900 ; tempo di retry = 15 min
864000 ; tempo di scadenza 10 giorni
86400 ) ; TTL minimo
NS psvp.bertinet.net.
; attenzione al punto finale !
1 IN PTR psvp.bertinet.net.
2 IN PTR thinkpad.bertinet.net.
3 IN PTR merlin.bertinet.net.
La configurazione del TCP/IP
L'ultimo passo da seguire per avere il nostro DNS funzionante è configurare
il TCP/IP, usando al solito l'utility di Configurazione di TCP/IP che si
trova nel folder di Impostazioni del sistema.
Nella pagina 1 di Nomi host nel campo indirizzi server nomi mettiamo
l'indirizzo IP del PC dove si trova BIND, come mostrato in figura:

Andiamo alla pagina 2 di Nomi host e se necessario deselezionamo il checkbox
Cercare nell'elenco host..., come in figura, in modo che il TCP/IP chieda
solo al DNS la risoluzione degli indirizzi.
![[ ] Cercare nell'elenco HOST prima di andare al server dei nomi](tcpip2.gif)
A questo punto la configurazione è finita, e possiamo fare la prima prova.
Avvio e test del name server
La prima volta che si avvia il DNS è bene eseguire il programma syslogd.exe
che si trova in \TCPIP\BIN, che salva nel file \MPTN\ETC\syslog.msg
il log dei messaggi di BIND, in questo modo si possono trovare eventuali errori
fatti nella creazione dei file di configurazione, magari un punto finale mancante
o uno \ al posto di \\.
Facciamo quindi partire il dns con il comando named.exe che avevamo posto
in \TCPIP\BIN, comando che andrà messo nella cartella Avvio
per eseguirlo automaticamente all'accensione del PC che fa da server.
Una volta accertato esaminando syslog.msg che non ci sono errori nei file
di configurazione testiamo il server usando nslookup.
Al prompt del programma verrà mostrato l'indirizzo del DNS di default, che
in questo esempio è 192.168.0.1, e interroghiamo il DNS:
> psvp
Server: psvp.bertinet.net
Indirizzo: 192.168.0.1
Nome: psvp.bertinet.net
Indirizzo: 192.168.0.1
> 192.168.0.3
Server: psvp.bertinet.net
Indirizzo: 192.168.0.1
Nome: merlin.bertinet.net
Indirizzo: 192.168.0.3
> www
Server: psvp.bertinet.net
Indirizzo: 192.168.0.1
Nome: psvp.bertinet.net
Indirizzo: 192.168.0.1
Alias: www.bertinet.net
> ls -h bertinet.net
[psvp.bertinet.net]
merlin PC WARP4
thinkpad THINKPAD WARP4
localhost PC Loopback
psvp PC WARP4
Una volta accertato che il DNS funziona impostiamo il TCP/IP
sulle altre macchine della rete e proviamo il collegamento ad internet, sia usando
il Netscape/2 che il comando host:
[F:\]host psvp
psvp.bertinet.net = 192.168.0.1
[F:\]host www.ibm.com
www.ibm.com = 204.146.17.33
[F:\]host www.bertinet.net
psvp.bertinet.net = 192.168.0.1
Come si vede vengono risolti sia i nomi e gli alias della nostra intranet, che nomi
di altri domini come ibm.com.
Conclusioni
Abbiamo visto come rendere decisamente professionale e flessibile la nostra rete
intranet, che ora può ingrandirsi a piacere ed eventualmente anche aprirsi
verso l'esterno diventando un extranet.
La gestione dei nomi è ora centralizzata, l'aggiunta di uno o più
PC implica la modifica di solo due file di mappatura, infine è possibile
spostare i server sui PC che garantiscono le migliori prestazioni, secondo le necessità.
Tutto questo al solito è a costo zero in quanto anche in questo caso è
stato usato un programma di pubblico dominio.
|