Recientemente me han "obligado" a realizar algunos trabajos de administrador de sistemas, aunque esto no es algo que me encanta hacer, he estado leyendo, experimentando y aprendiendo mucho.
Hay un aspecto fundamental de la configuración del servidor que no he podido comprender: los nombres de host .
En Ubuntu, por ejemplo, uno debe configurar el nombre de host de esta manera (según la Biblioteca Linode ):
echo "plato" > /etc/hostname
hostname -F /etc/hostname
Archivo: / etc / hosts
127.0.0.1 localhost.localdomain localhost
12.34.56.78 plato.example.com plato
Supongo que plato
es un nombre arbitrario y ese plato.example.com
es el FQDN.
Ahora mis preguntas son:
- ¿Es obligatorio?
- ¿Con que propósito?
- ¿Dónde se necesita / usa?
- ¿Por qué no puedo definir "localhost" como el nombre de host para cada máquina?
- ¿Tengo que configurar una entrada DNS para el
plato.example.com
FQDN? - ¿Debería
plato.example.com
usarse como la entrada DNS inversa para mi IP?
Además, ¿hay alguna "mejor práctica" para elegir nombres de host? He visto personas que usan letras griegas, nombres de planetas e incluso figuras mitológicas ... ¿Qué sucede cuando nos quedamos sin letras / planetas?
Lo siento si esta es una pregunta tonta, pero nunca he estado demasiado entusiasmado con las configuraciones de red.
fuente
Respuestas:
En estos días, un sistema puede tener múltiples interfaces, cada una con múltiples direcciones, y cada dirección puede incluso tener múltiples entradas de DNS asociadas. Entonces, ¿qué significa un "nombre de host del sistema"?
Muchas aplicaciones usarán el nombre de host del sistema como identificador predeterminado cuando se comuniquen en otro lugar. Por ejemplo, si está recopilando mensajes de syslog en un servidor central, todos los mensajes se etiquetarán con el nombre de host del sistema de origen. En un mundo ideal, probablemente ignoraría esto (porque no necesariamente quiere confiar en el cliente), pero el comportamiento predeterminado, si nombra a todos sus sistemas como "localhost", daría lugar a un montón de mensajes de registro que usted no podría asociarse con un sistema específico.
Como han señalado otras personas, el nombre de host del sistema también es un identificador útil si te encuentras accediendo de forma remota a varios sistemas. Si tiene cinco ventanas conectadas a un sistema llamado "localhost", entonces tendrá dificultades para mantenerlas en orden.
De manera similar, tratamos de hacer que el nombre de host del sistema coincida con el nombre de host que utilizamos para el acceso administrativo a un sistema. Esto ayuda a evitar confusiones al referirse al sistema (en correo electrónico, conversaciones, documentación, etc.).
En cuanto a DNS:
Desea tener entradas DNS correctas hacia adelante y hacia atrás para sus aplicaciones a fin de evitar confusiones. Necesita alguna entrada directa (nombre -> dirección IP) para que las personas puedan acceder a su aplicación de manera conveniente. Tener la coincidencia de entrada inversa es útil por varias razones, por ejemplo, le ayuda a identificar correctamente la aplicación si encuentra la dirección IP correspondiente en un registro.
Tenga en cuenta que aquí estoy hablando de "aplicaciones" y no de "sistemas", porque, particularmente con servidores web, es común tener múltiples direcciones IP en un sistema, asociadas con diferentes nombres de host y servicios.
Intentar mantener las asignaciones de nombre a ip en su
/etc/hosts
archivo rápidamente se vuelve difícil a medida que administra un número creciente de sistemas. Es muy fácil que el archivo de hosts locales no esté sincronizado con respecto al DNS, lo que puede generar confusión y, en algunos casos, un mal funcionamiento (porque algo intenta vincularse a una dirección IP que ya no existe en el sistema, por ejemplo).fuente
/etc/hosts
a favor de DNS. Esto reduce la cantidad de lugares que necesito para mantener información sobre el mapeo de nombre -> dirección. En la mayoría de los sistemas que mantengo,/etc/hosts
contiene solo la entrada única paralocalhost
.Puede configurar cada nombre de host en "localhost", pero es muy útil tenerlo
alix@plato ~ $
en el símbolo del sistema cuando administra máquinas a través de ssh. Administrar servidores de forma remota podría ser muy confuso si no lo hace.Tener un FQDN correcto es importante para cuando aloja un servidor web o un servidor de correo. Este tipo de aplicaciones de servidor les gusta saber "en quién" se están ejecutando.
Para elegir un buen esquema de nombres, lo remito a esta pregunta muy popular .
Un FQDN se vuelve útil solo cuando es significativo para otra computadora. Hay tres niveles para esto:
Al enviar correos electrónicos o servir páginas web al mundo exterior, el tercero es el que desea tener. Para la mayoría de los otros casos, puede arreglárselas con un DNS local o incluso editar archivos de host.
En ese caso, puede inventar un nombre de dominio (plato.alixnetwork podría estar bien como un FQDN) para usar dentro de su red local. El único valor agregado de tener la parte "alixnetwork" (el nombre de dominio) es la comodidad cuando tiene otra red local de la que desea distinguirla.
fuente
Una descripción básica. El nombre de host son solo punteros; puede asignar uno específico para que sea el nombre de host al que hace referencia la máquina, pero podría tener varios. Algunos servicios, correo notable y HTTP dependen de nombres de dominio para saber dónde deben ubicarse los servicios y cómo llegar a ellos.
Hace mucho tiempo, todos estos nombres (que nuevamente son solo punteros a direcciones IP) se registraron en un archivo llamado
hosts
. A medida que el sistema creció, no pudieron mantener el archivo sincronizado en todas las computadoras relevantes que participaban en las diversas redes interconectadas. Entonces se inventó el sistema DNS. Cuando realiza una búsqueda de nombre, todavía verifica primero el archivo de hosts y luego el sistema DNS. Windows también puede verificar otros sistemas como WINS o NetBIOS.Cuando coloca una entrada en un
hosts
archivo, no la está asignando a la computadora. La asignación de un nombre de host como el que usa la computadora se realiza en los archivos de configuración (en los sistemas * nix) y en las Propiedades del sistema en los sistemas Windows (el sistema Windows también puede tener sufijos específicos de NIC).Las entradas en el
hosts
archivo, como el sistema DNS, son solo una asignación de un nombre de host a una dirección IP. Para usar el nombre de host 'localhost' (no tiene nada de especial, es un nombre de host como todos los demás) debe asignarse a la interfaz de bucle invertido (por lo que siempre apuntará a la computadora local). Para garantizar que esto funcione, todas las computadoras vienen con esta asignación predeterminada en suhosts
archivo, pero podría eliminarse si no desea utilizar ese nombre de host.Además, como otros han señalado, es muy útil asignar un nombre de host a una computadora. Cuando está conectado a la computadora, puede hacer que muestre su nombre de host cuando inicie sesión, o como su solicitud, o cualquier otro número de lugares. Esto facilita la identificación de la computadora a la que está conectado. Si configura ese nombre de host en DNS o lo coloca en todos los
hosts
archivos, podrá conectarse a la computadora haciendo referencia a su nombre de host en lugar de tener que conocer su dirección IP todo el tiempo. (Aún más útil si la computadora está usando DHCP, ya que la dirección podría cambiar. Si la computadora actualiza DNS, entonces el registro DNS apuntaría a la nueva dirección IP; aún podría conectarse sin conocer la nueva dirección IP porque conoce el nombre DNS )Hay muchos otros usos de ambos
hosts
y DNS, pero sospecho que tienes más preguntas que respuestas si lees todo esto.fuente
/etc/hosts
no es necesario colocar el FQDN en el , tener el nombre de host en una entrada DNS lograría el mismo resultado, ¿verdad?hosts
archivo sería redundante. Además, la entrada en elhosts
archivo anularía el DNS (útil para probar a veces, aunque molesto cuando se olvida). Tenga en cuenta que todo esto se refiere a los registros A y AAAA, hay otros tipos de registros para nombres de host, pero los dejé por claridad.Cada host debe recibir un nombre significativo. El nombre de host puede servir para múltiples propósitos:
1- Te ayuda a reconocer en qué estás trabajando actualmente.
2- Usar nombres configurados en
/etc/hosts
y / o registros DNS es más fácil que memorizar muchas direcciones IP.3- Localhost es un nombre reservado para referirse a la máquina actual (dirección 127.0.0.1).
4- Los registros DNS son útiles para hacer que sus servidores sean accesibles públicamente.
Elegir un nombre adecuado para cada servidor le ayuda mucho en su administración. Además, ayuda a sus clientes a acceder a sus servidores.
fuente
Solo como una nota al margen: trabajar adecuadamente hacia adelante y hacia atrás la resolución DNS es la piedra angular absoluta de cada instalación de TI en este planeta. ¡Nunca subestimes la necesidad de un DNS bien mantenido y una resolución de nombre de host adecuada!
fuente
Descargo de responsabilidad: la pregunta principal es sobre los sistemas Linux, así que no dude en ignorar esta respuesta si no está interesado en el lado de Windows del problema.
De todos modos, en los sistemas Windows, aparte de todos los puntos mencionados en otras respuestas, el nombre de host es realmente utilizado por el propio sistema operativo, para fines de redes y autenticación; específicamente:
LocalSystem
y deNetworkService
usuario, que pueden autenticarse en otros sistemas utilizando las credenciales del sistema en el que se ejecutan; esto permite que un proceso que se ejecuta comoNetworkService
en SystemA acceda a una carpeta compartida en SystemB al otorgar permisos en la carpeta a la cuenta de usuario de SystemA.fuente
Muchos sitios y / o supuestos 'administradores' ahora afirman que el atributo 'hostname' contiene el FQDN de la instancia del sistema operativo, lo que 'rompe' cualquier resolución que le agregue el 'nombre de dominio':
fuente