- ベストアンサー
DNSサーバーの設定で localhost とか 127.0.0.1はどういう意味がありますか?
DNSサーバーの設定でわからないことがあります。よく本で例を見ると、ゾーンファイルに正引きで localhost、逆引きで 127.0.0.1 とか作るようですけど、これはどういう意味がありますか? 無いとなにか不都合が発生するのですか? もちろん hosts には localhost 127.0.0.1 があります。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
以下の問題が同居しているように思います。 ●/etc/hostsがあるから、localhostの名前解決は出来る ●localhostの名前が解決できないことによる不具合があるかどうか >名前解決の規則によれば、DNSの参照の前に必ずhostsが参照されるはずであり、 規則とは何でしょうか。それは、どこに書いてあるのでしょうか。 私は、nsswitch.conf で設定するといいました。しかし「必ず」/etc/hostsがDNSの前に参照されることになっているのでしょうか。 >localhost も 127.0.0.1 も hosts で解決されるから、この2つの名前でDNSを参照しに行くことはあり得ないはずですが。 一般的に全部のシステムに対してDNSを立てることはないですし、そのDNSを参照するシステム(LinuxだけではなくてWindowsなど)がすべて/etc/hostsにlocalhostの項目がある保障があるのでしょうか。 私自身の意見としては ●DNSにlocalhostのレコードがなくても問題ないことが多いが、 問題があることもあるので、設定している ●実際にlocalhostが名前解決できないと、一部のアプリケーションで 問題が出る可能性がある です。 私自身はしたことがないので、そのlocalhost用のレコードを作製しないで、どういう症状が出るか教えてください。やってみてわかるということもありますから。
その他の回答 (4)
- anights
- ベストアンサー率72% (35/48)
Name Service Switchを必ず使わなければならないという決まりがあるんでしょうか? ダイレクトにDNS参照を実装しているものもあると思いますけど。 参考ですが、RFC1912の4.1 Boot file setup にlocalhostゾーンとかについての記載があります。在った方がいいと。mustではなくて、shouldですけどね。理由も書いてあるのでお読みになっては如何でしょうか?
お礼
お答えありがとうございました。 結局、たいした手間でもないので保険として設定することにしました。
>いまのところ、localhostも、0.0.127.in-addr.arpa もなくてもべつに問題は無いように見えます。 ネットワークアプリケーションの中には、自分自身を参照しているものもありますから、問題がないとはいえません。 netstat コマンドで確認してみてください。 mysqlやPostgreSQLなどは外から接続せずに内部的に使用する(WEBアプリ経由でアクセスするため)ことがありますから、確認してみてください。
お礼
すいません、お礼ではなく細くの続きです。 /etc/nsswitch.conf を確認しましたが、 hosts: files dns ということは、間違いなくhostsを先に見に行くということですよね
補足
問題が発生する理由はなにでしょうか? 名前解決の規則によれば、DNSの参照の前に必ずhostsが参照されるはずであり、localhost も 127.0.0.1 も hosts で解決されるから、この2つの名前でDNSを参照しに行くことはあり得ないはずですが。
>名前の解決は hosts → DNS の順だと思いますが 一般的にはそうですが、Linuxの場合実際には nsswitch.conf ファイルで定義されています。 >無いとなにか不都合が発生するのですか? >もちろん hosts には localhost 127.0.0.1 があります。 hostsファイルに必ずlocalhostの定義があるという保障があるわけでもないので、DNS側でも指定しておくと安心という意味もあると思います。
補足
お答えありがとうございます。 要するに、hostsに localhost 127.0.0.1 の設定があれば、DNSのこの設定は必要では無いが、何かの拍子にhostsが無くなった時の保険である、と考えてよいのでしょうか? この質問を書いた前日に、会社のドメインのDNSサーバーが落ちてしまって、再構築をさせられたのですが、いまのところ、localhostも、0.0.127.in-addr.arpa もなくてもべつに問題は無いように見えます。 でも、linuxサーバーの本をみるとたいていこの設定があるので、心配になって質問しています。
- junra
- ベストアンサー率19% (569/2863)
http://peercast-jp.sourceforge.jp/cgi-bin/note.cgi?LocalHost こちらを読まれると良いです 簡単に言うと使用しているパソコンで立ち上げてるサーバーへアクセスする場合へ用います。 ローカルホスト は 自分のパソコンと覚えておくといいでしょう。
補足
お答えありがとうございます。 質問が言葉足らずだったのですが、名前の解決は hosts → DNS の順だと思いますが、それならhostsに記述があれば DNS の設定はいらないのでは、というのが質問の趣旨でした。
補足
たびたびお答えくださり、ありがとうございます。 > ●/etc/hostsがあるから、localhostの名前解決は出来る > ●localhostの名前が解決できないことによる不具合があるかどうか 2番目のlocalhostが解決できないのでは、当然まずいケースがあると思います。 > 私自身はしたことがないので、そのlocalhost用のレコードを作製しないで、 > どういう症状が出るか教えてください。やってみてわかるということもありますから。 一例をあげますと、ドメイン内のサーバーにはpostgreSQLをそのサーバー内で動かし、webのCGIから使うとかしています。この場合接続先は、自分自身のIPでもいいし、127.0.0.1でもいいし、localhostでやるのか、/tmpでやるのかどれでもいいのですが、CGIはいろんな人間が書くので、localhostを使っているプログラマーもいるでしょう。この場合には接続でエラーになってしまうことが分かると思います。というわけで、やってみるまでもありません。 で、1番目の問題ですが、私の知っている範囲ではありますが、windows2000、windowsXP、手元にあるlinuxではセットアップした段階でhostsはありました。ただ、windowsまで含めるとユーザーにはいろんな人がいますから、確かに保証はできませんね。普通の人は localhost が解決できなくてまずいのなら、hosts を消したりしないとは思いますけど。 結局、これはへんなことをする人への保険ということですね。というわけで、たいした手間でもないので、localhostと127.0.0.1をzoneに追加しました。 関係ありませんが、ウイルスがhostsを書き換えてフィッシング詐欺にやられるというような事を考えると、いまだにhostsを使っているのは本来よいとはいえないのですね。