I file /etc/hosts e /etc/resolv.conf

Spunti da: good-linux-tips.com.

Il file /etc/hosts ha il compito di eseguire la risoluzione dei nomi: contiene entry dns statiche. Il sistema legge questo file prima di avviare le query dns ai server dns esterni. E’ quindi usato primariamente per definire alcuni hostname di macchine interne (locali) attestate sulla rete LAN.
Può anche essere usato per definire una sorta di brutale black-list per bloccare l’accesso della macchina a siti indesiderati: è sufficiente associare l’URL del sito indesiderato all’IP 127.0.0.1 (localhost) oppure allo 0.0.0.0.
Quando il sistema deve risolvere un nome, prima guarda le entry contenute in /etc/hosts. Se non trova alcun match invia la query dns al primo dns server disponibile così come listato nel file /etc/resolv.conf.

Sintassi file /etc/hosts
La prima colonna a sinistra contiene gli indirizzi ip. La seconda l’hostname.domainname (fqdn). La terza è un breve alias, generalmente corrispondente al solo hostname.
Le colonne sono separate da spazi o <tab>.

Esempio di un file /etc/hosts:

root@UbuOnMac:~# cat /etc/hosts
127.0.0.1 localhost
127.0.1.1 UbuOnMac.enterprise.it UbuOnMac
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

Il file /etc/resolv.conf specifica i server dns esterni a cui il sistema si rivolge se non riesce a risolvere i nomi utilizzando /etc/hosts.
Un esempio di file /etc/resolv.conf è il seguente:

root@UbuOnMac:~# cat /etc/resolv.conf
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 8.8.4.4
nameserver 151.99.125.2

In Ubuntu versione desktop (quindi con interfaccia grafica) la gestione della rete è interamente demandata all’applicativo “Network Manager”, quindi il contenuto di /etc/resolv.conf sarà un semplice puntamento al localhost.
Il file /etc/hosts viene invece letto in modo prioritario anche dalla versione desktop.

In ubuntu versione server (senza interfaccia grafica) il contenuto del file /etc/resolv.conf può essere modificato direttamente da qualsiasi editor di testo e le modifiche diverranno operative. Al riavvio della macchine, però, le modifiche andranno perdute, a meno che non si proceda come indicato di seguito:

– modificare il file /etc/resolvconf/resolv.conf.d/head aggiungendo i server dns desiderati:

# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 123.123.123.123
nameserver 321.321.321.321

– Aggiornare il file resolv.conf mediante il comando:

root@UbuOnMac:~# resolv.conf -u

Se si legge il file /etc/resolv.conf si troveranno inserite le nuove entry, confermate ad ogni riavvio.

Un altro modo molto utilizzato per settare i server dns esterni in modo permanente è quello di inserire delle entry “dns-nameservers” nel file principale di configurazione delle interfacce di rete /etc/network/interfaces. Ecco un esempio di tali entry:

# The primary network interface
auto eth0
iface eth0 inet static
 address 192.168.201.136
 netmask 255.255.255.0
 gateway 192.168.201.20
 dns-nameservers 192.168.201.136 151.99.125.2

Il file hosts di Linux è del tutto simile a quello di Windows.
Linux e Windows hanno anche una cache locale che stora le precedenti risoluzioni mantenendole in memoria fino alla scadenza del TTL del record dns.
Alcuni comandi Windows:

ipconfig /displaydns
ipconfig /flushdns

Per cancellare la cache dns in Ubuntu:

# /etc/init.d/dns-clean restart

 

Lascia una risposta

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati *

È possibile utilizzare questi tag ed attributi XHTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>