Praticamente tutti i programmi di rete hanno bisogno di interrogare qualche
name server.
Quasi tutti questi programmi usano uno stesso gruppo di routines, contenute in una
apposita libreria di sistema.
Il file /etc/resolv.conf riporta (campo nameserver) i name server che queste routines
interrogheranno, e (campo search) il dominio che sarà considerato di default.
Inoltre viene di solito anche considerato il file /etc/hosts con i nomi "locali"
ben noti all'amministratore della macchina.
Per esempio il comando ping pluto scatena la seguente sequenza di eventi:
se in /etc/hosts c'è un IP corrispondente a pluto si usa quello.
si legge da /etc/resolv.conf il campo search (diciamo dm.unipi.it) e il primo
nameserver
si chiede a questo nameserver l'IP di pluto.dm.unipi.it
se non si ha risposta si prova il secondo nameserver e cosi' via
se anche nessun nameserver risponde, il programma termina con il
messaggio di errore: "host unknown".
se invece si è giunti ad un IP, il comando ping inizia a
mandare i pacchetti...
Comunque le cose possono essere anche più complicate a seconda di come i
è configurata la macchina (vedi files come /etc/nsswitch.conf
per esempio) può essere interrogato anche un server esterno o un processo di cache locale
e può variare l'ordine in cui il resolver interroga files locali, name servers, cache e
server esterni.
Nota: se si voleva indicare "pluto" invece di "pluto.dm.unipi.it", si mette un
punto alla fine del nome, cioè "pluto."; si noti che questa sintassi
è usata sia nel data base del Name Server, che dai vari Clients che
sono illustrati nel seguito.
Laboratorio di Comunicazione mediante Calcolatore - Sergio Steffè - AA 2016/2017 - PISA