web-dev-qa-db-ja.com

ホストファイルエントリがあっても、名前解決がDNSにヒットするのはなぜですか?

Ubuntu 10.04.2 LTSデスクトップを実行しています。 Web開発者であるため、当然/etc/hostsファイルに「me.com」を作成しました。残念ながら、最初にローカルホストエントリをチェックする前に、名前解決がDNSに送信されるため、その理由がわかりません。

最終結果は、/ etc/resolv.confに最初にnameserver 127.0.0.1が含まれている場合、1秒以内にme.com(ローカル)からWebブラウザーに応答が返されます。ただし、そのエントリがない場合、ISPが少し遅いと、応答に5秒もかかることがあります。

問題は非常に面倒だったので、実際に ここに質問を提出して(そして誰かが解決した)/etc/resolv.confにそのエントリを自動的に挿入する方法について。しかし、ここのユーザー(@shellholic)の一人は、この質問を提出することを強く推奨しました(そして、それについて私とやり取りしました)。

/etc/hostsファイルエントリにヒットする前に、ワークステーションの名前解決がDNSサーバーに最初にヒットしなければならない理由を知っていますか?今のところ、私は resolv.confトリック を使用しています。

13
Volomike

ファイル/etc/nsswitch.confを使用すると、名前解決の順序を再構成できます。デフォルトでは、ホストファイルが最初で、次に設定済みのDNSです。さらにオプションがあります。

ファイル/etc/hostsは、IPアドレスとホスト名のみをリストします(必要に応じて、1つのIPに複数の名前を付けます)

ファイル/etc/resolv.confは、デフォルトの検索ドメインをリストし、使用するネームサーバーも順番にリストします。

13
jfmessier