¿Puedo tener puntos en un nombre de host?

23

Estoy usando nombres como a.alpha para el nombre de host de mi caja de Linux, pero parece que estos nombres no son completamente utilizables. La respuesta de un comando de shell hostname es correcta (a.alpha). Pero el nombre impreso después de mi cuenta de usuario es "usuario @ a" en lugar de "[email protected]". Cuando uso avahi, puedo llegar (por nombre de host) a.alpha, pero no b.alpha. ¿Eso es normal?

benzen
fuente

Respuestas:

23

Chopper tiene razón. Debido a cómo funciona DNS, el componente "alfa" de "a.alpha" se considera una "etiqueta" discreta en DNS. El uso de un nombre de host con un punto en él causará resultados inconsistentes de cualquier sistema que consuma DNS.

Avahi interactúa con los nombres de DNS, y específicamente la <host-name>directiva necesita tener el FQDN de DNS del servicio, por lo que también está sujeto a la inconsistencia de DNS con los nombres de puntos.

No uses nombre punteado.

sysadmin1138
fuente
Esto es correcto, pero necesita referencias para ser considerado una respuesta confiable. Alguien que dice 'Debido a cómo funciona DNS' en Stack Overflow no prueba nada.
mikemaccana
¿Es una regla rígida que el nombre de host no puede contener '.' ?
Dinesh Kumar P
1
@DineshKumarP Sí. Las RFC de DNS describen el carácter de punto como el delimitador entre las etiquetas de DNS. Si bien los servicios que no son DNS como Avahi o SLP pueden permitirlo, el DNS en sí mismo no lo permite.
sysadmin1138
Esto no está del todo bien. DNS se complace perfectamente en permitir puntos en las etiquetas, aunque sugiere conformidad con una sintaxis restringida (la "regla LDH"; ver tools.ietf.org/html/rfc1035#section-2.3.1 ). Las aplicaciones de DNS, como el almacenamiento de nombres de host en DNS, es donde entran en juego las restricciones sobre la sintaxis de la etiqueta DNS.
Tony Garnock-Jones
17

Estás pidiendo problemas con ese esquema de nombres debido a DNS, considera a-alpha en su lugar.

Chopper3
fuente
Haré la misma pregunta en askubuntu, y nadie puede responderme más abajo. Así que
usaré
1

Como han mencionado otras personas, definitivamente desea evitar los puntos en sus nombres de host debido a DNS, y también descubrí que esto puede ser un problema si está utilizando certificados comodín para realizar SSL, ya que los certificados comodín solo serán comodines para un nivel de un subdominio Entonces, si su certificado comodín es para * .mycompany.com, pero tiene un nombre de host que es a.alpha, el certificado comodín podría no funcionar si trata "alfa" como un subdominio.

Mitchell Tracy
fuente
1

El nombre de host completo de un host ES típicamente el FQDN equipado con dominio (nombre de dominio completo), y en Linux debería terminar siendo la salida de host --fqdn, con la parte anterior al primer punto considerado como el apodo del host. Sin embargo, diferentes sistemas (Linux, SunOS, lo que sea) han implementado el concepto de "hostnick" de varias maneras. Como:

  • / etc / hostname contiene solo el hostnick, y el resto está en / etc / domainname
  • / etc / hostname contiene el FQDN completo, y el dominio también está en / etc / domainname
  • El nombre de dominio solo existe en la configuración YP / NIS
  • El nombre de dominio solo existe en ciertos subsistemas en lugar de ser un sistema global
  • (otros, enfoques generalmente más extraños)

Además, la idea de un hostnick es una pequeña variable:

  • La parte del FQDN antes del primer punto
  • Parte del lado izquierdo del FQDN, expresada exclusivamente sin un punto final
  • La parte del FQDN antes del nombre de dominio real (como se establece en alguna parte)

Y, para complicar aún más las cosas, el hostcomando de bind9-host viola los estándares de DNS al tener una -N <int>opción para controlar si se usan o no dominios de búsqueda. Esto rompe las búsquedas de DNS de varias maneras según el escenario. Se supone que DNS debe buscar cualquier nombre con un punto final como literalmente qué buscar, y para otros nombres, buscarlos con dominios agregados desde que /etc/resolv.confse encuentra una coincidencia o todos fallan (esos dominios tienen implícitamente un punto final) [Esto es de memoria, comente si el proceso general se modificó en un RFC que perdí]

Como tal, si usa puntos en su hostnick, el hostcomando probablemente fallará, rompiendo los scripts que lo usan para búsquedas. Personalmente, considero que hostes insondable que está roto, y parece que incluso hoy en día está rompiendo una búsqueda en un sistema en mi red doméstica, ya que tengo IPv4 y -v6 en casa, y tengo nombres como .v4. como formas cortas adicionales, específicas de la versión, que hostno se pueden buscar aunque las pingencuentre bien.

Era extremadamente raro intentar poner puntos en los hostnicks de todos modos, así que incluso sin hostel daño cerebral, hubiera recomendado apegarse a los hostnicks sin puntos, incluso desde una simple perspectiva semántica.

Alex North-Keys
fuente
0

La respuesta correcta definitivamente "no hagas eso", como se indicó anteriormente.

Para algunas lecturas posiblemente útiles y definitivamente tangenciales, continúe:

¿Estás hablando de la resolución dns o de la línea de comandos? Si desea arreglar su línea de comando, solo juegue con $ PS1 (o un equivalente similar a no bash / sh donde corresponda).

Si realmente desea que a.alpha sea un nombre de host que se resuelva en una dirección IP en las interwebs, puede hacerlo, pero eso podría implicar un subdominio para cada sufijo de nombre de host (EG alpha, beta, etc.).

Incluso es posible que pueda configurar su servidor DNS para que funcione sin crear subdominios. Puede servir la dirección IP de los servidores de nombres de un subdominio en los archivos de zona del dominio principal, por lo que podría "funcionar". Esto se debe a que cuando alguien le pregunta a su servidor DNS la dirección IP de a.alpha.examaple.com, le pregunta al servidor DNS por ejemplo.com, y si ese servidor DNS ya tiene la dirección, responderá con la respuesta , en lugar de intentar entregarlo al servidor autorizado del subdominio. Es posible que se trabaje en torno al SOA que falta ... así que quizás agregue un registro A para cada prefijo de host y un SOA para cada sufijo de host. Sí, ese es el boleto ...

Todo en Internet seguirá pensando que su nombre de host es 'a' y su dominio es alpha.example.com.

Dylan Martin
fuente