web-dev-qa-db-ja.com

DNSサーバーはどのように機能しますか?

ドメイン名がDNSサーバーによってIPアドレスに解決され、それが要求されたサーバーに到達するために使用されることを私は知っています。これがどのように機能するかについての詳細のいくつかがわからないので、少し恥ずかしいです。

  • コンピューターがDNSサービスにドメインの解決を要求するには、コンピューターがDNSサーバーを認識している必要があります。 DNSサーバーについてコンピューターに明示的に伝えたことはありませんが、どのDNSサーバーを使用する必要があるかをどのように知るのでしょうか。この情報をどういうわけか私のコンピューターにプッシュするのはISPですか?

  • さらに言えば、これらのDNSサーバーはどこにありますか?私のISPには、すべての(ISPの)顧客が使用するDNSサーバーがどこかで実行されていますか?

  • 私のコンピュータが使用するDNSサーバーは、ドメインを解決できるようにするためにすべてのドメインを知っている必要がありますが、レコードはどのように更新/維持されますか?

  • 発生したDNSサーバーの変更をフィードする中央エンティティ/レジストリ/ ...はありますか?

  • どこかでドメイン名を注文した場合、販売者はIPアドレスと販売したドメイン名の間の接続を確立する必要があります。このリンクを知るために、すべてのDNSサーバーはどのように更新されますか?つまり、このドメインが現在指している場所を「インターネット」に通知するために、売り手はどのようなアクションを実行しますか?

これはたくさんの質問のように思えますが、それらは同じ話の異なる側面にすぎないと思います。 誰かがこれがどのように連携するか教えてもらえますか?

15
Asciiom

お使いのコンピューターには、詳細情報を照会できるDNSサーバーのリストがあります。 UNIXまたはLinuxシステムでは、これは/etc/resolv.confに保存されます。 Windowsでは、ネットワーク設定で構成できます。多くの場合、DNSサーバーは、デフォルトドメイン、プロキシサーバーなどの他の設定とともに、DHCPサーバーによって提供されます。

使用するDNSサーバーの場所はそれほど重要ではありません。コンピュータにIPアドレスと有効なデフォルトルートがある限り(つまり、DNSサーバーをpingできます)、DNSクエリを実行できるはずです。

DNSサーバーは「すべての」ドメインを知っている必要はありません。彼らは、「ルート」サーバーのセットから学習する「権限のある」人を知る必要があるだけです。各DNSサーバーには「ルート」サーバーのリストがあり、このリストはめったに変更されません。私のDNSサーバーの1つには、18のルートサーバーが構成されています。この構成は、2年前にDNSサーバーをインストールしたときに発生しました。それ以降、ルートサーバーのリストが変更された場合、十分な数のルートサーバーにアクセスできるため、アクセスできません。それに気づいた。

私のDNSサーバーは、知らないドメインを解決するように求められると、ルートサーバーにクエリを実行して、そのドメインに対して権限のある他のDNSサーバーを見つけます。取得する応答には、追加の「NS」レコードが含まれ、権限がないとマークされる場合があります。その場合、DNSサーバーは、「チェーンをたどって」新しいサーバーに対して新しいクエリを実行する必要があることを認識しています。最終的には、信頼できる情報を提供するDNSサーバーを見つけ、NSレコードだけではないクエリを実行できます。もちろん、A(アドレス)とMX(メール交換)が最も一般的な2つです。 。

COM、NET、ORG、CA、UKなどの各TLD(トップレベルドメイン)は、サブドメインの独自のレジストリを維持します。 (「サブドメイン」は別のドメイン内の任意のドメインであるため、「example.com」は「com」内のサブドメインであり、「com」は「。」、「ルート」内のサブドメインです。)各レジストリのルール管理するTLDにのみ適用されます。つまり、国ごとに完全に異なる基準のセットがあります。コードTLDであり、「一般的な」TLDは、さまざまなポリシーを持つさまざまな組織によって管理されます。ただし、それらはすべてTLD用のDNSサーバーを維持しています。これは、コマンドラインから、基本的なDNSクエリツールを使用して確認できます。

[ghoti@pc ~]$ Host -t ns ca.
ca name server c.ca-servers.ca.
ca name server e.ca-servers.ca.
ca name server z.ca-servers.ca.
ca name server a.ca-servers.ca.
ca name server f.ca-servers.ca.
ca name server sns-pb.isc.org.
ca name server j.ca-servers.ca.
ca name server k.ca-servers.ca.
ca name server tld.isc-sns.net.
ca name server l.ca-servers.ca.
[ghoti@pc ~]$ Host -t ns info
info name server c0.info.afilias-nst.info.
info name server d0.info.afilias-nst.org.
info name server b2.info.afilias-nst.org.
info name server b0.info.afilias-nst.org.
info name server a2.info.afilias-nst.info.
info name server a0.info.afilias-nst.info.
[ghoti@pc ~]$ 

registrar(多数あります)からドメインを購入すると、そのレジストラはドメインに関する情報をregistry(TLDごとに1つだけ)に送信します。 。 TLD内の登録済みドメインのリストを維持し、この情報を他のサーバーに提供するDNSサーバーを維持するのは、各レジストリの責任です。

15
ghoti