ホスト名-それらは何ですか?


54

私は最近、いくつかのシステム管理者の仕事を「強制」されていますが、これは私が読んだり、実験したり、学んだりするのが大好きなことではありません。

サーバー構成には、ホスト名を把握できなかった基本的な側面が1つあります。

たとえば、Ubuntuでは、次のようにホスト名を設定する必要があります(Linode Libraryに準拠)。

echo "plato" > /etc/hostname
hostname -F /etc/hostname

ファイル:/ etc / hosts

127.0.0.1        localhost.localdomain        localhost
12.34.56.78      plato.example.com            plato

これplatoは任意の名前でplato.example.comあり、FQDNであると想定しています。

私の質問は次のとおりです。

  • 必須ですか?
  • 何の目的に?
  • どこで必要/使用されますか?
  • すべてのマシンのホスト名として「localhost」を定義できないのはなぜですか?
  • plato.example.comFQDNのDNSエントリを設定する必要がありますか?
  • plato.example.comIPの逆DNSエントリとして使用する必要がありますか?

また、ホスト名を選択するための「ベストプラクティス」はありますか?ギリシャ文字、惑星名、さらには神話上の人物を使用している人々を見てきました。文字/惑星がなくなるとどうなりますか?

これが馬鹿げた質問であれば申し訳ありませんが、ネットワーク構成にあまり熱心になったことはありません。


3
クリスSはここから離れていると思います。質問-システムのホスト名とは何か、それはDNSとどのように関係するのか-は有効なものです。
ラースク

@クリスS:私はそれを得る、私を信じています。一度読んでみましたが、全体が非常に混乱しているように思いました。私はSAになるつもりはありません。基本をもう少しよく理解しようとしています。
アリックスアクセル

これはコミュニティwikiに行く必要があります
lynxman

1
@lynxman:気にしませんが、なぜですか?
アリックスアクセル

1
非常に興味深いからです:)
lynxman

回答:


28

最近では、システムに複数のインターフェイスがあり、それぞれに複数のアドレスがあり、各アドレスに複数のDNSエントリが関連付けられていることもあります。「システムホスト名」とはどういう意味ですか?

多くのアプリケーションは、他の場所で通信するときにシステムのホスト名をデフォルトの識別子として使用します。たとえば、中央サーバーでsyslogメッセージを収集している場合、メッセージにはすべて発信元システムのホスト名がタグ付けされます。理想的な世界では、おそらくこれを無視するでしょう(必ずしもクライアントを信頼する必要はないため)が、デフォルトの動作(すべてのシステムに「localhost」と名前を付けた場合)は、特定のシステムに関連付けることはできません。

他の人が指摘しているように、システムのホスト名は、多くのシステムにリモートでアクセスしていることに気付いた場合にも便利な識別子です。「localhost」という名前のシステムに5つのウィンドウが接続されている場合、それらをまっすぐに維持するのは困難です。

同様に、システムのホスト名がシステムへの管理アクセスに使用するホスト名と一致するようにします。これにより、システムを参照する際の混乱(電子メール、会話、ドキュメントなど)を回避できます。

DNSについて:

混乱を避けるために、アプリケーションに適切なフォワードおよびリバースDNSエントリが必要です。あなたは必要ないくつかの便利なアプリケーションにアクセスできるようにする人々のための- (> IPアドレス名)前方のエントリを。逆エントリの一致は、いくつかの理由で役立ちます。たとえば、ログで対応するIPアドレスが見つかった場合、アプリケーションを正しく識別するのに役立ちます。

ここでは、「システム」ではなく「アプリケーション」について説明していることに注意してください。これは、特にWebサーバーでは、システム上に複数のIPアドレスがあり、異なるホスト名とサービスに関連付けられているためです。

/etc/hostsファイルの名前からIPへのマッピングを維持しようとすると、管理するシステムの数が増えるにつれてすぐに難しくなります。ローカルホストファイルがDNSに関して同期しなくなることは非常に簡単であり、混乱や場合によっては誤動作につながる可能性があります(たとえば、システムに存在しないIPアドレスに何かがバインドしようとするため)。


返信いただきありがとうございます。DNSエントリだけに頼るのではなく、/ etc / hostsファイルを維持する必要がある(または維持する必要がある)かどうか、まだ混乱しています。
アリックスアクセル

8
私は通常/etc/hosts、DNSを支持して無視します。これにより、名前->アドレスマッピングに関する情報を維持するために必要な場所の数が減ります。私が管理するシステムの大部分には/etc/hosts、の単一のエントリのみが含まれていlocalhostます。
ラースク

ganetiやLinux-HA / Corosyncクラスターなどのクラスターを扱う場合、/ etc / hostsを使用してクラスターのメンバー間で通信します。DNSサービスがそれらのクラスター上にあり、ノードの変更中に移行またはオフラインになる可能性があるため、DNSのみに依存するのは良くありません。
コアダンプ

だから、「ユニーク」に関しては、「ユニーク」である必要がありますよりも、「ユニーク」であることを「試して」いますか?そこには非常に多くのサーバーがあり、それらはすべて同じスコープ内にあるため、実際に「一意」にすることは不可能です。この理解は正しいですか?
-shenkwen

10

すべてのホスト名を「localhost」に設定できますがalix@plato ~ $、ssh経由でマシンを管理するときにコマンドプロンプトに入力すると非常に便利です。そうしないと、サーバーをリモートで管理するのが非常に複雑になります。

正しいFQDNを持つことは、Webサーバーまたはメールサーバーをホストする場合に重要です。これらの種類のサーバーアプリケーションは、実行している "だれ"を知りたいです。

適切な命名スキームを選択するために、この非常に人気のある質問を参照します。

FQDNは、別のコンピューターにとって意味のある場合にのみ役立ちます。これには3つのレベルがあります。

  • ローカルネットワーク上の1台のコンピューターのホストファイルに、そのマシンを指すエントリがあります
  • ローカルネットワーク上でDNSサーバーが実行されており、DNSサーバーとして使用するすべてのローカルコンピューターが名前でプラトを認識できるようになりました。
  • ドメイン名を登録すると、plato.alixaxel.comという名前がどのマシンを指しているのかが全世界でわかります。

電子メールを送信したり、Webページを外部に提供する場合、3番目のページが必要です。他のほとんどの場合は、ローカルDNSを使用するか、hostsファイルを編集することさえできます。

その場合、ローカルネットワーク内で使用するドメイン名(plato.alixnetworkはFQDNでも構いません)を作成するだけです。「alixnetwork」部分(ドメイン名)を持つことの唯一の付加価値は、別のローカルネットワークと区別したい場合に便利です。


kennyに感謝します。私の主な疑問は、Web /メールサーバーが適切なFQDNを持つことがなぜ重要なのかと思います。また、「適切な」FQDNを構成するものは何ですか?ホスト名をドメインの先頭に追加し、パブリックIPアドレスを指定するだけですか?ホスト名を使用してA / AAAA DNSエントリを作成する必要があるという印象を受けていますか?
アリックスアクセル

何を達成したいかによります。メールを送信したり、プラトで世界中にWebページを提供したりしない場合、そのマシンのグローバルDNSレコードを作成する必要はありません。
ケニーラッシャールト

「ドメイン名を登録すると、plato.alixaxel.comの名前がどのマシンを指しているのかが全世界で認識されるようになりました。」-私はこれを理解していません。"alixaxel.com"のDNS解決をチェックすることで、plato.alixaxel.comという名前がどのマシンを指しているのか、全世界が知らないのですか?ランダムマシンでFQDNを設定することと何の関係がありますか?
-shenkwen

8

基本的な概要。ホスト名は単なるポインタです。特定の1つをマシンが参照するホスト名として割り当てることもできますが、複数のホスト名を持つこともできます。一部のサービス、注目すべきメールおよびHTTPは、ドメイン名に依存してサービスの場所とそれらへのアクセス方法を認識しています。

昔、これらすべての名前(これもIPアドレスへの単なるポインターです)は、というファイルに記録されていましたhosts。システムが成長すると、相互接続されたさまざまなネットワークに参加しているすべての関連コンピューター間でファイルの同期を保つことができなくなりました。そこで、DNSシステムが発明されました。名前のルックアップを行うとき、ホストファイルを最初にチェックし、次にDNSシステムをチェックします。Windowsは、WINSやNetBIOSなどの他のシステムもチェックする場合があります。

hostsファイルにエントリを配置するとき、そのエントリをコンピュータに割り当てているわけではありません。コンピューターが使用するホスト名としてのホスト名の割り当ては、構成ファイル(* nixシステム)およびWindowsシステムのシステムプロパティ(WindowsシステムはNIC固有のサフィックスを持つこともできます)で行われます。

hostsDNSシステムのようなファイル内のエントリは、ホスト名からIPアドレスへの単なるマッピングです。ホスト名 'localhost'を使用するには(特別なことは何もありません。他のすべてのホスト名と同じです)、ループバックインターフェイスにマップする必要があります(常にローカルコンピューターを指します)。これを確実に機能させるために、すべてのコンピューターにはhostsファイル内にこのデフォルトマッピングが含まれていますが、そのホスト名を使用したくない場合は削除される可能性があります。

さらに、他の人が指摘したように、ホスト名をコンピューターに割り当てることは非常に便利です。コンピューターに接続すると、ログイン時、プロンプト、またはその他の場所にホスト名を表示することができます。これにより、接続しているコンピューターを簡単に識別できます。そのホスト名をDNSにセットアップするか、すべてのhostsファイルに配置すると、IPアドレスを常に知る必要がなく、ホスト名を参照することでコンピューターに接続できます。(アドレスが変更される可能性があるため、コンピューターがDHCPを使用している場合はさらに便利です。コンピューターがDNSを更新すると、DNSレコードは新しいIPアドレスを指します。DNS名を知っているため、新しいIPアドレスを知らなくても接続できます)。

hostsDNSとDNS の両方には他にも多くの用途がありますが、これをすべて読んだ場合、答えよりも質問の方が多いと思います。


4
質問に対する最初の不満の気持ちにもかかわらず、良い答えを書くのに時間をかけるための+1。
ケニーラッシャールト

素晴らしい説明!私の理解が正しい場合、FQDNを配置する/etc/hosts必要はありませんが、DNSエントリにホスト名を含めると同じ結果になりますか?
アリックスアクセル

2
@Alix、正しい、エントリがDNSにある場合(そしてDNSが適切に動作している場合)、hostsファイルにそれを含めることは冗長です。また、hostsファイル内のエントリはDNSをオーバーライドします(テストに役立つ場合がありますが、忘れると迷惑になります)。これはすべてAおよびAAAAレコードに関するものであり、ホスト名には他のタイプのレコードもありますが、わかりやすくするために省略しています。
クリスS

クリス、ありがとうございます。これにより、すべてがより明確になります。
アリックスアクセル

5

ホストには意味のある名前を付ける必要があります。ホスト名は複数の目的に使用できます。

1-現在作業しているものを認識するのに役立ちます。

2- /etc/hosts多くのIPアドレスを記憶するよりも、および/またはDNSレコードで構成された名前を使用する方が簡単です。

3- Localhostは、現在のマシン(アドレス127.0.0.1)を参照するために予約された名前です。

4- DNSレコードは、サーバーを一般公開するのに役立ちます。

各サーバーに適した名前を選択すると、管理に役立ちます。また、クライアントがサーバーにアクセスするのに役立ちます。


2

副次的な注意事項として、このDNS解決を適切に進め、逆引きすることは、この地球上のすべてのITインストールの絶対的な基盤です。よく管理されたDNSと適切なホスト名解決の必要性を決して過小評価しないでください!


なぜそれが重要なのか理解できません。多くのWebサイトをホストするlinodeサーバーがあります。ホスト名を設定する目的がわからないので、そのままにしておくだけです。これは「ubuntu」です。このサーバーは数年稼働していますが、不便を感じることはありません。私はあなたの答えに疑問を投げかけているのではなく、ホスト名が重要である理由を理解しようとしています。私の場合、ホスト名を適切に設定したいのはいつですか?
-shenkwen

1
@shenkwen-正直にサーバーが1つしかない場合は、自分の好きな名前を付けることができ、それは明らかに重要ではありません。サーバーの数が1を超えるとすぐに、管理する新しい問題が発生します。適切な命名は重要なツールです。
mfinni

1

免責事項:主な質問はLinuxシステムに関するものですので、問題のWindows側に興味がない場合はこの回答を無視してかまいません。

とにかく、Windowsシステムでは、他の回答に記載されているすべての点を除き、ホスト名は実際にはネットワーク化と認証の目的でOS自体によって使用されます。具体的には:

  • ドメインメンバーであるかどうかにかかわらず、各システムは同じネットワーク(つまり同じIPサブネット)で一意の名前を持つ必要があります。そうしないと、名前の競合が発生し、さまざまなネットワークサービス(主にファイルと印刷の共有)がなくなります作業。
  • 同じActive Directoryドメインのメンバーであるすべてのシステムには、ネットワークの境界に関係なく、一意の名前が必要です。
  • ドメイン環境では、システムのホスト名はセキュリティプリンシパルとして機能し、リモート認証に使用できます(マシンのユーザーアカウントと考えてください)。アクセス許可とアクセス権を割り当てることができ、セキュリティのためにグループに配置できます。これは、ビルトインアカウントLocalSystemNetworkServiceユーザーアカウントを使用してシステムで実行されるすべてのプロセスに影響を与えます。これらのアカウントは、実行中のシステムの資格情報を使用して他のシステムに対して認証できます。これによりNetworkService、SystemAで実行されているプロセスは、SystemAのユーザーアカウントにフォルダーのアクセス許可を付与することにより、SystemB上の共有フォルダーにアクセスできます。

-1

多くのサイトおよび/または想定される「管理者」は、「ホスト名」属性にOSインスタンスのFQDNが含まれていることを示しています。

ホスト名
system1.domain1.org

ピングhostname
-解決できないsystem1.domain1.org.domain1.org


ステートメントの参照元を提供できますか?
デイブM
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.