DNSリークの定義
DNSリークとは、端末が名前解決(ドメイン名→IPアドレス)のために行うDNS問い合わせが、本来想定している経路やDNSサーバーを通らずに外部へ漏れてしまう(別のDNSサーバーが使われてしまう)状態のことです。ここでの「漏れ」は、DNS問い合わせ先や経路が意図と異なる形で観測できることを指します。なお、DNSリークを「絶対に起きない」と断言したり、「完全に追跡不能」といった保証をするのは難しいため、目的は原因の特定と、挙動の確認にあります。
簡単な仕組み(何が起きるのか)
普段、ブラウザでURLを開くときは、まずDNSで名前解決が行われます。DNS問い合わせは「どのDNSサーバーに問い合わせたか」によって挙動が変わります。
期待する状態では、(たとえばVPNを使う場合でも)DNS問い合わせが意図した経路に乗り、問い合わせ先が想定どおりになります。しかし、端末のDNS設定や通信の経路が不整合だと、DNS問い合わせが別の経路で処理されてしまい、結果としてDNS問い合わせ先が想定と異なって観測されます。これがDNSリークとして問題視される点です。
起きやすい場面と例(どんなときに問題になるか)
DNSリークは「DNS問い合わせを処理する経路が一貫していない」場面で起きやすくなります。よくあるパターンとして、次のような状況があります。
- 端末のDNS設定が、変更前の値のまま残っている
- ネットワーク(Wi‑Fi切替、回線変更、ルーター設定変更など)後に、端末側の設定が更新されていない
- VPNなどを開始した後に、実際に使われているDNS問い合わせ先が意図どおりになっていない
これらは特定の製品に限らず、一般に「期待する経路」と「実際に動いている経路」のズレが原因になります。
