Io a casa ho 2 PC, Pingu e Pinga, collegati in rete locale. Su Pingu a volte gira VmWare, cui in rete virtuale è assegnato l'IP 192.168.0.3. Inoltre accedo a Internet via modem analogico. Senza entrare nei dettagli, scopiazzatevi 'sti file e andate in pace (per altri dettagli leggete il DNS-Howto o gli immarcescibili & insostituibili Appunti di Informatica Libera, gli ex Appunti Linux). Potete cambiare i nomi (DOVETE anzi, se no Pingu e Pinga s'incavolano!) o aggiungerne altri, variando solo l'ultimo numero dell'IP, mentre per il resto lasciate tutto com'è, a meno di sapere dove mettere le mani. Anche se 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 se proprio non avete fantasia...). Da utente root date il seguente comando:
hostname nome-macchina |
ad esempio nel mio caso: hostname pingu (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 (alcune distribuzioni usano /etc/hostname):
=== file: /etc/HOSTNAME ===
pingu |
oppure:
=== file: /etc/hostname ===
pingu |
Nel caso abbiate una RedHat o derivate (Mandrake, Turbolinux 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 DOMAINNAME=mrshark.home |
Segue il file /etc/hosts, in questa versione già pronto per il protocollo ipv6. Dovreste cambiare solo gli elementi della riga 192.168.0.1. 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, ossia un'interfaccia di rete fittizia che vi permette di collegarvi al vostro stesso PC come se fosse un normale computer di rete. Segue il file:
=== file: /etc/hosts ===
127.0.0.1 localhost.localdomain localhost 192.168.0.1 pingu.mrshark.home pingu ::1 ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters ff02::3 ip6-allhosts |
Nel file /etc/host.conf inserite:
=== file: /etc/host.conf ===
order hosts,bind multi on |
Nel file 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.
Nota: Per conoscere in Windows gli IP dei DNS (in caso vengano assegnati in automatico), per poterli inserire in Linux, che invece li richiede obbligatoriamente, eseguite (tramite la voce Esegui... del Menu d'Avvio o Start) il comando winipcfg DOPO esservi collegati a internet, poi cliccate su Dettagli >> e guardate la seconda voce (DNS) della schermata che vi trovate davanti: quello che vedete è l'IP del DNS primario del provider che state usando, mentre premendo il tasto con i 2 punti ".." avrete l'IP del DNS secondario. Io ho messo 4 IP, visto che uso alternativamente 2 ISP diversi, ma dovrebbe funzionare anche con 2 soli IP, dato che di solito i DNS hanno libero accesso, e quindi potete contattare quelli di un ISP anche se ne usate un altro.
Commentate le 4 righe della direttiva forwarders e le 4 righe di zone "."... se avete solo una rete locale e non accedete a internet (ci sono delle differenze per alcune directory nella distribuzione Debian, quindi seguono 2 file, usate quello che si addice alla vostra distribuzione; in particolare Debian tiene il file named.conf nella directory /etc/bind/, mentre quasi tutte le altre distribuzioni lo tengono in /etc/):
=== file: /etc/named.conf REDHAT ===
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 { 193.70.152.25; 193.70.192.25; 195.130.224.18; 195.130.225.129; }; }; logging { category lame-servers { null; }; category cname { null; }; }; zone "." { type hint; file "/var/named/db.root"; }; zone "localhost" { type master; file "/var/named/db.local"; }; zone "127.in-addr.arpa" { type master; file "/var/named/db.127"; }; zone "0.in-addr.arpa" { type master; file "/var/named/db.0"; }; zone "255.in-addr.arpa" { type master; file "/var/named/db.255"; }; zone "mrshark.home" { type master; file "/var/named/mrshark.home"; }; zone "0.168.192.in-addr.arpa" { type master; file "/var/named/mrshark.home.rev"; }; |
=== file: /etc/bind/named.conf DEBIAN ===
options { directory "/var/cache/bind"; 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 { 193.70.152.25; 193.70.192.25; 195.130.224.18; 195.130.225.129; }; }; logging { category lame-servers { null; }; category cname { null; }; }; 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 "mrshark.home" { type master; file "/etc/bind/mrshark.home"; }; zone "0.168.192.in-addr.arpa" { type master; file "/etc/bind/mrshark.home.rev"; }; |
Nota: TUTTI i file seguenti vanno inseriti in una stessa directory, che è /var/named/ nel caso di RedHat, o /etc/bind/ nel caso di Debian. Quindi riporto i file senza fare riferimento alle dir, sta a voi inserirli nel punto giusto in base alla vostra distribuzione. Naturalmente dovete cambiare, dovunque li vedete, il nome "mrshark.home" con quello del dominio che avete scelto di usare, e pingu, pinga e win con i nomi dei vostri pc.
Dovrete ora creare il file db.root. Questo file contiene gli indirizzi IP dei server DNS principali di Internet. Copiate il seguente (NON cambiate niente):
=== file: db.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 |
I due file seguenti corrispondono all'interfaccia di loopback e suo reverse, non hanno bisogno di essere modificati:
=== file: db.local ===
; ; BIND data file for local loopback interface ; $TTL 604800 @ IN SOA localhost. root.localhost. ( 1 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL ; @ IN NS localhost. @ IN A 127.0.0.1 |
=== file: db.127 ===
; ; BIND reverse data file for local loopback interface ; $TTL 604800 @ IN SOA localhost. root.localhost. ( 1 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL ; @ IN NS localhost. 1.0.0 IN PTR localhost. |
I due file seguenti corrispondono all'indirizzo di broadcast e suo reverse, non hanno bisogno di essere modificati:
=== file: db.0 ===
; ; BIND data file for broadcast zone ; $TTL 604800 @ IN SOA localhost. root.localhost. ( 1 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL ; @ IN NS localhost. |
=== file: db.255 ===
; ; BIND reverse data file for broadcast zone ; $TTL 604800 @ IN SOA localhost. root.localhost. ( 1 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL ; @ IN NS localhost. |
I due file seguenti corrispondono alla zona su cui il vostro dns avrà autorità e suo reverse, modificate ovunque vedete nomi riferiti ai miei pc:
=== file: mrshark.home ===
$ORIGIN mrshark.home. $TTL 1D @ IN SOA pingu.mrshark.home. root.pingu.mrshark.home. ( 1 ; Serial 8H ; Refresh 2H ; Retry 4W ; Expire 1D ) ; Default TTL ; @ IN MX 10 pingu.mrshark.home. @ IN NS pingu.mrshark.home. @ IN A 192.168.0.1 pingu IN A 192.168.0.1 pinga IN A 192.168.0.2 win IN A 192.168.0.129 localhost IN A 127.0.0.1 www IN CNAME pingu ftp IN CNAME pingu |
=== file: mrshark.home.rev ===
$ORIGIN 0.168.192.in-addr.arpa. $TTL 1D @ IN SOA pingu.mrshark.home. root.pingu.mrshark.home. ( 1 ; Serial 8H ; Refresh 2H ; Retry 4W ; Expire 1D ) ; Default TTL @ IN NS pingu.mrshark.home. 1 IN PTR pingu.mrshark.home. 2 IN PTR pinga.mrshark.home. 129 IN PTR win.mrshark.home. |
L'ultimo file è quello che dice al sistema a quale dns rivolgersi, modificate i due domini indicati:
=== file: resolv.conf ===
search mrshark.home domain mrshark.home nameserver 127.0.0.1 nameserver 192.168.0.1 |
Salvate tutto, riavviate il sistema o riavviate BIND (da utente root: /etc/rc.d/init.d/named restart per RedHat, /etc/init.d/bind restart per Debian). 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 o www.mrshark.it ;-).
Nota: 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 named.conf, in modo che il vostro DNS possa interrogare quelli esterni nel caso non riesca a gestire in proprio la risoluzione dei nomi.