Quelles sont les ramifications de la définition du nom d'hôte?

13

J'ai plusieurs serveurs Amazon EC2 et j'utilise Chef pour gérer la configuration. Je voudrais définir le nom d'hôte pour que l'invite bash par défaut soit plus utile.

Juste après le lancement d'un nouveau serveur, il est simplement défini comme:

root@ip-10-123-123-123

Puisque j'utilise Ubuntu 12 sur ces boîtes, j'ai consulté la page de manuel correspondante pour le nom d' hôte . Il a beaucoup de bonnes informations sur la façon de le configurer, et parle un peu du nom d'hôte et du fqdn, mais il ne me dit pas vraiment ce que je veux savoir:

Quelles sont les ramifications de la définition du nom d'hôte?

J'aimerais supposer que la définition du nom d'hôte est principalement un élément de commodité pour les utilisateurs et les administrateurs système, donnant à la boîte un nom / nom agréable afin qu'elle puisse être plus facilement reconnue en interne (via l'invite de commande, les e-mails envoyés, etc), mais je ne suis pas positif.

Je ne vois pas le nom d'hôte répertorié dans le /etc/hostsfichier, ce qui semble être un bon signe qu'il n'affectera rien négativement s'il est modifié:

127.0.0.1 localhost
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts

Suis-je sur la bonne voie? Quelles sont les ramifications de la définition du nom d'hôte?

Mise à jour

J'ai essayé de changer le nom d' hôte sur mon instance EC2 de ip-10-123-123-123la webserveret hostname --fqdnne fonctionne plus. Si je le remets, cela fonctionne bien. Apache me donne également une erreur au démarrage qui ne peut pas déterminer de manière fiable le fqdn. Je suppose qu'il doit y avoir un moyen de définir le nom d'hôte sans gâcher le fqdn.

cwd
la source
J'ai également trouvé Pouvons-nous définir des noms d'hôtes faciles à mémoriser pour les instances EC2? et publié une réponse basée sur ce que j'ai trouvé, mais il y a encore des trous.
cwd

Réponses:

15

Je voulais juste ajouter que le nom d'hôte devrait être résoluble, soit via DNS ou / etc / hosts. Si ce n'est pas le cas, de nombreux outils peuvent présenter de longs délais en raison d'une recherche de nom d'hôte défaillante. J'ai eu ce problème avec de nombreux programmes GUI.

daniel kullmann
la source
C'est un point très important. Je voterais plus d'une fois si je le pouvais. Je vous remercie!
cwd
Cela répond en fait à la question. Si vous changez votre nom d'hôte en quelque chose qui résout réellement, alors le hostname --fqdnfonctionne toujours.
bryant
12

Le nom d'hôte (défini et affiché par la hostnamecommande, et généralement stocké dans /etc/hostname) est utilisé par les applications locales. Il n'est pas connu des autres machines et ne peut pas être utilisé pour contacter l'hôte. Le nom d'hôte apparaît généralement dans les invites du shell, et diverses applications peuvent l'utiliser à des fins de journalisation, par exemple par le logiciel de contrôle de version lorsque vous effectuez une validation.

Il n'y a aucun lien technique entre le nom d'hôte et tout nom que d'autres machines peuvent utiliser pour désigner votre machine. Le DNS est ce qui est normalement utilisé pour nommer une machine dans un contexte Internet (ou plus précisément, une interface réseau). C'est une bonne idée si votre nom d'hôte est identique au premier composant du nom DNS de l'interface réseau de votre machine que la plupart du monde voit. Par exemple, si votre serveur est connecté au reste du monde via l' eth0interface Ethernet et que l'adresse IP de eth0a le nom foo.example.com, c'est une bonne idée de choisir foocomme nom d'hôte. Si vous le faites, foo.example.comest souvent appelé FQDN(nom de domaine complet) de votre machine. Mais vous êtes libre de les laisser dépareillés; un écart peut être déroutant pour l'administrateur, mais n'a pas d'importance pour le logiciel.

Le nom d'hôte peut être utilisé par certains protocoles réseau pour identifier l'hôte. Si tel est le cas, il doit être envoyé par un processus local exécuté sur l'hôte. Par exemple, dans certaines configurations, un client DHCP envoie le nom d'hôte au serveur DHCP pour obtenir une adresse IP; le serveur DHCP peut utiliser le nom d'hôte revendiqué pour décider quelle adresse IP attribuer au client. Dans de telles configurations, il est obligatoire que le nom d'hôte corresponde au nom DNS.

En relation: Pourquoi mon nom d'hôte est-il différent dans Emacs? ; Comment rendre une machine accessible à partir du LAN en utilisant son nom d'hôte

Gilles 'SO- arrête d'être méchant'
la source
1
Ce n'est pas vrai qu'il n'est pas connu par une autre machine. Ce nom d'hôte est envoyé par de nombreux systèmes d'exploitation au serveur DHCP lors de la demande de bail DHCP, et de nombreux serveurs DHCP / DNS l'utilisent pour mettre à jour la zone DNS locale. Le nom d'hôte est utilisé par mDNS, est utilisé par samba (dans la plupart des installations de samba par défaut), apparaît sur le serveur HTTP ...
Stéphane Chazelas
@sch Bon point à propos de la mention DHCP. Je ne comprends pas votre point sur httpd: c'est un processus local qui peut décider d'envoyer le nom d'hôte sur le réseau, mais le nom d'hôte n'est toujours pas connu des autres machines à moins que l'hôte ne l'ait envoyé.
Gilles 'SO- arrête d'être méchant'
Je pense que c'est une bonne réponse, mais après avoir joué un peu plus, je ne sais pas si c'est complet. Il semble que si je change mon nom d'hôte (ip-10-123-123-123) en autre chose, cela hostname --fqdnne fonctionne plus sur une instance ec2 et apache donne un avertissement au démarrage qu'il ne peut pas déterminer de manière fiable le fqdn. Je ne sais pas où chercher plus d'informations sur la façon dont toutes ces choses se lient. Merci de m'avoir aidé.
cwd
1
hostname --fqdn(DNS) semble être utilisé dans la journalisation. unix.stackexchange.com/questions/319737/…
sourcejedi