web-dev-qa-db-ja.com

DNS解決がセカンダリDNSにフェイルオーバーする-なぜですか?

VPN経由で接続されている支店が多数ありますが、サーバーインフラストラクチャはありません。各オフィスのクライアントマシンは、VPN接続にも使用されるASA5505からネットワーク設定を取得します。

Windows XPクライアントマシンは、企業のDNSサーバーの1つをプライマリとして使用し、ISPのDNSサーバーをセカンダリとして使用するように構成されています。そのため、オフィスのスタッフは引き続きインターネットにアクセスし、Webメールとホームアクセスポータルにアクセスできます。ほとんどの場合、これは問題なく機能します。

ただし、南米に拠点を置くオフィスでは、クライアントマシンでのDNS解決がISP DNSサーバーに対して定期的に行われているため、オフィスのスタッフは企業リソースを事実上利用できなくなります。

クライアントマシンは、企業DNSサーバーに正常にpingを実行できます。企業のホスト名のnslookupを実行すると、応答があります。

次のいずれか(または組み合わせ)が発生していると思います。

  • 私たちの企業DNSサーバーは、常にタイムリーに要求に応答しているわけではありません(ただし、これが1つの地理的地域のクライアントにのみ影響する理由はわかりません)
  • ラテンアメリカからのDNSクエリは何らかの理由で遅延し、クライアントはそれを失敗したものとして扱います(ただし、この問題のない非常に遅いVSAT接続の終わりにオフィスがあります)
  • 単一障害により、WindowsでDNSキャッシュエントリが発生し、その後の試行でルックアップが発生しなくなります。

他の誰かがこの問題に遭遇しましたか?解決策について何かアイデアはありますか?

2
dunxd

Windows はDNSをこの順序で照会します

  • ホストファイル
  • ローカルDNSキャッシュ
  • 優先DNSサーバー
  • その他のDNSサーバー

MSには、DNSサーバーリストの取得方法 について説明している記事もあります

DNSクライアントサービスは、優先順に並べられたサーバー検索リストを使用します。このリストには、システム上のアクティブなネットワーク接続ごとに構成されたすべての優先DNSサーバーと代替DNSサーバーが含まれます。

リストは、次の基準に基づいて配置されています。

  • 優先DNSサーバーが最優先されます。
  • 使用可能な優先DNSサーバーがない場合は、代替DNSサーバーが使用されます。
  • 応答しないサーバーは、これらのリストから一時的に削除されます。

Windowsには、DNS要求の エスカレーションタイムアウトがあります

Value      Default value  Attempt
1st limit       1 second  Query the preferred DNS server on a preferred connection.
2nd limit      2 seconds  Query the preferred DNS server on all connections.
3rd limit      2 seconds  Query all DNS servers on all connections (1st attempt).
4th limit      4 seconds  Query all DNS servers on all connections (2nd attempt).
5th limit      8 seconds  Query all DNS servers on all connections (3rd attempt).
6th value                 (Must be 0.)

この正確な点について明確な答えを見つけることができませんでしたが、プライマリDNSから1秒または2秒(それぞれ1回目または2回目)に応答がない場合、そのサーバーはから削除されるようです。 15分間のDNSサーバールックアップリスト。したがって、セカンダリDNSサーバーを使用します。これらのサーバーには最大8秒のタイムアウトがあるため、応答する可能性がはるかに高くなります。 (すでに失敗している場合、3回目以降の試行中に優先DNSサーバーにクエリを続行するかどうかはわかりません)。

また、タイムアウトが機能している理由を説明するため、この地理的領域でWAN遅延の問題が発生しているのではないかと思います。


1つの解決策は、 DNSQueryTimeouts レジストリパラメータを使用して、DNSクエリのタイムアウトを変更することです。 http://drewthaler.blogspot.com/2005/09/changing-dns-query-timeout-in-windows.html も参照してください。


別の解決策は、ローカルキャッシングDNSサーバーをネットワークに配置し、クライアントにそれを使用させることです。ルーターに組み込まれているDNSサーバーを使用するか、 dnsmasq のようなものをインストールできます。

4
gregmac

Technetによると http://blogs.technet.com/b/stdqry/archive/2011/12/15/dns-clients-and-timeouts-part-2.aspx 後のクエリは並列の複数のDNSサーバー。

また、ほとんどの人は1つのネットワーク接続と高速ブロードバンド接続しか持っておらず、通常は1秒以内にDNS応答を期待する必要があります。

そこで、DNSQueryTimeoutsを1 1 1 10 10 0に設定して、すべてのDNSサーバーに可能な限り迅速に並列クエリを発行できるようにしました。次に、ISPのDNSサーバーを最初にリストに追加します(物理的に最も近く、ネットワークパケットのドロップの影響を受けにくいため、いくつかのパブリックDNSサーバーが背後にあり、Windowsに処理を任せます。

そして、私のWebブラウジングは非常に高速化されました!!!

明らかに、内部ホスト名を内部的に解決する場合は、企業環境でISPDNSサーバーに優先順位を付けないでください。

5
Sophist