web-dev-qa-db-ja.com

/ etc / hostsのループバックアドレスにホスト名を割り当てませんか?

そのため、ホスト名は(少なくともDebianシステムでは)/etc/hostnameに設定する必要があることを理解しています。 (hostname -fを介して)FQDNを取得するために、システムはホスト名から/etc/hostsを介してIPを検索し、行の最初のエントリを返します。

したがって、ホスト名がserver1で、これが/etc/hostsにある場合:

192.0.2.1    server1.example.com    server1

server1.example.comを返します。したがって、これは多くのWebサイトで説明されている方法です。しかし、私は考えていました:ループバックアドレスにホスト名を割り当てませんか? localhostと同じように:

127.0.0.1    server1.example.com    server1    localhost

このアプローチでは、外部IPアドレスを知っている必要はありません。また、FQDNを使用する可能性のあるアプリケーションは、ネットワークを経由するのではなく、システム上で直接要求を行います。

だから、なぜこのようにしないのですか?ほとんどの例がインターネット上で外部IPアドレスを使用しているのはなぜですか?

4
gitaarik

可能性がありますいくつかの理由で悪い考えです

  • iPを持っている(そして他のホストと通信している)場合は、外部で既知のIPの前にホスト名を置くことを強くお勧めします。

    • 一部のプロトコルは、「他の人にあなたのホスト名とそのIPアドレスを教えて」「大丈夫。他の人、私はfoo.localnetwork(127.0.0.1)」と言うことができます。他の男はこのパケットを、IPレベルでは外部IPで、プロトコルレベルでは127.0.0.1 IPで受信するため、そのプロトコルがアドバタイズされた情報の代わりにアドバタイズされた情報を使用する必要がある場合、交換が困難になる可能性があります。 IPレベルのもの(たとえば、SIPはこれに問題がある可能性があります...)

    • さらに、一部のサービスはホスト名に関連付けられたIPを保持するインターフェイスにのみバインドするため、それらのサービスはループバックデバイスを介してホストとのみ通信できます。

4
Olivier Dulac

これは、少なくとも新しいUbuntuリリースではデフォルトです。

これが私の/etc/hosts設定:

127.0.0.1   localhost.localdomain localhost
127.0.1.1   sprinkler.internal.lan sprinkler

まったく問題がなく、実際には、一部の操作で有効なDNSを必要としないという追加の効果があります。

私は個人的に、ローカルaptリポジトリや一部のビルダーなどのエントリをいくつか追加する傾向があります。

3
zeridon