Lo scopo di assegnare dei nomi agli indirizzi IP è quello di rendere più facile la memorizzazione per le persone. In verità, un indirizzo IP identifica un'interfaccia di rete associata con un dispositivo come una scheda di rete. Poiché ogni macchina può avere più schede e più interfacce per ogni scheda, un singolo computer può avere più nomi nel sistema dei nomi di dominio.
Ogni macchina è tuttavia identificata da un nome principale (o "canonico") conservato nel file /etc/hostname
e comunicato al kernel Linux tramite gli script di inizializzazione attraverso il comando hostname
. Il valore corrente è disponibile in un filesystem virtuale e lo si può ottenere con il comando cat /proc/sys/kernel/hostname
.
Sorprendentemente, il nome del dominio non è gestito allo stesso modo, ma viene ricavato dal nome completo della macchina, acquisito tramite la risoluzione dei nomi. È possibile cambiarlo nel file /etc/hosts
; si scriva semplicemente un nome completo per la macchina all'inizio della lista di nomi associati all'indirizzo della macchina, come nell'esempio che segue:
8.3.1. Risoluzione dei nomi
Il meccanismo per la risoluzione dei nomi in Linux è modulare e può utilizzare svariate sorgenti di informazione dichiarate nel file /etc/nsswitch.conf
. L'elemento che coinvolge la risoluzione dei nomi host è hosts
. Per impostazione predefinita, contiene dns files
; che significa che il sistema consulta prima di tutto il file /etc/hosts
, quindi i server DNS. Server NIS/NIS+ o LDAP sono altre possibili sorgenti.
8.3.1.1. Configurare i server DNS
DNS (Domain Name Service) è un servizio distribuito e gerarchico che mappa i nomi agli indirizzi IP e vice-versa. In particolare converte un nome semplice da utilizzare come www.eyrolles.com
nell'indirizzo IP corrispondente, 213.244.11.247
.
Per accedere alle informazioni DNS, un server DNS dev'essere disponibile ad inoltrare le richieste. La Falcot ne ha uno proprio, ma un singolo utente utilizzerà probabilmente i server DNS forniti dal proprio provider dei servizi Internet.
I server DNS da utilizzare sono indicati in /etc/resolv.conf
, uno per riga, con la parola chiave nameserver
anteposta all'indirizzo IP, come nell'esempio seguente:
nameserver 212.27.32.176
nameserver 212.27.32.177
nameserver 8.8.8.8
Si noti che il file /etc/resolv.conf
può essere gestito automaticamente (e sovrascritto) quando la rete è gestita da NetworkManager, configurata tramite DHCP, quando resolvconf è installato o systemd-resolved(8) è abilitato.
8.3.1.2. Il file /etc/hosts
Se non esiste un DNS nella rete locale, è comunque possibile creare una piccola tabella per mappare gli indirizzi IP ed i nomi host delle macchine nel file /etc/hosts
. La sintassi di questo file, descritta in hosts(5) è molto semplice: ogni riga indica un indirizzo IP specifico seguito dall'elenco dei nomi associati (il primo è "completamente qualificato", cioè include il nome di dominio).
Questo file è disponibile anche quando la rete non è disponibile o quando i server DNS non sono raggiungibili, ma è realmente utile solo quando viene distribuito su tutte le macchine nella rete. La minima alterazione nelle corrispondenze richiede che il file sia aggiornato ovunque. Ecco perché /etc/hosts
contiene generalmente solo le voci più importanti.
Questo file è sufficiente per una piccola rete non connessa ad Internet, ma con 5 macchine o più è raccomandato di installare un server DNS.