VPNを利用する目的は、多くの場合「通信内容の保護」「匿名性の確保」「ネットワーク制限の回避」にあります。
しかし、VPN接続が成立していても DNSの扱いを誤ると、その目的は部分的にしか達成されません。
DNSは通信の前段に位置するため、VPN利用時の挙動を正しく理解していないと「IPアドレスは隠れているが、アクセス先は把握されている」という不完全な状態に陥ります。
以下では、VPNとDNSの関係を正確に整理します。
DNS(Domain Name System)は、人間が理解しやすいドメイン名を、通信可能なIPアドレスへ変換する仕組みです。
通信は常に以下の順で進みます。
つまり、DNSは通信の入口情報であり、どこにアクセスしようとしているかを示す重要なメタデータでもあります。
VPN接続が正しく機能している場合、通信は以下のように処理されます。
この状態では、ISP(プロバイダ)やローカルネットワーク管理者からは アクセス先のドメイン情報を直接観測できません。
DNSリークとは、VPN接続中であるにもかかわらず、DNS問い合わせがVPNトンネル外へ送信されてしまう状態を指します。
ここで重要なのは以下の点です。
たとえDNS over HTTPS(DoH)などで暗号化されていても、VPNで保護されるべき通信経路から逸脱していれば、「VPN利用の前提が崩れている」という意味でDNSリークと扱われます。
DNSリークが発生すると、次のような問題が生じます。
特に注意すべき点は、通信内容が暗号化されていても「どこへ行こうとしたか」は分かるという点です。
一般的には 最も安全性と一貫性が高い選択 です。
VPN利用時には 意図しない限り避けるべき です。
重要なのは、そのDNSがVPNトンネル内から利用されているかどうかです。
パブリックDNSであっても、VPNトンネル内で到達していれば問題ありません。
逆にVPN外で到達していればDNSリークになります。
IPv6はDNSリークの原因として非常に重要です。
この組み合わせでは、
という分断が起きることがあります。
結果として、IPv6側のDNS問い合わせだけがVPN外へ出る ケースが発生します。
対策としては、
といった方法があります。
近年のブラウザやOSは、DoH / DoTを標準的にサポートしています。
これ自体はセキュリティ向上に有効ですが、VPN環境では注意が必要です。
つまり、DoHは安全だが、VPN設計と整合していないと問題になるという位置づけです。
Split Tunnelは便利ですが、DNS設計を誤ると不整合が生じます。
という状態になると、DNSリークと同等の問題が発生します。
安全な設計では、
という考え方が取られます。
DNSチェックで重要なのは、
VPN利用中に、
という判断になります。
以上、VPN接続におけるDNSについてでした。
最後までお読みいただき、ありがとうございました。