web-dev-qa-db-ja.com

優先および代替または複数のDNSサーバーはどのように機能しますか?

everythingが失敗した場合のバックアップとして、アダプターのDNSサーバーのリストの最後に8.8.8.8を追加することを検討していました。扱われます。

  • 次のDNSサーバーはどのような状況で使用されますか?
  • 名前が解決されない場合、次のサーバーがチェックされますか?
  • 名前が解決されない場合、複数のサーバーを照会するようにマシンを構成できますか?

また、イントラネット上にないDNSサーバーを追加すると、ローカル名を解決できない可能性があることも心配です。

  • 最初のDNSサーバーに障害が発生した場合、セカンダリDNSサーバーはどのくらいの期間使用されますか?
  • マシンがプライマリDNSサーバーが起動しているかどうかを確認するときに、現在のDNSクエリを停止させますか?
  • 複数のDNSサーバーはパフォーマンスにどのように影響しますか?アダプターのリストに4つのDNSサーバーがあり、そのうちの3つが停止している場合、3つのタイムアウトを待ってから回答を取得できますか?

この質問がOS固有のものかどうかはわかりません。異なるオペレーティングシステムはこれを異なる方法で処理しますか?

私の目標は、DHCPがスクリプトで提供するものの上にDNSサーバーに8.8.8.8を追加することです。私が制御できないDHCP構成のエラーが原因で、マシンに偽/到達不能/単にDNSサーバーがない状態に陥るという、愚かなDNSの問題が発生し続けています。私はそれにうんざりしていますが、このフェイルセーフを追加すると問題が解決するかどうか疑問に思います。

22
Tanner Faulkner

答えは確かに何もpreventing特定のオペレーティングシステムが異なる動作をしないという意味では、オペレーティングシステム固有です。オペレーティングシステムの実装がここで説明しているものとは異なる方法でDNSクエリを処理することを妨げる、複数のサーバーのDNSクライアントクエリについては、必要何もありません。

そうは言っても、LinuxがDNS名を検索する方法の例は、現在一般的に使用されているmostオペレーティングシステムがどのようにDNS名を検索するかを表すものでなければなりません。

ここ は、動作を詳細に説明する優れた投稿であり、要求されたもののようなものを設定する方法です。

一般的な考え方は、デフォルトでは、セカンダリ/ターシャリDNSサーバーは、プライマリDNSサーバーがタイムアウトするか、ルーティング不可能なIPアドレスをポイントする場合にのみ、順番に使用されるということです。プライマリDNSサーバーが「そのドメインは解決しない」と言ったとしても、次のネームサーバーに問い合わせることはしません。 anyクエリへの有効な応答を理由として扱いますnotリスト内の次のDNSサーバーに移動します。

ローカルアドレスが最初に解決されるが、ISPのDNSサーバーの代わりにGoogle DNSまたはOpenDNSを使用するように設定する1つの考えられる正気な方法は、ルーターまたはLANボックス(インターネットゲートウェイ)が_8.8.8.8_をプライマリネームサーバーとして使用します。もちろん、ゲートウェイボックスshould自体がネームサーバーを実行しており、プライベートサブネット上のローカルホスト名のDNSクエリに応答するように構成する必要があります-しかし、ローカルサブネットに対して解決できない場合は、すぐにGoogle DNSにパント。これは両方の長所のようなものです。

これを行う別の方法は、異なるネットワークインターフェイスに異なるネームサーバーを設定することです。 Windowsでは、デフォルトでこれを行うことができます。上記のリンクの記事では、forwardおよびforwardersディレクティブを使用してBIND9 DNSサーバーの実装を構成する方法について説明しています。

17
allquixotic