いくつかのパブリックネットワークでパブリックコンピュータを使用していて、nslookup
がどのように機能するかを確認したいと思っていました。私は試した set type=ns
一部のWebサイトで次のメッセージが表示されました:
DNS要求がタイムアウトしました。タイムアウトは2秒でした。
その後、set ti=30
およびその他のいくつかの低い数値ですが、同じメッセージを受け取りました。
自宅で同じことを試しても、そのようなタイムアウトはありません。
このメッセージはどのような理由で表示されますか?どうすれば修正できますか?
DNSリクエストがタイムアウトしましたは、NSLookupがクエリをDNSサーバーに送信したが、応答がなかったことを意味します。
照会したDNSサーバーに問題があり、応答できなかった可能性があります。ネットワークエラーも原因である可能性があります。
ただし、これを「公共のコンピューター」から行った場合、最も可能性が高いのは、DNSルックアップがネットワークのファイアウォールによってブロックされたことです。ネットワーク管理者が内部ネットワークのノードから発信されたDNSルックアップを承認されたDNSサーバーを使用して実行することを要求することは一般的です。これらは、管理者の制御下にあるDNSサーバー、または管理者が選択した特定のパブリックDNSサーバーのいずれかです。
クライアントが管理者の制御下でDNSサーバーを使用するように強制する(または、制限されたインターネットにナビゲートする機能に耐える)には、通常、さまざまな理由があります。
LANクライアントが正しい内部DNSサーバーを使用するようにするため。内部DNSドメイン(Active Directoryなど)が適切に機能するために必要な場合があります。
内部ドメイン名情報がパブリックDNSサーバー(暗号化されていない)に対するルックアップを介してインターネットに漏洩するのを防ぐため。
すべてのLANクライアントによって行われたDNS要求の便利なロギングを許可するため。
管理者が特定のクエリ結果を変更できるようにするため。たとえば、管理者がパブリックに解決可能なホスト名を内部プライベートIPアドレスにリダイレクトする場合(たとえば、 ヘアピンNAT を実装する代わりに)。
マルウェアによってC&Cサーバーに対して行われた検索など、特定の検索を検査してブロックする可能性があります。
最善の方法は、正しいDNSサーバーを使用することです。通常使用しているコンピューターがインターネットにアクセスできる場合、デフォルトで使用するように構成されているDNSサーバーが正しいものです。
または、マシンからVPN接続を作成できる場合は、それを使用して、ネットワークファイアウォールを通過してDNS要求をトンネリングできます。使用しているマシンのAcceptable-Useポリシーに反する場合は、明らかにこれを行いたくないでしょう。