Question Est-ce que / etc / hosts devrait contenir une entrée comme '127.0.0.1 localhost myhost.example.org myhost'?


En examinant divers systèmes Linux et FreeBSD, j'ai remarqué que sur certains systèmes /etc/hosts contient une entrée pour le nom d'hôte public de l'hôte, mais pas sur un autre système.

Quelle est la meilleure pratique ici? Mon fichier / etc / hosts doit-il contenir une entrée pour le nom de domaine complet de l'hôte (par exemple, myhost.example.org) et pour le nom d'hôte abrégé (par exemple, myhost)? L'enregistrement du nom de domaine complet doit-il pointer vers l'hôte local ou doit-il pointer vers l'adresse IP externe de la boîte?

Par exemple, la configuration par défaut de nombreuses boîtes RHEL / EL ne met pas le nom d’hôte public dans /etc/hosts:

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

L'autre variante est que le nom d'hôte abrégé et le nom de domaine complet de l'hôte désignent également 127.0.0.1. On m'a dit qu'il s'agit d'une pratique ancienne qui est mal vue de nos jours, mais de nombreux administrateurs le font encore.

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 troisième variante est que le nom de domaine complet et le nom d'hôte abrégé de l'hôte reçoivent l'adresse IP externe de l'hôte. Cette troisième variante me semble optimale car elle réduit les recherches sur les serveurs 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 #  

Quelle est la meilleure pratique ici?


16
2018-03-25 18:23


origine


cela se résume aux alias utilisés par les programmes (par exemple, Mysql aime / doit avoir un alias 'localhost'), 127.0.0.1 localhost myhost devrait être suffisant et 74.125.239.xxx myhost myhost.example.org comme vous l'avez dit enregistre les recherches DNS. "Meilleure pratique", sauf s'il existe une norme, c'est "ce que les personnes expérimentées utilisent". - LinuxDevOps


Réponses:


Êtes-vous disposé à accepter que le travail DNS soit un point d'échec dans votre environnement ou non. Certains services / applications échoueront dans certaines configurations si un système ne peut pas résoudre le nom de la machine locale.

Si vous disposez d'un service absolument critique devant être exécuté dans toutes les situations, il n'est pas rare d'ajouter une entrée dans le fichier hosts afin que le service puisse continuer à fonctionner dans les cas où la résolution DNS échoue.

Si vous pouvez accepter votre DNS comme point de défaillance ou si vos services n'échouent pas en cas de résolution défectueuse, vous pouvez éviter les entrées de configuration dans le fichier hosts.

Je vous suggère fortement de rendre vos serveurs DNS aussi solides que possible. Si vous devez configurer votre fichier hosts, utilisez un système de gestion de la configuration pour le faire. Vous devez absolument éviter manuellement de toucher un fichier hosts.


12
2018-03-25 19:36



Pour ajouter à cela, dans la plupart des cas /etc/hosts remplacera le DNS, ne sera pas utilisé comme solution de secours en cas de défaillance du DNS. C’est une distinction que je pense devrait être faite. (Ne pas essayer de faire le nit-pick.) Tout dépend de l'ordre défini dans /etc/nsswitch.conf. - Aaron Copley
L'autre problème est que l'interrogation des serveurs DNS est beaucoup plus lente que la consultation du /etc/hosts fichier. De nombreuses applications interrogent leur nom d'hôte à plusieurs reprises, plusieurs fois par seconde. Ajout du nom d'hôte à /etc/hosts réduira la latence et devrait accélérer l'application. - Stefan Lasiewski