web-dev-qa-db-ja.com

ISPがDNSクエリをリダイレクトしているかどうかはどうすればわかりますか?

OpenDNSのようないくつかのDNSサービスを使用しようとしましたが、何をしてもDNSクエリが期待した結果を返しません。ファイアウォールでパケットトラフィックを監視すると、クエリが目的のDNSサーバーアドレスに送信され、応答が返されることがわかりますが、結果は期待どおりではありません。たとえば、要求が次のように見えても、OpenDNSテストページは常に失敗します。彼らのサーバーに行きます。

ISPがDNSクエリを傍受し、それらを独自のサーバーに送信しているのではないかと思います。これを確認する方法はありますか?私が見逃しているかもしれない何か他のものはありますか? Sprintの3Gワイヤレスサービスを使用しています。

1
Nack

それらを呼び出して尋ねますか?

OpenDNSフォーラムのスレッド (2010年2月付け)から:

今日はスプリントと話をしました。

これが私が電話で話した男が私に言ったことです。

「はい、スプリントはポート53でDNSをリダイレクトしています」(明らかに、opendnsではこれを知っています)「はい、静的アカウントの場合でも」

同じメッセージのリンクされた PDF from Sprint によると、OpenDNSの使用を許可するSprintデバイスのファームウェアアップグレードがある可能性があります。

1

ISPが透過的なDNSプロキシを使用しているかどうかを確認する方法はいくつかあります。それはあなたのISPがそれをどのように実装したかに依存します。私のISPは、すべてのポート53要求を独自の再帰DNSサーバーにリダイレクトします(ただし、NXDOMAINでアドバタイズメントを提供しません。おそらく、ロギングやDNSトンネリングの防止に使用します)。検出するためのいくつかの一般的な方法について説明します。

  1. 最も簡単な方法は、 Netalyzr Android appまたは Namebench Windowsソフトウェア(Google))を使用することです。ISPが使用しているかどうかが通知されます。 DNSプロキシ。これには技術的な知識は必要ありません。

namebench screenshot

  1. 信頼できるネームサーバーへのDNSルックアップを実行し、応答が信頼できるかどうかを確認します。この例では、Digを使用します。 nslookupも使用できます。返信が信頼できるものである場合、Digは返信にaaフラグを表示します。現在、a.ns.facebook.comはfb.meの信頼できるNSです。ISPがリクエストを傍受してリダイレクトした場合、信頼できる応答は得られません。

    Dig @a.ns.facebook.com fb.me(左側はDNSを傍受しません)

Dig authoritative NS

  1. Digまたはnslookupの実行中のDNSサーバーとして、DNSサーバーが実行されていないIPアドレスを指定します。 ISPがリクエストを傍受した場合でも、返信は届きます。それ以外の場合はTime Out。 (右の人はリクエストを傍受してリダイレクトします)

Dig with wrong server

  1. ランダムなIPアドレスでnmapを使用します。 ISPがすべてのポート53要求をリダイレクトする場合、ポート53は常に開いていることがわかります。

  2. コンピューターのネットワーク設定を変更し、GoogleパブリックDNSまたはOpenDNSまたはCloudflare DNS IPを使用します(一度に1つのプロバイダータイプを使用します)。次に、 Dns Leak Test Webサイトにアクセスし、別のプロバイダーが表示されているかどうかを確認します。

このISPインターセプトをバイパスすることは難しくありません。 DNScrypt /DNS over TLSを使用するか、非標準ポート(例:5353または443)で実行されるDNSサーバーを使用する必要があります。 2番目の方法では、ルーターまたはコンピューターファイアウォールを使用して、発信DNSクエリをこれらのポートにリダイレクトする必要があります。これらの方法を詳細に説明することは、この投稿の範囲外です。

2
Sourav Ghosh

OpenDNSやGoogleなどのさまざまなプロバイダーに送信されると思われるDNS要求のタイミングを試してください。それらが同一である場合、それらはISPによってピックアップされ、提供されている必要があります(誤ったロジックですが、可能です)。これを行う1つの方法は、 Namebench を使用することです。これは、接続に最適なDNSサーバーを選択するために一般的に使用されます。

0
tobylane