Avanti Indietro Indice

11. DNS

Come dal titolo dell'Howto, creiamo un DNS facilmente e velocemente. Io a casa ho 2 PC, Pingu e Pinga, collegati in rete locale. Inoltre accedo a Internet via modem. Senza entrare nei dettagli, scopiazzatevi 'sti file e andate in pace (per altri dettagli leggete il DNS-Howto o gli "immarcescibili" Appunti Linux). Potete cambiare i nomi (DOVETE anzi, se no Pingu e Pinga s'incavolano!) o aggiungerne altri, variando solo l'ultimo numero, mentre per il resto lasciate tutto com'è. Se anche non avete una rete locale, i file vanno bene ugualmente, vi ritroverete con qualcosa in più che non pregiudicherà alcunchè, e vi spingerà al prossimo cambio di PC a tenervi quello attuale e collegarlo al nuovo, tanto più che non spendereste più di centomila lire tra schede di rete e cavi. Per prima cosa impostate il nome del vostro Linux-Box. Se non sapete cosa fare, sappiate che dovrete inventarvi un nome per il vostro PC e per il vostro dominio (consigliato NON sceglierne uno esistente, al massimo cambiate la parte finele, tipo: da yahoo.com a yahoo.cxm). Da root date:


hostname macchina.dominio

ad esempio nel mio caso: hostname pingu.mrshark.home (d'ora in poi ogni volta che vedete pingu.mrshark.home o simili, sostituiteli con i nomi scelti da voi). Impostate anche il file /etc/HOSTNAME come segue:


=== file: /etc/HOSTNAME ===

pingu.mrshark.home

Nel caso abbiate una RedHat o derivate (Mandrake, ecc.), modificate il file /etc/sysconfig/network nella parte relativa a HOSTNAME e DOMAINNAME, altrimenti ad ogni riavvio l'hostname ritornerà localhost.localdomain :


=== file: /etc/sysconfig/network ===

...
HOSTNAME=pingu.mrshark.home
DOMAINNAME=mrshark.home

nel file /etc/hosts aggiungete le altre vostre macchine, se ne avete. Il primo campo è l'ip della macchina, il secondo il nome completo, il terzo degli alias. NON ELIMINATE la riga 127...: serve per l'interfaccia di loopback. Segue il file:


=== file: /etc/hosts ===

127.0.0.1       localhost.localdomain   localhost
192.168.0.1     pingu.mrshark.home        pingu mrshark.home
192.168.0.2     pinga.mrshark.home        pinga

Nel file /etc/host.conf inserite:


=== file: /etc/host.conf ===

order hosts,bind
multi on

Nel file /etc/named.conf inserite quanto segue, cambiando i due mrshark.home alla fine con il vostro dominio, e inserendo nella sezione forwarders gli IP dei DNS del provider che usate (commentate le 4 righe della direttiva forwarders e le 4 righe di zone "."... se avete solo una rete locale e non accedete a internet):


=== file: /etc/named.conf ===

options {
        directory "/var/named";
        allow-transfer {
                127.0.0.1;
                192.168.0.0/24; 
        };
        allow-query {
                127.0.0.1;
                192.168.0.0/24; 
        };
        forward first;
        forwarders {
                195.210.91.1;
                195.210.91.2; 
        };
};
zone "." {
        type hint;
        file "named.root";
};
zone "0.0.127.in-addr.arpa" {
         type master;
         file "zone/127.0.0";
};
zone "0.168.192.in-addr.arpa" {
        type master;
        file "zone/192.168.0";
};
zone "mrshark.home" {
        type master;
        file "zone/mrshark.home";
};

Ora spostatevi in /var/named. Dovrebbe esserci già il file named.root, oppure potrebbe chiamarsi named.ca. In quest'ultimo caso, rinominatelo con mv named.ca named.root. Questo file contiene gli indirizzi IP dei server DNS principali di Internet. Se proprio non esiste, scaricatelo da http://www.internic.net, oppure createlo, copiando il seguente (NON cambiate niente):


=== file: /var/named/named.root ===

;       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:    Aug 22, 1997
;       related version of root zone:   1997082200
;
;
; 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
;
; housed in Japan, operated by WIDE
;
.                        3600000      NS    M.ROOT-SERVERS.NET.
M.ROOT-SERVERS.NET.      3600000      A     202.12.27.33
; End of File

Create ora la directory /var/named/zone/. Al suo interno create il file /var/named/zone/127.0.0 (cambiate solo il dominio e attenzione a NON togliere i punti finali):


=== file: /var/named/zone/127.0.0 ===

@  IN  SOA   pingu.mrshark.home. root.pingu.mrshark.home.  (
1998031800 ; Serial
28800      ; Refresh
7200       ; Retry
604800     ; Expire
86400)    ; Minimum
       NS    pingu.mrshark.home.
1      PTR   localhost.localdomain.

Ora il file /var/named/zone/192.168.0 (cambiate solo il dominio e i nomi delle macchine e attenzione a NON togliere i punti finali):


=== file: /var/named/zone/192.168.0  ===

@  IN  SOA   pingu.mrshark.home. root.pingu.mrshark.home.  (
1998031800 ; Serial
28800      ; Refresh
7200       ; Retry
604800     ; Expire
86400)    ; Minimum
       NS    pingu.mrshark.home.
1      PTR   pingu.mrshark.home.
2      PTR   pinga.mrshark.home.

Eccoci al penultimo file. Questo dovete chiamarlo col nome del dominio che avete scelto, quindi nel mio caso sarà /var/named/zone/mrshark.home (come al solito, cambiate i nomi e attenti ai punti finali):


=== file: /var/named/zone/mrshark.home  ===

@  IN      SOA  pingu.mrshark.home. root.pingu.mrshark.home.  (
1998031800 ; Serial
28800      ; Refresh
7200       ; Retry
604800     ; Expire
86400)    ; Minimum
       NS   pingu.mrshark.home.
       MX   10 pingu.mrshark.home.
www.mrshark.home. CNAME pingu.mrshark.home.
ftp.mrshark.home. CNAME pingu.mrshark.home.
pingu.mrshark.home.    A    192.168.0.1
pinga.mrshark.home.    A    192.168.0.2

Manca l'ultimo file, quello che indica al sistema quali DNS e dominio usare, /etc/resolv.conf (come al solito cambiate il dominio):


=== file: /etc/resolv.conf ===

domain mrshark.home
nameserver 127.0.0.1 

Salvate tutto, riavviate il sistema o riavviate BIND (/etc/rc.d/init.d/named restart), e da root date il comando: nslookup. Ora incominciate a fare le vostre prove. Esempi di prove per il mio PC sono (dal prompt di nslookup ">"): 192.168.0.1, 192.168.0.2, www.mrshark.home, ftp.mrshark.home, pingu.mrshark.home, pinga.mrshark.home, pingu, pinga. Se date l'IP dovete ottenere il nome e viceversa. Dopo esservi connessi a Internet, provate anche a fare qualche risoluzione di nomi di siti, p.e. www.yahoo.it.

Nota per l'uso di programmi che gestiscono in automatico il file /etc/resolv.conf, tipo kppp o wvdial: se avete impostato e testato completamente il vostro DNS, nelle impostazioni di questi programmi, invece di indicare il dominio e gli IP dei DNS che vi vengono forniti dal provider, inserite il VOSTRO dominio e come IP del DNS inserite 127.0.0.1, ricordando però di inserire i VERI IP dei DNS del provider nella sezione "forwarders" del file /etc/named.conf, in modo che il vostro DNS possa interrogare quelli esterni nel caso non riesca a gestire in proprio la risoluzione dei nomi.


Avanti Indietro Indice