さまざまなLinuxおよびFreeBSDシステムを調べたところ、一部のシステムでは/etc/hosts
にホストのパブリックホスト名のエントリが含まれているが、他のシステムでは含まれていないことに気付きました。
ここでのベストプラクティスは何ですか?/etc/hostsファイルに、ホストのFQDN(例:myhost.example.org)と短いホスト名(例:myhost)のエントリを含める必要がありますか? FQDNのレコードはlocalhostを指すのか、それともボックスの外部IPを指すのか?
たとえば、多くのRHEL/ELボックスのデフォルト設定では、パブリックホスト名が/etc/hosts
に入れられません。
myhost # cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
myhost #
他のバリアントは、ホストの短いホスト名とFQDNも127.0.0.1を指すことです。私はこれが最近は嫌われている古い慣習だと聞いたことがありますが、多くの管理者はまだこれをやっています。
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 #
3番目のバリアントは、ホストのFQDNと短いホスト名にホストの外部IPアドレスが与えられることです。この3番目のバリアントは、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 #
ここでのベストプラクティスは何ですか?
ご使用の環境で、機能しているDNSの障害点を受け入れることをいとわないですか。システムがローカルマシンの名前を解決できない場合、一部のサービス/アプリケーションは特定の構成で失敗します。
すべての状況で実行する必要がある絶対的に重要なサービスがある場合、hostsファイルにエントリを追加して、DNS解決が失敗した状況でもサービスが引き続き動作できるようにすることは珍しいことではありません。
DNSを障害点として受け入れることができる場合、または解決できない場合にサービスが失敗しない場合は、hostsファイルの構成エントリを回避できます。
DNSサーバーをできる限り堅牢なものにすることを強くお勧めします。hostsファイルを構成する必要がある場合は、構成管理システムを使用して構成してください。手動でホストファイルに触れないようにする必要があります。