/ Etc / hosts dovrebbe contenere una voce come '127.0.0.1 localhost myhost.example.org myhost'?


16

Quando guardo una varietà di sistemi Linux e FreeBSD, ho notato che su alcuni sistemi /etc/hostscontiene una voce per il nome host pubblico dell'host, ma non su altri sistemi.

Qual è la migliore pratica qui? Il mio file / etc / hosts dovrebbe contenere una voce per l'FQDN host (ad esempio myhost.example.org) e per il nome host breve (ad esempio myhost)? Il record per il nome FQDN dovrebbe puntare all'host locale o dovrebbe puntare all'IP esterno della scatola?

Ad esempio, la configurazione predefinita su molte scatole RHEL / EL non inserisce il nome host pubblico in /etc/hosts:

myhost # cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
myhost #

L'altra variante è che anche il nome host breve e l'FQDN dell'host puntano a 127.0.0.1. Mi è stato detto che questa è una pratica più antica che è disapprovata in questi giorni, ma molti amministratori lo fanno ancora.

myhost # cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4 myhost myhost.example.org
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
myhost #    

La terza variante è che al nome di dominio completo e al nome host breve dell'host viene assegnato l'indirizzo IP esterno dell'host. Questa terza variante mi sembra ottimale perché riduce le ricerche sui server DNS.

myhost # cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
74.125.239.xxx myhost myhost.example.org
myhost #  

Qual è la migliore pratica qui?


2
si riduce a quali alias stanno usando i programmi (ad esempio, come ad Mysql piace / deve avere un alias "localhost"), 127.0.0.1 localhost myhostdovrebbe essere sufficiente e 74.125.239.xxx myhost myhost.example.orgcome hai detto salva le ricerche DNS. "Best practice" a meno che non esista uno standard, è "ciò che usano le persone competenti".
LinuxDevOps

Risposte:


12

Desideri accettare il funzionamento del DNS come punto di errore nel tuo ambiente o no. Alcuni servizi / applicazioni falliranno in alcune configurazioni se un sistema non è in grado di risolvere il nome del computer locale.

Se si dispone di un servizio assolutamente critico che deve essere in esecuzione in tutte le situazioni, non è insolito aggiungere una voce nel file hosts in modo che il servizio possa continuare a funzionare nella situazione in cui la risoluzione DNS non riesce.

Se puoi accettare il tuo DNS come punto di errore o se i tuoi servizi non falliscono in caso di risoluzione errata, puoi evitare le voci di configurazione nel file hosts.

Ti consiglio vivamente di rendere i tuoi server DNS il più solido possibile e, se devi configurare il tuo file host, usa un sistema di gestione della configurazione per farlo. Dovresti davvero evitare di evitare di toccare manualmente un file hosts.


13
Solo per aggiungere a questo, nella maggior parte dei casi /etc/hostssostituirà il DNS, non verrà utilizzato come fallback in caso di errore del DNS. Questa è una distinzione che penso dovrebbe essere fatta. (Non tentare di eseguire il nit-pick.) Tutto dipende dall'ordine definito in /etc/nsswitch.conf.
Aaron Copley,

4
L'altro problema è che l'interrogazione dei server DNS è molto più lenta della consultazione del /etc/hostsfile. Molte applicazioni interrogano ripetutamente il loro nome host, più volte al secondo. L'aggiunta del nome host a /etc/hostsridurrà la latenza e dovrebbe accelerare l'applicazione.
Stefan Lasiewski,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.