Windows のネットワーク設定で 2 つの DNS サーバーが構成されています。
Preferred DNS server:
私のDNSサーバーAlternate DNS server:
ISPが提供するパブリックDNS
プライベート DNS サーバーを使用して解決するイントラネット サイトを開いているときに、ブラウザーでパブリック インターネット Web サイトが開きます。代替 DNS サーバー (パブリック DNS) を削除すると、イントラネット サイトが開きます。
私の理解では、プライベート DNS が IP を解決したら、パブリック DNS で解決しようとしないはずです。コマンド プロンプトで確認すると、イントラネットにのみ解決されますが、ブラウザーでは同じではありません。
なぜこのようなことが起こるのでしょうか、またどうすれば修正できるのでしょうか?
答え1
1) それはそうではありません。
WindowsはないこのDNSサーバーリストを順番に使用してください。できない名前を解決できない場合は、単にリストをたどっていくと想定します。
TechNetにかなり長い説明があります。ここ私が個人的に経験した問題は、次の小さなスニペットによって発生しました。
DNS クライアント サービスは、どのサーバーが名前クエリに迅速に応答するかを追跡し、名前クエリへの応答速度に基づいてサーバーをリストの上位または下位に移動します。
DHCP 設定には 5 つの DNS サーバーがリストされていましたが、最後の 2 つはローカル ISP のサーバーでした。他の 3 つは非常に古いマシンだったので、バックアップとしてローカル ISP のサーバーを追加するのが最善だと考えました。どのサーバーが速かったと思いますか?
サーバーが内部名の解決を停止するのは楽しいことではありません。
これをきっかけに私はLinux に切り替えます。
2) では、なぜコマンドプロンプトで動作したのでしょうか?
を使用したと仮定するnslookup
と、いつも特に指定しない限り、DNS リストの最初のサーバーを使用します。プライベート DNS サーバーを常にチェックしていたため、常に機能していました。Internet Explorer を開いて実際に名前を解決しようとすると、動作が異なります (上記の長いフローチャートで指定されているように)。
すごく混乱しませんか? 名前解決の問題を 1 週間追いかけて、なぜいつもは機能しているnslookup
のに、なぜか Lotus Notes がメール サーバーを見つけられないのか疑問に思いました。Wireshark を使用して実際にどのように名前が解決されているかを確認するまで、原因はわかりませんでした。
3) どうすれば修正できますか?
フォワーダーを使用して DNS サーバーを構成することで、特定の問題を解決できます。プライベート DNS サーバーが名前を見つけられない場合、要求は指定したサーバーに転送されます。この方法では、DNS サーバーのみを使用し、他のサーバーは使用しないため、異常な動作が発生するのを防ぐことができます。
答え2
2 つの DNS サーバーを設定するのではなく、プライベート DNS のみを使用し、その DNS サーバーが知らない結果を外部 DNS で確認するようにします。その設定方法はプライベート DNS サーバーによって異なりますが、プライマリ DNS サーバーがビジー状態であると判断された場合に代替 DNS サーバーが使用される可能性があるため、より一貫した結果が得られるはずです。