web-dev-qa-db-ja.com

Linuxホスティング:ホストファイルでホスト名/ FQDNを設定する目的は何ですか?

Linode VPSホスティングプランを購入し、これに従って guide を設定しました。 「ホスト名の設定」セクションと「/ etc/hostsの更新」セクションに、ここで設定するFQDN /ホスト名を、ホストしようとしているWebサイトに関連付ける必要がないことが記載されているため、混乱します。

私はたくさんの記事を読んで独自の調査を行いましたが、私のWebホスティングビジネスでホスト名/ FQDNがどのような役割を果たしているかはまだよくわかりません。ここに私が見つけたいくつかの基本的な事実があります、何か問題があれば遠慮なく訂正してください:

  1. 「xxx」の場合、FQDNはxxx.somedomain.comのようなものでなければなりません。が省略されている場合、それはFQDNではありません。
  2. https://kb.iu.edu/d/aiuv によると、xxxは大まかにサブドメインと呼ぶことができると思いますが、「ホスト名」と呼ぶこともできます。 。
  3. 私のローカルマシンで、次の行をhostsファイルに追加する

    63.117.14.58 www.yahoo.com何でも

「www.yahoo.com」または「whatever」に対するすべてのネットワークリクエストは、IPアドレス63.117.14.58(google.comのIP)にリダイレクトされます。これは、ローカルマシンの不要なサイトをブロックする方法です。

チュートリアルでは、この行をサーバーの「hosts」ファイルに追加することを提案しています

12.34.56.78(//my server's IP) myhostname.anything.com myhostname

上記の行で、ドメイン名はホストしようとしているドメインである場合とそうでない場合がありますが、ホスト名は前の手順ですでに設定したものである必要があります。私の質問は次のとおりです。

1)ファクト#3に基づいて、この行はmyhostname.anything.comまたはmyhostnameに対するサーバー上のすべてのリクエストを私のIPアドレスにリダイレクトすると思いますが、これはどういう意味ですか?ユーザーのコンピューターからのmyhostname.anything.comの要求は、すでに特定のIPアドレス(私のIPアドレスであるかどうかに関係なく)に変換されるべきではありませんか?サーバーにリダイレクトする必要があるのはなぜですか?ユーザーがブラウザにドメイン名を入力すると、HTTPリクエストがどのように機能するかについての私の理解は、ブラウザがドメインサーバーに接続し、ドメインサーバーがドメインのDNSレコードに基づいてDNSサーバーにリダイレクトし、次にDNSサーバーはIPアドレスを解決し、ブラウザはそのIPアドレスからデータを取得します。私の理解するこの手順は、サーバー上の「hosts」ファイルとは何の関係もないようです。

2)A。FQDNに関して、ホスト名がサーバーに設定したホスト名と同じである必要があり、ドメイン名が同じでないのはなぜですか?

B.ここで別のホスト名を設定するとどうなりますか?

C.ここでドメイン名をFQDNとして設定する、または設定しない目的は何ですか?

D.そして、ホスト名ではなくFQDNのみを設定するとどうなりますか?このような

12.34.56.78(//my server's IP) myhostname.anything.com

たくさんの質問がありますが、それらのいくつかに対する答えは重複していると思います。全体として、大きな質問は「私のWebホスティングビジネスでホスト名の設定/ホストファイルの編集はどのような役割を果たすのか」だと思います。

よろしくお願いします。

4
shenkwen

この質問は、より単純な前提から始まり、そこから深いウサギの穴を下っていくため、人々がこの質問に答えるのは難しいでしょう。最初から始めましょう。

ホストファイルとDNS

説明はあまり必要ないと思いますので、簡潔にしておきます。 hostsファイルの目的は、DNSに依存しないホストからIPアドレスへのマッピングを定義することです。サーバーにとってこれらの中で最も重要なのは、デバイス自体の名前です。これは、DNSサーバーに問題があり、デバイスが名前で自分自身を参照できないようにするのは馬鹿げているためです。

Hostファイルのみを使用している限り、ドメインを使用する必要はまったくありません。 DNSは関与していないので、誰が気にしますか?残念ながら、ネットワークが拡大するにつれて、各デバイスがネットワーク上のすべてのデバイスの名前を個別に追跡することは持続可能性が低くなります。それは私たちにDNSの使用につながり、いくつかの新しいロジスティックのハードルをもたらします。

ホスト名とFQDN

ホスト名はデバイス名、または必要に応じてノード名です。これは、デバイスの所有者にとって意味のある一意の識別名であり、必ずしも意味があるとは限らず、デバイス上のサービスを利用する人々に公開されることもありません。これは、名前があなたがホストしているサービスとは何の関係も必要ないと言うときのLinodeの意味です。

たとえば、Contosoという名前の会社を経営していて、_example.com_というWebサイトを運営しているとします。このWebサイトは、_dalek01_から_dalek06_までの6台のマシンでホストされています。外の世界が知る必要があるのは、_www.example.com_をWebブラウザに接続すれば、必要なWebサイトを取得できるということだけです。過度に好奇心旺盛なタイムロードは、_www.example.com_に対する彼らの要求が_dalek03_によって処理されたという事実に気を配る必要はありません。

ホスト名自体は、必ずしもDNSと関係があるanythingを持っている必要はありません。これは単なるデバイスの名前であり、必ずしもドメインサフィックスが関連付けられているとは限りません。これまでのところ、それは簡単です!

今、私たちは物事を少しトリッキーにします。ストーリータイム!

  • あなたの会社であるContosoは、プライベートネットワークを介してdalekクラスターと通信する多くのデスクトップマシンを所有しています。
  • サーバーの1つに問題がある場合、問題のある特定のデバイスにログインする必要があります。 _www.example.com_は複数の異なるマシンでホストされているため、単に接続することはできません。問題のあるサーバーの一意の識別名があるのは良いことです。
  • デバイスのネットワークが大きいため、DNSで管理するのが最も一般的です。これは、ホスト名_dalek01_から_dalek06_をDNSドメインのどこかに固定する必要があることを意味します。幸い、私たちは_contoso.com_(当社にちなんで名付けられました)を所有しており、お客様の1人である可能性のある_www.example.com_とは完全に分離しています。
  • インターネットは内部IPアドレスを知る必要がないため、_corp.contoso.com_というプライベートDNSドメインを維持しています。すべてのデスクトップマシンは、_corp.contoso.com_のDNS検索サフィックスで構成されています。つまり、_dalek01.corp.contoso.com_というDNSエントリを作成すると、ネットワーク上の誰もが、SSHクライアントで_dalek01_に接続するだけでそのマシンに到達できます。便利!
  • _dalek01_は、それをhostsファイルに入れているので、_dalek01_と呼ばれています。 _dalek01.corp.contoso.com_とも呼ばれることを認識させたいのですが、DNSに依存して自分の名前を認識させたくはありません。それはばかげているでしょう。したがって、_dalek01.corp.contoso.com_のhostsファイルに_dalek01_のエイリアスを定義して、すべての名前がわかるようにします。
  • その間、人々は_www.example.com_を引き続き使用しますが、_dalek01_から_dalek06_という名前のサーバーが6つあるという事実、会社がContoso(顧客は別として)という名前であること、または従業員にとって便利なものにするために、_dalek01_から_dalek06.corp.contoso.com_までのDNSレコードを作成しました。

すべてを一緒に入れて

  • あなたのホスト名はあなたとサーバーを実行する人々にとって意味があり、必ずしもそのサービスを使用する人々にとっては意味がありません。
  • プライベートネットワークを共有する複数のデバイスを所有している場合を除き、ホスト名をDNSに保存する必要はありません(またはDNSドメインをまったく持っていません)。
  • サーバーがDNSに依存してそれ自体と通信するのはばかげています。
  • ホスト名をDNSに配置すると、ホストファイルでそのFQDNも定義する必要が生じます。これにより、DNSがFQDNを使用して自身と通信することに依存しなくなります。 (述べたように、それはばかげているでしょう)

うまくいけば、これはすべての拠点をカバーしています。

12
Andrew B