DNSリークの定義
DNSリークとは、本来は特定の経路(例:VPN経由)で名前解決してほしいDNS問い合わせが、意図しない経路や別のDNSサーバへ届いてしまう状態を指します。ここで重要なのは「漏れる」という表現でも、常に通信内容そのものが全て露出するとは限らず、少なくとも「どこへ問い合わせが飛んだか(解決に使われた経路・DNSサーバ)」が想定とずれている可能性がある点です。
簡単な仕組み(DNS問い合わせの流れ)
DNSは、URLのような名前をIPアドレスに変換する仕組みです。端末がアクセスしようとすると、まずDNS問い合わせが発生し、その回答を受けてから実際の通信へ進みます。DNSリークが問題になるのは、この最初の段階で問い合わせが意図どおりに制御されず、「VPNを使っているつもりでもDNSだけは別の経路で解決される」状況が起きうるためです。
よくあるイメージとしては、次の2点がずれることがきっかけになります。
- DNS問い合わせが到達するDNSサーバが、想定していたものと違う
- DNS問い合わせの送信元・経路が、想定したトンネルや出口と整合していない
DNSリークが起きる主な要因(制限を理解する)
DNSリークは「必ず起きる」ものではありませんが、条件がそろうと発生しやすくなります。代表的には、次のような要因が挙げられます。
1つ目は、端末側のDNS設定やネットワーク設定が、VPNの挙動と整合していないことです。たとえば、OSやルータ、アプリ側でDNSサーバが別途指定されていると、期待する経路へ問い合わせが送られない場合があります。
2つ目は、アプリごとの通信設計です。ブラウザや特定の通信機能が、通常の経路とは異なる方法で名前解決を行うことがあり、その結果としてDNS問い合わせの扱いが一部想定から外れることがあります。
3つ目は、経路制御のタイミングや状態の不整合です。
