[successivo] [precedente] [inizio] [fine] [indice generale] [indice ridotto] [indice analitico] [home] [volume] [parte]


Capitolo 279.   Indirizzi e nomi

La gestione diretta degli indirizzi IP in forma numerica può essere utile in fase di progetto di una rete, ma a livello di utente è 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 è (o dovrebbe essere) in grado di convertirlo nel numero IP corrispondente. In pratica, si usa di solito la convenzione dei nomi di dominio, come già descritto in precedenza (255.4).

Ci sono due metodi per trasformare un nome in un indirizzo IP e viceversa: un elenco contenuto nel file /etc/hosts oppure l'uso di un servente DNS.

In questo capitolo si analizza /etc/hosts e gli altri file di configurazione legati alla traduzione dei nomi; nel prossimo viene trattata la gestione di un servente DNS con il quale si ottiene un servizio di risoluzione dei nomi (name server).

279.1   Configurazione del tipo di conversione

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ò è /etc/host.conf, ma anche attraverso l'uso di variabili di ambiente si può intervenire in questa configurazione.

279.1.1   File «/etc/host.conf»

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

order hosts,bind
multi on

Nella prima riga, l'opzione order indica l'ordine dei servizi. In questo caso si utilizza prima il file /etc/hosts (279.2.1) e quindi si interpella il servizio di risoluzione dei nomi. Nella seconda riga, multi on, abilita la possibilità di trovare all'interno del file /etc/hosts l'indicazione di più indirizzi IP per lo stesso nome. Un evento del genere può verificarsi quando uno stesso elaboratore ha due o più connessioni per la rete e per ognuna di queste ha un indirizzo IP diverso.

Tabella 279.2. Alcune direttive.

Direttiva Descrizione
order {hosts|bind|nis}[,...[,...]]
L'opzione order richiede uno o più 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.
multi {on|off}
L'opzione multi attiva o disattiva la possibilità di trovare all'interno del file /etc/hosts l'indicazione di più indirizzi IP per lo stesso nome.

279.1.2   Variabili di ambiente

Attraverso l'uso di variabili di ambiente è possibile interferire con la configurazione del file /etc/host.conf.

Tabella 279.3. Alcune variabili di ambiente.

Variabile Descrizione
RESOLV_HOST_CONF Se esiste e non è vuota, definisce il nome di un file alternativo a /etc/host.conf.
RESOLV_SERV_ORDER Definisce l'ordine dei servizi di risoluzione dei nomi, senza tenere conto di quanto eventualmente già definito attraverso l'opzione order nel file /etc/host.conf.
RESOLV_SERV_MULTI Può contenere la stringa on oppure off, con lo stesso significato dell'opzione multi del file /etc/host.conf e serve a sostituirsi all'eventuale dichiarazione fatta nel file stesso.

279.2   File per la conversione

Prima che esistessero i 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 servente DNS questo file potrebbe non essere più necessario. In pratica conviene utilizzare ugualmente questo vecchio metodo per garantirsi l'accessibilità alla rete locale anche quando l'eventuale servente DNS non dovesse funzionare.

279.2.1   File «/etc/hosts»

Il file /etc/hosts viene usato per convertire i nomi degli elaboratori in numeri IP e viceversa. È particolarmente utile la sua compilazione all'interno di piccole reti che non dispongono di un servente DNS. All'interno di una rete locale può essere predisposto uguale per tutti gli elaboratori connessi, così da facilitare per quanto possibile l'aggiornamento all'interno di questi. Segue un estratto di esempio di questo file.(1)

#
# 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

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

Di solito, si indica il nome di dominio completo (FQDN o Fully qualified domain name), seguito eventualmente da possibili abbreviazioni o soprannomi.

Poco sopra si è accennato alla possibilità di creare un file identico /etc/hosts per tutti gli elaboratori della propria rete locale. Ma se la rete locale si articola in sottoreti, è 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 brot.dg; 192.168.2.0 e fec0::2::/64 denominata mehl.dg. In questa situazione, potrebbe capitare che un elaboratore nella rete mehl.dg abbia lo stesso nome locale di un altro collocato nelle rete brot.dg.

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 loopback: ogni elaboratore è bene che si chiami localhost.

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

#
# 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

279.2.2   File «/etc/networks»

Il file /etc/networks viene usato per convertire i nomi delle sottoreti in codici IPv4. Come nel caso del file /etc/hosts, può essere predisposto in forma unificata per tutti i nodi di una stessa rete, così da facilitare per quanto possibile l'aggiornamento all'interno di questi. Segue un estratto di esempio di questo file:

localdomain     127.0.0.0

brot.dg         192.168.1.0
mehl.dg         192.168.2.0

La presenza di questo file non è 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 route per visualizzare la tabella di instradamento: gli indirizzi di rete vengono trasformati nei nomi ottenuti dal file /etc/networks.

È bene chiarire che normalmente non si utilizza il servente DNS per risolvere i nomi della rete; quindi, di solito, la gestione dei nomi si attua solo attraverso la predisposizione di questo file.

279.2.3   File «/etc/resolv.conf»

Quando il file /etc/hosts non basta, si deve poter accedere a un servizio di risoluzione dei nomi, ovvero a un servente DNS. Viene usato il file /etc/resolv.conf per conoscere l'indirizzo o gli indirizzi dei 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 Internet, devono essere indicati gli indirizzi dei servizi di risoluzione dei nomi forniti dall'ISP (Internet service provider), ovvero dal fornitore di accesso a Internet.

Questo file può contenere righe vuote o commenti (le righe che iniziano con il simbolo #) e righe che iniziano con un nome di opzione seguite normalmente da un argomento. Le opzioni utilizzabili sono descritte nella tabella successiva.

Tabella 279.7. Alcune direttive.

Direttiva Descrizione
nameserver indirizzo_ip_servente_dns
L'opzione nameserver è la più importante e permette di definire l'indirizzo IP di un 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 /etc/resolv.conf può contenere più righe con questa opzione, in modo da poter fare riferimento a servizi di risoluzione dei nomi alternativi quando quello principale non risponde.
domain nome_di_dominio
Stabilisce il dominio predefinito per le interrogazioni del servizio di risoluzione dei nomi.
search nome_di_dominio...
Definisce un elenco di domini possibili (l'elenco è separato da spazi o caratteri di tabulazione) per le interrogazioni del servizio di risoluzione dei nomi.

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

Segue un esempio in cui si utilizza il servizio di risoluzione dei nomi offerto dall'indirizzo IP 192.168.1.1 ed eventualmente, in sua mancanza, dall'indirizzo 192.168.2.15.

nameserver 192.168.1.1
nameserver 192.168.2.15

1) Nel file /etc/hosts è possibile indicare sia gli indirizzi IPv4, sia quelli IPv6 (site-local), mantenendo gli stessi nomi di dominio. In pratica, quello che si vede nell'esempio funziona.


Appunti di informatica libera 2008 --- Copyright © 2000-2008 Daniele Giacomini -- <appunti2 (ad) gmail·com>


Dovrebbe essere possibile fare riferimento a questa pagina anche con il nome indirizzi_e_nomi.htm

[successivo] [precedente] [inizio] [fine] [indice generale] [indice ridotto] [indice analitico] [home]

Valid ISO-HTML!

CSS validator!

Gjlg Metamotore e Web Directory