トンネルを立ち上げてもローカルネットワークが端末を忘れるわけではない、というのがよくある思い込みです。近隣テーブル、リース、ローカルの名前レコードは別のことを示しています。トンネルが変えるのはパケットの出口であり、隣人が見えるものを変えるわけではありません。

確認すべき視点は二つあります。どちらも、多くの人が最初にやる「隠れているかどうか」のテストではありません。

隣人は今も端末を知っている

ローカルアドレス、ハードウェアアドレス、そしてほとんどのネットワークではリースされたホスト名が、接続している間はずっと端末に結び付いたままです。ルーターはそれらを一覧にし、フラットなセグメントでは他のホストもそれらを学習できます。近隣探索、アドレス割り当て、ローカルな名前解決はいずれもトンネルの中ではなくセグメント上で起きるので、VPN はこれらを抑えません。通信を運ぶフレームは端から端まで暗号化されていますが、リースと近隣エントリはそもそもその会話の一部ではありませんでした。

トンネルが隠すのは宛先の一覧です。ルーターが見るのは、複数のサイトではなく単一の終端点への暗号化されたフロー一つですが、量、タイミング、終端点の評判は依然として多くを語ります。

出口アドレスは一つの身元にすぎない

VPN がローカルネットワーク上の端末を隠すという主張は、狭い意味では正しいのです。遠隔の観測者はあなたの公開アドレスを知らなくなりますが、接続しているアクセスポイントは何も言えず、そのアクセスポイントは通信相手のハードウェアアドレスを今も知っています。二つの観測を一つの問いとして扱うから、トンネルが本来の働きをしただけなのに「失敗した」と結論づけるのです。切り分ければ、それぞれの結果が単独で解釈できます。

位置にはアドレスを一切通らない第二の経路があります。ブラウザの位置情報は、アドレスではなく近くのアクセスポイントのスキャンから答えられることがあります。OS がそれらの識別子を、すでに場所と対応づけている検索サービスへ渡すためで、無線を切ればその入力は消えますが、出口の国を変えても消えません。

サーバーを借りれば、プロバイダーにパターンが見える

借りたインスタンスでトンネルを動かすと、観測は消えるのではなく移ります。ホスティング事業者は、経路を決める必要があるため外側のフローの送信元と宛先を見ます。終端点のアドレスはサービスを特定します。ペイロードは読めないままですが、一つの相手とだけ話し、他とは一切話さないホストを分類するのは難しくなく、その説明のどこにも暗号を破る必要はありません。

パターンは中身ではありません。懸念が事業者の記録なら、答えは別の暗号ではなく、方針を明示し、あなたが受け入れられる司法管轄を持つ事業者です。より強い暗号でも、外から見たフローの見え方は変わりません。

分割トンネリングが、誰がクエリを見るかを決める

仕事用のトンネルでは、管理者が観測できる範囲はクライアントが入れる経路次第です。トンネルに社内プレフィックスだけを入れておけば、ゲートウェイが記録するのは通信のその部分だけで、他は何も記録しません。分割トンネリングがなければ、すべてのパケットが雇用主を通り、リゾルバーがクライアントに配られていればドメインの問い合わせも含まれます。この違いが、雇用主があなたの習慣のどれを観測できるかを決めます。

思い込まずにルーティングテーブルを確認し、公開名の問い合わせに誰が答えているかに注目してください。相手のリゾルバーが答え始めれば、ページを別の場所から取得しても問い合わせは相手の手元に残ります。

どちらかを信じる前に両方の視点を確かめる

同じセグメント上の二台目の端末にあなたのホスト名を解決させ、その近隣テーブルを表示させたうえで、外部からサービスがどのアドレスを報告するかを観測してください。この二つの答えは別の層を語っており、単一の「隠れているかどうか」のテストでは両方を覆えません。

arp -a
ip route show default
resolvectl status | head -n 20
dig +short example.com

試すときは一度に一つの層だけを変えてください。探索プロトコルを切ればトンネルはそのままでセグメントがその視点を失い、出口の国を変えればセグメントはそのままでサイトの記録が変わります。

関連記事