File: a2135.html

package info (click to toggle)
appunti-informatica-libera 2001.08.18-2
  • links: PTS
  • area: main
  • in suites: woody
  • size: 27,912 kB
  • ctags: 23,734
  • sloc: makefile: 69
file content (230 lines) | stat: -rw-r--r-- 15,475 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"    "http://www.w3.org/TR/html4/strict.dtd">
<HTML LANG="it">
<HEAD>
    <META HTTP-EQUIV="Content-Type" CONTENT="text/html">
    <META NAME="Generator" CONTENT="Alml">
    <META NAME="Description" CONTENT="GNU/Linux e altro software libero">
    <META NAME="Keywords" CONTENT="Linux, GNU/Linux, Unix, software, software libero, free software">
    <META NAME="Author" CONTENT="Daniele Giacomini &nbsp;&nbsp; &nbsp;daniele&nbsp;@&nbsp;swlibero.org">
    <META NAME="Date" CONTENT="2001.08.18 ">
    <META NAME="Resource-type" LANG="en" CONTENT="Document" >
    <META NAME="Revisit-after" LANG="en" CONTENT="15 days" >
    <META NAME="Robots" CONTENT="ALL" >
    <TITLE> Appunti di informatica libera</TITLE>
    <LINK REL="stylesheet" TYPE="text/css" HREF="a2.css">
    <LINK REL="Start" TITLE="Start" HREF="a2.html">
    <LINK REL="Prev" TITLE="Previous" HREF="a2134.html">
    <LINK REL="Next" TITLE="Next" HREF="a2136.html">
</HEAD>
<BODY>
<P>
<A HREF="a2136.html">[successivo]</A>
<A HREF="a2134.html">[precedente]</A>
<A HREF="a2.html">[inizio]</A>
<A HREF="a2506.html">[fine]</A>
<A HREF="a21.html">[indice generale]</A>
<A HREF="a26.html">[violazione GPL]</A>
<A HREF="a2504.html">[licenze]</A>
<A HREF="a2505.html">[indice analitico]</A>
<A HREF="a2127.html">[tomo]</A>
<A HREF="a2128.html">[parte]</A>
</P>
<HR>
<DIV>
<H1>Capitolo 100. &nbsp; <A NAME="title1707"></A><A NAME="anchor2079"></A> Indirizzi e nomi <A NAME="index9212"></A> </H1>

<P>La gestione diretta degli indirizzi IP in forma numerica pu&ograve; essere utile in fase di progetto di una rete, ma a livello di utente &egrave; una pretesa praticamente inaccettabile. Per questo, agli indirizzi IP numerici si affiancano quasi sempre dei nomi che teoricamente potrebbero anche essere puramente fantastici e senza alcuna logica. Ogni volta che si fa riferimento a un nome, il sistema &egrave; (o dovrebbe essere) in grado di convertirlo nel numero IP corrispondente.</P>

<P>In pratica, si usa di solito la convenzione dei nomi di dominio, come gi&agrave; descritto in precedenza (<A HREF="a2129.html#anchor1972">94.7</A>).</P>

<P>Ci sono due metodi per trasformare un nome in un indirizzo IP e viceversa: un elenco contenuto nel file <CODE>/etc/hosts</CODE> oppure l'uso di un <A NAME="index9213"></A>servente DNS.</P>

<P>In questo capitolo si analizza <CODE>/etc/hosts</CODE> e gli altri file di configurazione legati alla traduzione dei nomi; nel prossimo verr&agrave; trattata la gestione di un <A NAME="index9214"></A>servente DNS con il quale si ottiene un <A NAME="index9215"></A>servizio di risoluzione dei nomi (<EM>name server</EM>).</P>

<H2>100.1 &nbsp; <A NAME="title1708"></A><A NAME="anchor2080"></A>
 Configurazione del tipo di conversione </H2>

<P>Prima di procedere con la trasformazione di un nome in un indirizzo IP, occorre definire in che modo si vuole che il sistema esegua questa operazione. Il file di configurazione attraverso il quale si definisce ci&ograve; &egrave; <CODE>/etc/host.conf</CODE>, ma anche attraverso l'uso di variabili di ambiente si pu&ograve; intervenire in questa configurazione.</P>

<H3>100.1.1 &nbsp; <A NAME="title1709"></A><A NAME="anchor2081"></A>
 /etc/host.conf <A NAME="index9216"></A> </H3>

<P>Viene usato per determinare quali servizi usare per risolvere i nomi di dominio. Ogni riga rappresenta un'opzione di funzionamento, inoltre il simbolo <SAMP>#</SAMP> rappresenta l'inizio di un commento. Solitamente vengono specificate solo due direttive: <SAMP>order</SAMP> e <SAMP>multi</SAMP>, come nell'esempio seguente:</P>

<PRE>order hosts,bind
multi on</PRE>

<P>Nella prima riga, l'opzione <SAMP>order</SAMP> indica l'ordine dei servizi. In questo caso si utilizza prima il file <CODE>/etc/hosts</CODE> (<A HREF="a2135.html#anchor2084">100.2.1</A>) e quindi si interpella il <A NAME="index9217"></A>servizio di risoluzione dei nomi. Nella seconda riga, <SAMP>multi on</SAMP>, abilita la possibilit&agrave; di trovare all'interno del file <CODE>/etc/hosts</CODE> l'indicazione di pi&ugrave; indirizzi IP per lo stesso nome. Un evento del genere pu&ograve; verificarsi quando uno stesso elaboratore ha due o pi&ugrave; connessioni per la rete e per ognuna di queste ha un indirizzo IP diverso.</P>

<P class="syntax"><TT>order<STRONG><BIG>{</BIG></STRONG>hosts<STRONG><BIG>|</BIG></STRONG>bind<STRONG><BIG>|</BIG></STRONG>nis<STRONG><BIG>}</BIG></STRONG><STRONG><BIG>[</BIG></STRONG>,...<STRONG><BIG>[</BIG></STRONG>,...<STRONG><BIG>]</BIG></STRONG><STRONG><BIG>]</BIG></STRONG>
</TT></P>

<P>L'opzione <SAMP>order</SAMP> richiede uno o pi&ugrave; argomenti (separati da spazio, virgola, punto e virgola o due punti) indicanti la sequenza di servizi attraverso cui si deve tentare di risolvere un nome.</P>

<P class="syntax"><TT>multi<STRONG><BIG>{</BIG></STRONG>on<STRONG><BIG>|</BIG></STRONG>off<STRONG><BIG>}</BIG></STRONG>
</TT></P>

<P>L'opzione <SAMP>multi</SAMP> attiva o disattiva la possibilit&agrave; di trovare all'interno del file <CODE>/etc/hosts</CODE> l'indicazione di pi&ugrave; indirizzi IP per lo stesso nome.</P>

<H3>100.1.2 &nbsp; <A NAME="title1710"></A><A NAME="anchor2082"></A>
 Variabili di ambiente <A NAME="index9218"></A> <A NAME="index9219"></A> <A NAME="index9220"></A> </H3>

<P>Attraverso l'uso di variabili di ambiente &egrave; possibile interferire con la configurazione del file <CODE>/etc/host.conf</CODE>.</P>

<UL>

<LI>

<P><SAMP>RESOLV_HOST_CONF</SAMP></P>

<P>Se esiste e non &egrave; vuota, definisce il nome di un file alternativo a <CODE>/etc/host.conf</CODE>.</P>
</LI>

<LI>

<P><SAMP>RESOLV_SERV_ORDER</SAMP></P>

<P>Definisce l'ordine dei servizi di risoluzione dei nomi, senza tenere conto di quanto eventualmente gi&agrave; definito attraverso l'opzione <SAMP>order</SAMP> nel file <CODE>/etc/host.conf</CODE>.</P>
</LI>

<LI>

<P><SAMP>RESOLV_SERV_MULTI</SAMP></P>

<P>Pu&ograve; contenere la stringa <SAMP>on</SAMP> oppure <SAMP>off</SAMP>, con lo stesso significato dell'opzione <SAMP>multi</SAMP> del file <CODE>/etc/host.conf</CODE> e serve a sostituirsi all'eventuale dichiarazione fatta nel file stesso.</P>
</LI>
</UL>

<H2>100.2 &nbsp; <A NAME="title1711"></A><A NAME="anchor2083"></A>
 File per la conversione </H2>

<P>Prima che esistessero i <A NAME="index9221"></A>serventi DNS si dovevano risolvere i nomi attraverso l'uso di un file unico, contenente un elenco di indirizzi IP associato ai nomi rispettivi. Teoricamente, utilizzando un <A NAME="index9222"></A>servente DNS questo file potrebbe non essere pi&ugrave; necessario. In pratica conviene utilizzare ugualmente questo vecchio metodo per garantirsi l'accessibilit&agrave; alla rete locale anche quando l'eventuale <A NAME="index9223"></A>servente DNS non dovesse funzionare.</P>

<H3>100.2.1 &nbsp; <A NAME="title1712"></A><A NAME="anchor2084"></A>
 /etc/hosts <A NAME="index9224"></A> <A NAME="index9225"></A> </H3>

<P>Il file <CODE>/etc/hosts</CODE> viene usato per convertire i nomi degli elaboratori in numeri IP e viceversa. &Egrave; particolarmente utile la sua compilazione all'interno di piccole reti che non dispongono di un <A NAME="index9226"></A>servente DNS. All'interno di una rete locale pu&ograve; essere predisposto uguale per tutti gli elaboratori connessi, cos&igrave; da facilitare per quanto possibile l'aggiornamento all'interno di questi. Segue un estratto di esempio di questo file.</P>

<PRE># necessario per il loopback IPv4
127.0.0.1                       localhost.localdomain   localhost

# indirizzi IPv4
192.168.1.1                     dinkel.brot.dg          dinkel
192.168.1.2                     roggen.brot.dg          roggen

192.168.2.1                     weizen.mehl.dg          weizen

#necessario per il loopback IPv6
::1                             ip6-localhost           ip6-loopback

# necessari per il multicast IPv6
fe00::0                         ip6-localnet
ff00::0                         ip6-mcastprefix
ff02::1                         ip6-allnodes
ff02::2                         ip6-allrouters
ff02::3                         ip6-allhosts

# indirizzi IPv6
fec0::1:2a0:24ff:fe77:4997      dinkel.brot.dg          dinkel
fec0::1:280:5fff:fea6:6d3d      roggen.brot.dg          roggen

fec0::2:280:adff:fec8:a981      weizen.mehl.dg          weizen</PRE>

<P>In pratica, il file pu&ograve; contenere righe vuote o commenti (le righe che iniziano con il simbolo <SAMP>#</SAMP>) e righe che iniziano con un indirizzo IP (sia IPv4 che IPv6). Dopo l'indirizzo IP, separato da spazi o caratteri di tabulazione, inizia l'elenco dei nomi a esso abbinati, anche questo pu&ograve; essere separato da spazi o da caratteri di tabulazione.</P>

<P>Di solito, si indica il nome di dominio completo (FQDN o <EM>Fully Qualified Domain Name</EM>), seguito eventualmente da possibili abbreviazioni o soprannomi.</P>

<P>Poco sopra era stata accennata la possibilit&agrave; di creare un file identico <CODE>/etc/hosts</CODE> per tutti gli elaboratori della propria rete locale. Ma se la rete locale si articola in sottoreti, &egrave; normale che il dominio di appartenenza di ogni sottorete cambi. Nell'esempio visto, si fa riferimento a due sottoreti IPv4 e IPv6: 192.168.1.0 e fec0::1::/64 denominata <CODE>brot.dg</CODE>; 192.168.2.0 e fec0::2::/64 denominata <CODE>mehl.dg</CODE>. In questa situazione, potrebbe capitare che un elaboratore nella rete <CODE>mehl.dg</CODE> abbia lo stesso nome locale di un altro collocato nelle rete <CODE>brot.dg</CODE>.</P>

<P>Per questo, l'attribuzione di soprannomi, o semplicemente di abbreviazioni, deve essere limitata alla sottorete di appartenenza, oppure deve essere evitata. A questo fa eccezione il caso dell'indirizzo di <EM>loopback</EM>: ogni elaboratore &egrave; bene che si chiami <SAMP>localhost</SAMP>.</P>

<P>Se si decide di fare il lavoro in serie, l'esempio visto sopra deve essere trasformato in quello seguente:</P>

<PRE># necessario per il loopback IPv4
127.0.0.1                       localhost.localdomain   localhost

# indirizzi IPv4
192.168.1.1                     dinkel.brot.dg
192.168.1.2                     roggen.brot.dg

192.168.2.1                     weizen.mehl.dg

#necessario per il loopback IPv6
::1                             ip6-localhost           ip6-loopback

# necessari per il multicast IPv6
fe00::0                         ip6-localnet
ff00::0                         ip6-mcastprefix
ff02::1                         ip6-allnodes
ff02::2                         ip6-allrouters
ff02::3                         ip6-allhosts

# indirizzi IPv6
fec0::1:2a0:24ff:fe77:4997      dinkel.brot.dg
fec0::1:280:5fff:fea6:6d3d      roggen.brot.dg

fec0::2:280:adff:fec8:a981      weizen.mehl.dg</PRE>

<H3>100.2.2 &nbsp; <A NAME="title1713"></A><A NAME="anchor2085"></A>
 /etc/networks <A NAME="index9227"></A> </H3>

<P>Il file <CODE>/etc/networks</CODE> viene usato per convertire i nomi delle sottoreti in codici IPv4. Come nel caso del file <CODE>/etc/hosts</CODE>, pu&ograve; essere predisposto in forma unificata per tutti i <A NAME="index9228"></A>nodi di una stessa rete, cos&igrave; da facilitare per quanto possibile l'aggiornamento all'interno di questi. Segue un estratto di esempio di questo file.</P>

<PRE>localdomain     127.0.0.0

brot.dg         192.168.1.0
mehl.dg         192.168.2.0</PRE>

<TABLE BORDER="3" WIDTH="100%">
<TR><TD>

<P>La presenza di questo file non &egrave; indispensabile; in effetti, la gestione delle sottoreti attraverso l'uso diretto degli indirizzi IP non dovrebbe essere un problema. Il vantaggio di avere questo file, sta nell'utilizzo del programma <SAMP>route</SAMP> per visualizzare la tabella di instradamento: gli indirizzi di rete vengono trasformati nei nomi ottenuti dal file <CODE>/etc/networks</CODE>.</P>

</TD></TR>
</TABLE>

<P>&Egrave; bene chiarire che normalmente non si utilizza il <A NAME="index9229"></A>servente DNS per risolvere i nomi della rete; quindi, di solito, la gestione dei nomi si attua solo attraverso la predisposizione di questo file.</P>

<H3>100.2.3 &nbsp; <A NAME="title1714"></A><A NAME="anchor2086"></A>
 /etc/resolv.conf <A NAME="index9230"></A> </H3>

<P>Quando il file <CODE>/etc/hosts</CODE> non basta, si deve poter accedere a un <A NAME="index9231"></A>servizio di risoluzione dei nomi, ovvero a un <A NAME="index9232"></A>servente DNS. Viene usato il file <CODE>/etc/resolv.conf</CODE> per conoscere l'indirizzo o gli indirizzi dei <A NAME="index9233"></A>servizi di risoluzione dei nomi di competenza della rete cui si appartiene. Se non si intende utilizzare il sistema DNS per risolvere i nomi della propria rete, oppure si dispone di un solo elaboratore, ma si vuole accedere alla rete <A NAME="index9234"></A>Internet, dovranno essere indicati gli indirizzi dei <A NAME="index9235"></A>servizi di risoluzione dei nomi forniti dall'ISP (<EM>Internet Service Provider</EM>), ovvero dal fornitore di accesso a <A NAME="index9236"></A>Internet.</P>

<P>Questo file pu&ograve; contenere righe vuote o commenti (le righe che iniziano con il simbolo <SAMP>#</SAMP>) e righe che iniziano con un nome di opzione seguite normalmente da un argomento. Le opzioni utilizzabili sono descritte qui di seguito.</P>

<P class="syntax"><TT>nameserver<VAR>indirizzo_ip_servente_DNS</VAR>
</TT></P>

<P>L'opzione <SAMP>nameserver</SAMP> &egrave; la pi&ugrave; importante e permette di definire l'indirizzo IP di un <A NAME="index9237"></A>servizio di risoluzione dei nomi. Se questa opzione non viene utilizzata, si fa riferimento a un servizio locale, raggiungibile precisamente all'indirizzo 127.0.0.1. Il file <CODE>/etc/resolv.conf</CODE> pu&ograve; contenere pi&ugrave; righe con questa opzione, in modo da poter fare riferimento a <A NAME="index9238"></A>servizi di risoluzione dei nomi alternativi quando quello principale non risponde.</P>

<P class="syntax"><TT>domain<VAR>nome_di_dominio</VAR>
</TT></P>

<P>Stabilisce il dominio predefinito per le interrogazioni del <A NAME="index9239"></A>servizio di risoluzione dei nomi.</P>

<P class="syntax"><TT>search<VAR>nome_di_dominio</VAR>...
</TT></P>

<P>Definisce un elenco di domini possibili (l'elenco &egrave; separato da spazi o caratteri di tabulazione) per le interrogazioni del <A NAME="index9240"></A>servizio di risoluzione dei nomi.</P>

<P>Una configurazione normale non ha bisogno dell'indicazione delle opzioni <SAMP>domain</SAMP> e <SAMP>search</SAMP>. Se il file <CODE>/etc/resolv.conf</CODE> si limita a contenere opzioni <SAMP>nameserver</SAMP>, questo pu&ograve; essere standardizzato su tutta la rete locale.</P>

<P>Segue un esempio in cui si utilizza il <A NAME="index9241"></A>servizio di risoluzione dei nomi offerto dall'indirizzo IP 192.168.1.1 ed eventualmente, in sua mancanza, dall'indirizzo 192.168.2.15</P>

<PRE>nameserver 192.168.1.1
nameserver 192.168.2.15</PRE>
Appunti di informatica libera 2001.08.18  --- <EM>Copyright &copy; 2000-2001 Daniele Giacomini -- &nbsp;daniele&nbsp;@&nbsp;swlibero.org</EM></DIV>
<HR>
<P>Dovrebbe essere possibile fare riferimento a questa pagina anche con il nome  <A HREF="indirizzi_e_nomi.html">indirizzi_e_nomi.html</A></P>
<P>
<A HREF="a2136.html">[successivo]</A>
<A HREF="a2134.html">[precedente]</A>
<A HREF="a2.html">[inizio]</A>
<A HREF="a2506.html">[fine]</A>
<A HREF="a21.html">[indice generale]</A>
<A HREF="a26.html">[violazione GPL]</A>
<A HREF="a2504.html">[licenze]</A>
<A HREF="a2505.html">[indice analitico]</A>
</P>
</BODY>
</HTML>