web-dev-qa-db-ja.com

DNS解決はWebブラウザーで失敗しますが、nslookupは成功します

私たちは、BYODとActive Directoryが混在する環境(Windows Server 2012 Standard、Windows 7 Enterprise)を備えた小規模な300シートの組織であり、ドメインでの組織のドメイン名を解決するための非常に特定のスコープの失敗を含む非常に奇妙な問題が発生しています-参加し、会社が管理する機械。この説明では、ドメイン名の代わりにcompany.comを使用します。

背景:

  • Active Directoryドメインコントローラーは172.16.1.3にあります
  • AD/DCマシンはDHCP、DNS、およびHTTP(IIS)も実行しています
  • company.comおよびsubdomain.company.comにある弊社のWebサイトは、AD = DCマシンのIISによってホストされています。
  • AD/DCサーバーが内部DNS解決に使用されているが、別のオフサイトサーバーがパブリッククエリのDNS解決を提供するスプリットDNSシナリオがあります。
  • company.comおよびsubdomain.company.comに対応するIPアドレスは、ネットワークのエッジでファイアウォールによって使用されるパブリックIPアドレスです(両方ともAD/DCで) DNSサーバーとオフサイトDNSサーバー)
  • ファイアウォールは、NATに対して正しく構成されており、パブリックIPアドレスで受信したHTTPおよびHTTPSリクエストをAD/DCサーバーの内部IPに渡し、反映します。

シナリオ1:

  • ドメインに参加しているWindows 7 Enterpriseマシン上のユーザーは、ローカルアドレス172.16.6.100/16でローカルネットワークに直接接続され、DHCPサーバーによって発行されます。
  • DNSサーバーエントリはDHCPによって提供されます(172.16.1.3)
  • このユーザーは、company.comおよびsubdomain.company.comでホストされているWebサイトにアクセスできます
  • 編集:このシナリオではnslookupが実行され、内部DNSサーバーから適切なDNSレコードが正しく返されます(172.16.1.3)

シナリオ2:

  • 同じドメインに参加しているWindows 7 Enterpriseマシン上の同じユーザーが家に帰り、住宅用ISPを使用してインターネットに接続します
  • クライアントマシンのIPおよびDNSサーバーエントリはDHCPによって提供されます
  • このユーザーは、google.comなどのインターネットリソースにアクセスできます
  • このユーザーはcompany.comまたはsubdomain.company.comのWebサイトにアクセスできません(「ホストが解決されていません」エラーが返されます)
  • このユーザーがcompany.comでnslookupを実行すると、彼らは[〜#〜] do [〜#〜] DNSによって提供された正しいパブリックIPアドレスを受け取ります
  • IPアドレスへのHTTP/HTTPSリクエストは成功し、ウェブページはサーバーによって適切に返されます
  • この問題はすべてのWebブラウザーで発生します
  • tracert company.comを使用すると、「ターゲットシステム名を解決できません」が返される
  • ping company.comを使用すると、「ホストcompany.comが見つかりませんでした」が返されます
  • リクエストが失敗する前/間にクライアントでWiresharkを実行すると、クライアントマシンからパケットが送信されません(DNS解決または最初のHTTP/ping/tracertリクエストのいずれか)。
  • DNSクライアントサービスを再起動しても問題は解決しません
  • DNSクライアントサービスを停止しても問題は解決しません
  • ipconfig/flushdnsを使用してもこの問題は解決されません
  • route/fを使用してもこの問題は解決されません
  • netsh int ip resetを使用してネットワーク接続をリセットしても、この問題は解決しません
  • 編集: nslookupはこのシナリオで実行され、ユーザーが使用するネットワークのDHCP設定で指定されたDNSサーバーから適切なDNSレコードを正しく返します

シナリオ3:

  • 個人の(ドメインに参加していない)Windows 7 Professionalコンピューター上のこの同じユーザーは、company.comおよびsubdomain.company.comにあるWebサイトにアクセスできます。地元のネットワーク
  • 編集:このシナリオではnslookupが実行され、内部DNSサーバーから適切なDNSレコードが正しく返されます(172.16.1.3)

シナリオ4:

  • 個人の(ドメインに参加していない)Windows 7 Professionalコンピューター上の同じユーザーは、自宅に接続するとcompany.comおよびsubdomain.company.comのWebサイトにアクセスできます。通信網
  • 編集: nslookupはこのシナリオで実行され、ユーザーが使用するネットワークのDHCP設定で指定されたDNSサーバーから適切なDNSレコードを正しく返します

最終メモ:

この問題は、会社所有のすべてのコンピュータに影響するように一般化されているようです。 8月に読み込まれたばかりのすべての会社所有コンピューターに共通のシステムイメージを使用しています。私は可能な解決策を探してインターネットを精査しており、これまでのところ手ぶらで思いつきました。皆さんからの提案やアドバイスは本当にありがたいです。

9
Dan

ドメインに参加しているコンピューターは、DNSベースのルックアップを行うだけでなく、DCを探します。ドメインはパブリックWebサイトと同じであるため、SRVレコードを検索して、DCにアクセスしてドメイン情報を取得する方法を伝えます。リモートネットワークにはDCがないため、通常のAD対応のWindowsパーツを使用してこの名前を解決できません。

Pingまたは(ほぼ)すべてのWindowsアプリケーションを使用する場合、ADと通信する部分を含む完全なWindows IPスタックを使用します。一方、NSLookupは実際にはDNSクエリを実行するだけです。 Wiresharkトレースでこれを確認しました。company.comにアクセスしようとしたときにWindowsによってルックアップは実行されませんが、nslookupは適切なDNSルックアップを示しています。これが、pingまたはWebブラウザーを介してドメインを解決できない理由ですが、nslookupは問題ありません。

この最初の部分の解決策は、www.company.comを使用して内部および外部の両方でWebサイトにアクセスすることです。これにより、クライアントはDCの検索を完全に無視します。

2番目の部分のソリューションは、subdomain.company.comが内部と外部のどちらを参照しているかによって、より複雑になります。 DCにはサブドメインのDNSレコードがありますか、それともそれらのリクエストは外部DNSサーバーに送信されただけですか? DNSレコードがある場合、そのレコードはどこを指しますか?

1
RobbieCrash

マシン上のHOSTSファイル( http://en.wikipedia.org/wiki/Hosts_%28file%29#Location_in_the_file_system )に、試行しているホストのエントリが含まれていないことを確認しますに到達する。 NSLOOKUPツールはhostsファイルをバイパスしますが、Webブラウザーはバイパスしないと思います。

一部のタイプのプロキシもDNSを解決するため、Webブラウザでプロキシが設定されていないことも確認します。

IE( "iexplore -extoff")またはFirefox(開始時にShiftキーを押すか、 「firefox -safe-mode」)。

理想的には、可能であれば、別のWebブラウザーを試して、それがWebブラウザーなのかOSなのかを絞り込みます。

次に、まだどこにも到達していない場合は、どのサービスがネットワークアダプターにバインドされているかを確認します(特定のルールを持つクレイジーファイアウォールが邪魔をしていますか?)

最後に、これはますます可能性が低くなっていますが、NSLOOKUPはコンピューターまたは接続固有のドメイン名をクエリに自動的に追加します。たとえば、私のルーターはドメイン名を「ルーター」として設定しているため、「マシュー」のようなもののnslookupは実際にはDNSで「マシュー。ルーター」を検索します。キャプチャは、これがあなたの問題であるように聞こえません...しかし、あなたがパケットキャプチャでそれを逃したか、あなたのキャプチャ環境が完全に正しくなかった場合に備えて:-)。

これらは私が試してみるものであり、うまくいけばこれもあなたを助けるでしょう:-)。

0
Matthew1471