¿Incluir nombre de dominio o no en / etc / hosts?


15

Estoy configurando un clúster VMWare de nodos CentOS. ¿Es una buena práctica incluir un nombre de dominio después de la máquina? ¿Cuáles son los posibles problemas de dejarlo afuera? ¿Un dominio complica la configuración o la simplifica?

Por ejemplo, si mi nodo está en 192.168.1.93, ¿debería cambiar /etc/hostsde

127.0.0.1 localhost.localdomain localhost

a

127.0.0.1 localhost.cluster localhost
192.168.1.93 computernode1.cluster computenode1

o

127.0.0.1 localhost
192.168.1.93 computenode1

o

#127.0.0.1 localhost
192.168.1.93 computenode1

o

192.168.1.93 localhost
192.168.1.93 computenode1

Respuestas:


24

Poner el nombre de dominio /etc/hostses opcional, y puede ejecutar un sistema sin ningún efecto negativo.

El único inconveniente de dejarlo fuera es que el nombre de host totalmente calificado del sistema no se mostrará correctamente. Por ejemplo, hostname -f.

La forma en que funciona la detección del nombre de host completo:

  1. Primero obtiene el nombre de host, o 'nombre corto'. Esta es la salida de uname -no hostname.
  2. Luego obtiene la dirección IP para ese nombre de host consultando /etc/hosts(o lo que sea que tenga /etc/resolv.conf, y recurriendo a las últimas fuentes si no se encuentra en /etc/hosts).
  3. Una vez que tiene la IP, realiza una búsqueda inversa consultando nuevamente /etc/hosts.
  4. Una vez que tiene un registro /etc/hosts, la primera entrada se usa como el nombre de host completo.

En pocas palabras, si desea que el nombre de host totalmente calificado funcione, debe hacer lo siguiente:

127.0.0.1 fully.qualified.hostname hostname localhost.localdomain localhost

o

127.0.0.1 localhost.localdomain localhost
1.2.3.4 fully.qualified.hostname hostname

1
No consideré ese punto. Tener un nombre de host totalmente calificado es inútil para una PC de escritorio, y puede ser problemático para una computadora portátil (porque es probable que una computadora portátil esté en diferentes redes), pero es útil para un servidor. Apache2, por ejemplo, se queja cuando no puede determinar su FQDN.
lgeorget

@lgeorget También puede usar el libnss-myhostnameque se encarga de resolver su FQDN pero no necesita una entrada en/etc/hsots
Ulrich Dangel

La configuración anterior puede causar problemas, consulte esta discusión sobre la práctica actual de Debian de configurar el hostsarchivo, y esta sobre el uso (o falta del mismo) de la localhost.localdomainentrada.
Joó Ádám

1
sudoTambién se queja si el nombre de host no se encuentra en /etc/hosts:sudo: unable to resolve host <hostname>
X-yuri

3

Mientras su host esté de acuerdo con su nombre de dominio, especificarlo o no /etc/hostsno cambiará nada. Otra práctica es tenerlo especificado como domainparámetro en /etc/resolv.conf. No especificarlo podría simplificar su vida si, algún día, su administrador de red lo cambia. Especificarlo no cambia nada, que yo sepa.

Definitivamente deberías irte 127.0.0.1 localhosto 127.0.0.1 localhost localhost.localdomainentrar /etc/hosts. Algunas aplicaciones podrían comenzar a tener un comportamiento realmente extraño que se localhostune a cualquier otra cosa que no sea su dirección de bucle invertido porque esta es una configuración realmente muy inesperada.


2

Debe especificar un nombre de dominio completo en la primera posición después de la dirección IP.

Como leemos en man 5 hosts:

Para cada host, debe estar presente una sola línea con la siguiente información:

IP_address canonical_hostname [alias ...]

Si no sigue la regla, algunos programas pueden fallar. Por ejemplo, el sistema de gestión de configuración de Puppet puede comenzar a cambiar su nombre de host de un lado a otro en cada ejecución solo porque no especificó la parte del dominio o porque colocó un alias sin dominio en la línea antes del FQDN.


0

No estoy seguro de que esto sea realmente "opcional" (como Patrick indicó anteriormente). Finalmente rastreé un problema con los permisos nfs volviendo a nadie: nadie. Parece que los permisos funcionan correctamente con los montajes nfs (usando idmapd), el nombre de dominio del servidor debe coincidir exactamente con el nombre de dominio del cliente. De algunos documentos que encontré, hostname -fmenos el nombre de host real debe ser idéntico entre el cliente y el servidor O debe especificar un nombre de dominio para el cliente /etc/idmapd.conf, lo que significa que cada cliente.

¿Existe una regla oficial sobre dónde especificar el nombre de dominio? El domainnamecomando no parece extraerlo de / etc / hosts ... por lo que ponerme en / etc / hosts me molesta, ya que significa que está almacenado en múltiples ubicaciones en el sistema de archivos ...

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.