web-dev-qa-db-ja.com

ネットワークをセットアップするときにDNSサーバーを作成する必要がありますか?

数年前にクラスで少しネットワークを勉強しました。しかし、私は常にこれについていくつかの疑いを抱いており、それを明確にすることはありませんでした。 Windows ServerおよびUbuntu HTTPサーバー、Apacheを使用したDNSサーバー、およびさまざまな設定をセットアップします。この質問があまりにも開かれていないことを願っています。

私の質問は、どのような状況でネットワークにDNSサーバーを設定する必要があるのですか? Webサイトのホスティングサーバーを設定している場合、たとえば複数のパブリック仮想ホストを作成するにはDNSサーバーが必要ですか?

私の経験では、たとえばApacheを使用する場合、仮想ホストの設定は、少なくともローカル環境用にDNSサーバーを設定する必要はありません。質問には申し訳ありませんが、特定の状況に合わせてDNSサーバーを設定する理由について私はあまりにも混乱しています。ホストマシンを使用してクラスでDNSを設定し、次に仮想マシンでWindows Serverを設定しましたが、実際の使いやすさはまだ理解していませんでした。

ネットワークを設定するときにDNSサーバーを設定する必要がある状況を説明できる人はいますか?ホスティングWebサイト用に複数のドメインを作成していますか?

2
Lorthas

おそらく、DNSサーバーの役割が明確ではないため、多くのことを混合しています。

それで、私が戻って、物事をもう少し説明しようとしてみましょう。まず、以下のすべてがWebサイトとHTTP(S)プロトコルにも実際に適用されるが、確かに特定のものではなく、実際にはインターネット上のすべてのサービスに適用されることを理解してください。

コンピューターは数字で動作します。インターネットでは、到達可能にするために、IPアドレス(IPv4とIPv6の2つのフレーバーで存在します)を提供します。これらは基本的に大きな数字です。

しかし、これは人間にとって非常に実用的ではないため、任意の名前(URLのホスト名、電子メールアドレスの右端など)をこれらのIPアドレスにマッピングできるプロトコルとインフラストラクチャを定義しました、人間が数字ではなく名前だけを覚えられるようにします。

これは、非常に単純化されたDNSの役割です。また、サービスが機能するためには、基本的に2つのカテゴリに分類されるDNSサーバーが必要です。

  • 権限のあるネームサーバー
  • 再帰ネームサーバー

インターネット上で新しいドメイン名を有効にし、それに関連付けられたサービス(Webサイト、メールアドレスなど)がある場合、それを解決できるようにします。つまり、人々がその名前を適切な名前に変換できるようにします。このドメイン名の特定のサービスのIPアドレス。このドメインには、いくつかのauthoritativeネームサーバーと、親ゾーン(適切な構成では「1レベル上」)の適切な構成、つまりレジストリが必要です。ドメインがあるTLDのサイド。

通常、ドメインごとに2つの権限のあるネームサーバーがあります。これらは一度設定され、名前/ IPアドレスが変更されると更新されます。これらは、ドメイン名の所有者自身、またはドメイン名のレジストラまたは外部DNSプロバイダーであっても、それを行うために委任された第三者によって管理できます。

彼らは通常データセンターに住んでおり、確かにユーザーのネットワーク上にはありません。

そのため、Webサイトに到達する前に、権限のあるネームサーバーが使用するzonefileでホスト名が正しく構成されていることを確認する必要があります。つまり、ある種の正しいDNS設定がそこにあります。

次に、再帰的なネームサーバーが必要です。どうして?それらは名前とIPの間のマッピングを行うものだからです。彼らは、DNSプロトコルを使用して、あらゆる種類のドメイン名に対して適切な権限ネームサーバーを見つける方法を知っています。各コンピューターは、これらの再帰ネームサーバーのIPアドレス(明白な鶏肉と卵の問題)をOSのどこかに置くことにより、そのようなネームサーバーの1つ以上(復元力)で構成されます(OSによって異なります)。構成は静的にすることも、コンピューターの起動時に検出することもできます(そのような種類の構成アイテムを提供する役割を持つ他のサーバーに照会することにより)

ブラウザなどのアプリケーションが名前を解決する必要がある場合、通常はOSに代わって(またはDNSクエリ自体を)実行するように要求し、OSは構成済みの再帰ネームサーバーを使用して実行しますジョブを呼び出して、呼び出し元アプリケーションへの応答を取得します。

これらの再帰ネームサーバーはインストールできます:

  • 通常、すべてのローカルプロセスのみを使用するための、コンピューター自体
  • 同じネットワーク内のコンピューターで、たとえばISPのクライアントとして、ISPの再帰ネームサーバーを使用すると、ISPのすべてのクライアントで共有されます。これには利点と欠点の両方があります。利点として、キャッシュ(再帰ネームサーバーの各応答には「存続可能時間」が与えられ、サーバーはこの情報をしばらくキャッシュできるため、再度クエリする必要があります)クライアント間で共有されるため、より「リッチ」になりますが、欠点として、たとえばトラフィックを迂回したり、一部のページを検閲するために、ISPが受け取る応答を変更することがあります
  • 大規模またはそれほど大きくない組織によって管理されている誰でも、一般に利用可能なコンピューター上で(公共の再帰ネームサーバーを使用すると、DDOSにさらされ、DDOS Originとして使用されるため、この分野の専門知識がなければ実行されません) 、Googleが8.8.8.8で、またはCloudFlareで1.1.1.1で、またはQuad9で9.9.9.9でしたように。

誰でも使用する再帰ネームサーバーを選択できます。

他のアプリケーションと同様に、WebサーバーとしてのApacheも、少なくとも次の理由により、再帰ネームサーバーへのアクセスが必要になる場合があります。

  • iPアドレスの代わりにVirtualHostブロックに名前を配置すると、Apacheは起動時にそれらを解決する必要がある場合があります(したがって、名前をそこに配置することは推奨されません)
  • それらがどのように設定されているかに応じて、ロギング時に、WebサイトにアクセスするクライアントのIPアドレスだけでなく、その名前(マッピング名-> IPは、特定のDNS方法)、したがって、再帰的なネームサーバーが必要です<

したがって、Apacheは、同じコンピューター上の他のプロセスと同様に、必要に応じていくつかの「ローカル」再帰ネームサーバーにアクセスできます。たとえば、上記のように、同じボックス、同じネットワークの別のボックス、または上記。

しかし、それ以外に、Apache Webサーバーと同じネットワーク内ではなく通常どこかに、あなたのWebサイトに行きたい人がURLに含まれるホスト名を正しく解決するために正しく設定する必要がある2つの権限のあるネームサーバーがありますApacheが実行されているサーバー上のIPアドレス。

1
Patrick Mevzek