DNSリークとは何か

DNSリークとは、端末がウェブサイト名などをIPアドレスに変換するためのDNS問い合わせを、本来意図した経路(多くの場合VPNトンネル)ではなく、別の経路から外部に送ってしまう状態を指します。結果として、アクセス先そのものではなくても、どの名前解決が行われたかが第三者に推測される可能性が生じます。ここでの重要点は「漏れるのがDNS問い合わせであり、通信そのものが常に丸見えになるとは限らない」ことです。

VPNがDNSリークを防ぐ基本メカニズム

VPNの防御の中心は、DNS問い合わせの「送信先」と「経路」をVPNの管理下に置く考え方です。一般に、次の方向性が組み合わさって対策が成立します。

1つ目は、端末のDNS設定(またはOS/アプリが参照するDNSの設定)を、VPNが扱うDNSに向けることです。VPN側でDNS問い合わせを受け取り、VPNトンネル経由で処理することで、通常は端末が外部のDNSサーバに直接問い合わせる状況を減らせます。

2つ目は、VPN接続が確立していない時に、DNS問い合わせが外へ逃げないよう挙動を抑える考え方です。例えば「VPNが有効でない状態では、通信を制限する」設計(一般に通信遮断系の挙動と呼ばれることがあります)があると、接続前・切断中の名前解決の漏れリスクを下げられます。ただし、これは“必ず漏れない”ことを意味しません。端末やネットワーク条件、アプリの動作によっては例外が起こりえます。

3つ目は、DNS問い合わせの経路が別方式で迂回しないようにすることです。DNSには複数の運び方があり、端末が別の経路や別の手段で名前解決しようとすると、VPNで意図している経路とズレる場合があります。そのため、暗号化されたDNSの扱い(OS側の設定、対応状況、アプリ側の実装)によって結果が変わることがあります。

どこで漏れやすいか:制限と例外

DNSリークは「VPNの存在」だけで自動的にゼロになるとは限りません。漏れやすい典型要因は次のようなものです。

  • VPN接続前の短時間アクセス:VPN接続が確立する前に、OSやブラウザが先に名前解決を始めると、その問い合わせが意図外の経路になることがあります。
  • DNS設定の不一致:端末のDNSがVPNで想定するものではないまま残っていると、問い合わせが外へ向かう可能性があります。
  • 切断・再接続時の挙動:VPNの切断中にDNSが発行されると、経路が切り替わって漏れることがあります。
  • 暗号化DNSやアプリの独自実装:OSやアプリがDNSを別の方法で扱っている場合、VPN側の“期待する経路”と一致しないことがあります。

また、リーク判定は「DNSが外部へ出たか」だけで一律に決められないことがあります。