DNSリークとは何か

DNSリークとは、ドメイン名(例:example.com)をIPアドレスに変換するためのDNS問い合わせが、意図した経路(通常はVPN経由など)から外れて送られてしまう状態のことです。名前解決は通信の入口になりやすいため、経路が外れると「どのサイトにアクセスしようとしているか」といった手がかりが、別のネットワーク経路側に見える可能性があります。

仕組みの簡単なモデル

DNS問い合わせの流れは、おおむね次のイメージで捉えられます。

  1. 利用端末がドメイン名を受け取り、IPアドレスを知る必要が生じる
  2. 端末はDNSサーバへ問い合わせを行い、回答(IPアドレス)を得る
  3. そのIPアドレスに対してWebなどの通信が行われる

このうち2) の問い合わせ先(どのDNSサーバに向かったか、どの通信経路で送られたか)が、リークかどうかの観点になります。設定上は保護しているつもりでも、実際には端末やアプリが別の手段でDNSを問い合わせていると、結果として別経路に届くことがあります。

DNSリークが起きる主な制限・原因

DNSリークは「どこかが完全に防いでくれるはず」という単純な話ではなく、実装や設定、環境の影響を受けます。よくあるのは次のようなケースです。

  • ネットワークやアプリがDNS問い合わせの送信経路を分けて扱う
  • 端末のDNS設定や、使用する仕組み(アプリ内DNS、OS側の解決など)が想定と一致しない
  • VPN接続の状態変化(接続開始直後など)で一時的に異なる挙動になる
  • ルールがすべての通信に一律に適用されず、対象外が残る

重要なのは、リークは“発生する/しない”が固定ではなく、アクセスするタイミング、使うアプリ、通信の経路、ネットワーク条件によって変わり得る点です。したがって、対策の成否は設定名だけでなく、確認で裏取りする必要があります。

実践的な確認方法

DNSリークの有無は、一般に「DNS問い合わせがどこへ行っているように見えるか」を手がかりに確かめます。ここでは、製品や特定手順に依存しない確認観点をまとめます。

  1. 端末のDNS問い合わせ先が、意図した経路・設定と一致しているかを確認する
  • 端末(またはOS)のDNS設定、利用中のネットワーク状態で参照されるDNSが、期待どおりかを見ます。
  1. 同じ端末で、保護のON/OFFや接続前後で挙動差が出るかを見る
  • 保護が有効な状態と無効な状態で、問い合わせの行き先が変わるかを比較します。
  1. ブラウザだけでなく、利用アプリの差も確認する
  • ブラウザ内で起きていると思っていても、アプリによって名前解決の方法が異なる場合があります。ブラウザ以外(メール、チャット、ストリーミング等)でも同様に見ます。
  1. テスト対象は複数用意して傾向を掴む
  • ドメインによって挙動が変わることがあります。