DNSリーク対策とは何か

VPNは通信をトンネルで包み、ネットワーク上の観測者から内容を見えにくくします。一方で、ドメイン名(例:www.example.com)をIPアドレスへ変換する「DNS問い合わせ」が、VPN外の経路に流れると、アクセス先の手がかりが漏れることがあります。これがDNSリークの考え方です。

DNSリーク対策は、少なくとも「DNS問い合わせがVPN経由になるように寄せる」「VPNが使えない状況での挙動を抑える」「一部アプリやOSの挙動によって抜けないようにする」ことを目的にします。ただし、環境や実装によって挙動が変わるため、常に100%同じ結果になるとは限りません。

仕組み:なぜDNSだけが先に外へ出るのか

DNSは通常、名前解決のための問い合わせとして発生します。VPN利用時でも、次のような要因で「DNSだけ別経路」になり得ます。

  • OSのDNS設定がVPN外を向いている:VPN接続前に設定されたDNSや、ネットワーク側が提供するDNSをそのまま使うと、VPN外へ問い合わせが出る可能性があります。
  • アプリごとのDNS処理:ブラウザや一部アプリが独自に名前解決を行う、または別の機構に委ねると、期待した経路とズレることがあります。
  • キャッシュの影響:一度解決した結果がキャッシュされると、しばらく問い合わせが見えず「漏れていないように見える」場合があります。逆に、キャッシュが消えたタイミングで漏れが観測されることもあります。
  • ネットワーク切替・ルート変更:VPN接続/切断、ネットワーク再接続、アダプタ切替の瞬間に、短時間の挙動差が出る可能性があります。

重要なのは、「VPNがある=通信は全部VPN経由」と単純に決まらないことです。DNSは“名前解決”という別カテゴリの処理になりやすく、ここがズレるとDNSリークとして表面化します。

対策の基本モデル(狙う状態と制限)

DNSリーク対策を考えるときは、次の状態をイメージすると整理しやすくなります。

  1. 名前解決の問い合わせが、VPNで確立した経路の中で処理される
  2. VPNが有効でない区間(接続直後・切断直後など)で、名前解決だけ外へ逃げない
  3. アプリやOSが別の経路でDNSを行わない(または挙動を統一できる)

ただし制限もあります。

  • 「どこまで」を保証するかが実装依存です。OS、VPNクライアント、ネットワーク環境、ブラウザの設定などで結果が変わります。
  • 暗号化方式やプロトコルの違いによって、観測される“見え方”が変わります。たとえば、DNS問い合わせが暗号化されても、問い合わせの宛先がVPN外であれば意図した防止になっていない可能性があります。
  • 完全な万能対策は困難です。特定の経路(あるアプリ、あるネットワーク、あるタイミング)だけ例外が残ることがあります。