DNS 要求を、そのドメイン名をホストしている Web サーバーへの要求に関連付けるにはどうすればよいでしょうか?

DNS 要求を、そのドメイン名をホストしている Web サーバーへの要求に関連付けるにはどうすればよいでしょうか?

ドメイン名 (「example.com」とします) を登録しましたが、誰がそのドメイン名を解決しようとしているのか、また、そのドメイン名の Web サーバーにどのようなリクエストを送信しているのかを確認したいと考えています。

この目的のために、ネーム サーバーを設定し、BIND のログを収集して、誰がネーム サーバーにクエリを実行して 'example.com' を解決しているかを調べます (再帰リゾルバーのキャッシュ データによってドメイン名を解決する場合は考慮しません)。Apache Web サーバーのログも収集します。ただし、問題は、どの DNS 要求がどの Web サーバー要求に対応しているかがわからないことです。

これら 2 つのログをマッピングするには、ランダムなサブドメインを作成し、各 DNS 要求に対して example.com の CNAME として返してから、Apache を設定してそれらのサブドメインすべてを 'example.com' メイン ページにリダイレクトすることを考えていました。そのため、その特定のサブドメインが誰かによって要求された場合、対応する DNS クエリが何であるかがわかります。

これは正しいやり方でしょうか? 他にやり方はあるのでしょうか?

ご意見やアイデアがあれば、ぜひお聞かせください。

答え1

IP アドレスで相関させることはできません。

これは、権威ネームサーバーがエンドクライアントから直接ではなく、再帰ネームサーバーによって照会されるためです。そのため、クライアントが使用する最後の再帰ネームサーバー (連鎖可能) の IP アドレスが取得されます。

EDNS サブネット クライアント オプションを使用しても、実際のクライアント IP ではなく、せいぜい IP ブロックが取得されます。

同様に、HTTP の面では、クライアントが Web サーバーに直接接続する必要はなく、プロキシを経由することもできます。

私はすでに、それに関連する他の質問に、いくつかのヒントとともに回答しました:リクエストごとに CNAME を更新できますか? 特に最後の段落と、Geoff Huston が行ったすべての研究を参照してください。

つまり、別の方法があります。全員に付与するだけwww.example.comですが、コンテンツに動的なもの (1x1 ピクセルの画像、または CSS または JS ファイルへのリンク) を挿入し、ホスト名部分に一意のトークンを追加します。これは、ワイルドカードを使用してネームサーバーに結び付けることができます。CNAME がなくても、アクセスを簡単に関連付けることができます。

  • あるクライアントがhttp://www.example.com/
  • 応答にウェブサーバーはを追加し<img src="https://eecahquai5thuu9ji0iepha.tracking.example.net">、それをログファイルに記録します(これにより、一意のトークンが現在のHTTP交換と結び付けられます)。
  • 権威ネームサーバーを構成してtracking.example.netワイルドカード レコードを作成します (ゾーン専用の別のゾーンを使用することをお勧めします。そうしないと、ワイルドカードが予期しない結果をもたらす可能性があります)。そうすると、ネームサーバーのログ ファイルにこの一意のトークンと関連する DNS データ (再帰リゾルバーの IP など) が記録されます。
  • (そして、適切なネットユーザーになるために) たとえ 1x1 ピクセルの透明な画像であっても、適切なリソースとコンテンツ タイプを使用してこのアドレスに応答する Web サーバーを実際に構成します。

関連情報