Pregunta ¿Debería / etc / hosts contener una entrada como '127.0.0.1 localhost myhost.example.org myhost'?


Al observar una variedad de sistemas Linux y FreeBSD, he notado que en algunos sistemas /etc/hosts contiene una entrada para el nombre de host público del host, pero no en otro sistema.

¿Cuál es la mejor práctica aquí? ¿Debería mi archivo / etc / hosts contener una entrada para el FQDN de los hosts (por ejemplo, myhost.example.org) y para el nombre de host corto (por ejemplo, myhost)? ¿Debería el registro para el FQDN apuntar al host local o debería apuntar a la IP externa de la caja?

Por ejemplo, la configuración predeterminada en muchos cuadros RHEL / EL no pone el nombre de host público en /etc/hosts:

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

La otra variante es que el nombre de host corto del host y el FQDN también apuntan a 127.0.0.1. Me han dicho que esta es una práctica antigua que está mal vista en estos días, pero muchos administradores todavía lo hacen.

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 tercera variante es que el FQDN y el nombre de host corto de los hosts reciben la dirección IP externa del host. Esta tercera variante me parece óptima porque reduce las búsquedas en los servidores 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 #  

¿Cuál es la mejor práctica aquí?


16
2018-03-25 18:23


origen


se reduce a qué alias están usando los programas (por ejemplo, a Mysql le gusta / necesita tener un alias 'localhost'), 127.0.0.1 localhost myhost debería ser suficiente y 74.125.239.xxx myhost myhost.example.org Como dijiste guarda las búsquedas de DNS. "Mejores prácticas", a menos que haya un estándar, es "lo que usan las personas con conocimientos". - LinuxDevOps


Respuestas:


¿Está dispuesto a aceptar que el DNS en funcionamiento sea un punto de falla en su entorno o no? Algunos servicios / aplicaciones fallarán en ciertas configuraciones si un sistema no puede resolver el nombre de la máquina local.

Si tiene un servicio absolutamente crítico que debe ejecutarse en todas las situaciones, no es inusual agregar una entrada en el archivo de hosts para que el servicio pueda continuar operando en la situación en la que falla la resolución de DNS.

Si puede aceptar su DNS como punto de falla, o si sus servicios no fallan en el caso de una resolución rota, se pueden evitar las entradas de configuración en el archivo de hosts.

Le sugiero que haga que sus servidores DNS sean lo más sólidos posible, y si debe configurar su archivo de hosts, use un sistema de administración de configuración para hacerlo. Realmente debes evitar manualmente evitar tocar un archivo hosts.


12
2018-03-25 19:36



Solo para agregar a esto, en la mayoría de los casos /etc/hosts reemplazará al DNS, no se utilizará como respaldo en caso de una falla del DNS. Esta es una distinción que creo que debería hacerse. (No se intenta seleccionar). Todo depende del orden definido en /etc/nsswitch.conf. - Aaron Copley
El otro problema es que consultar los servidores DNS es mucho más lento que consultar el /etc/hosts expediente. Muchas aplicaciones consultan su nombre de host una y otra vez, varias veces por segundo. Agregando el nombre de host a /etc/hosts reducirá la latencia y debería acelerar la aplicación. - Stefan Lasiewski