DNS クライアントと Nslookup - SRV レコードの DNS クライアントの手動テストの実行

DNS クライアントと Nslookup - SRV レコードの DNS クライアントの手動テストの実行

さまざまな参考文献(例えばDNSはホスト名を解決できませんが、nslookupは解決できますまたはhttps://web.archive.org/web/20160525082756/http://homepage.ntlworld.com/jonathan.deboynepollard/FGA/nslookup-flaws.htmlまたはhttps://web.archive.org/web/20121113214415/http://cbfive.com/blog/post/PING-vs-NSLookup.aspx) には、次のような内容または類似のことが書かれていますが、代わりに使用すべき用語の提案はありません。

ping がホスト名を解決できないのに nslookup が解決できる理由は、nslookup が Windows DNS クライアントをバイパスする低レベルのツールであるためです。nslookup は、指定された DNS サーバー (デフォルトでは最初のサーバー) を使用し、その場でクエリを実行します。

私の質問は、どうすれば手動でDNS クライアントをテストして SRV レコードをチェックしますか? 使用しようとしている DNS 情報を確認する方法はありますか? Wireshark をすべての環境のすべてのサーバーに配置することはできないので、別のトラブルシューティング方法を探しています。答えは「いいえ」だと思います。そうでなければ、なぜ nslookup (欠陥がある) を使用するのでしょうか。明らかに、SRV レコードに ping を使用することはできません。

更新された調査結果で編集: UDP クエリが長すぎるため、切り捨てフラグ付きの DNS 応答がクライアントに送信されるため、TCP クエリを実行する必要があります。TCP DNS クエリの後の次のパケットは (TargetDNS からクライアントへ): 「再構成された PDU の TCP セグメント」(応答情報が含まれているように見えます) であり、その後はシナリオによって異なります。

  • Nslookupクエリ - nslookupクエリでは、実際には情報を含むDNS応答パケットがあります。
  • ApplicationX (Windows DNS クライアントを使用していると思われます) - Windows DNS クライアント クエリ、DNS 応答パケットはありません (つまり、他の TCP パケットが失われたようです)
    • DNS キャッシュ (ipconfig /displaydns) またはクライアント DNS サーバー キャッシュには、SRV レコード (負の値さえも) が存在しません。

当然ながら、DNS クライアントと nslookup は異なる結果を取得しますが、具体的に何が違うのでしょうか (ホスト、lmhost の無視、DNS 検索サフィックスの追加など)? 同じ DNS サーバーを使用しています (Wireshark で証明されています)。どこに問題があるのか​​を絞り込むにはどうすればよいですか?

答え1

nslookupOS が通常のアプリケーションに代わって行う動作とは別に、それ自体が DNS クライアントとして機能するという理解は正しいです。

Resolve-DnsName一方、Powershell コマンドレットは、基盤となる Windows DNS クライアントを使用します。そのため、これは、アプリケーションとは別に、DNS ルックアップ (または名前にかかわらず他のソース) の通常の OS 動作をトリガーするために使用できるツールです。

たとえば、ルックアップの例として次のようになりますSRV

Resolve-DnsName -Type SRV _sip._tcp.example.com

補足:など
の動作(このカテゴリでは一般に が選択されるツール) は、ローカル環境が結果に影響を与えないため、DNS の動作を調査するのに役立ちますが、同時に、これらのツールはローカル OS 環境の動作を調査するには適していません。nslookupdig

関連情報