グローバルIPv6アドレスはトラフィックがトンネルを迂回する証拠ではない
スコープはアドレスがどこまで経路化されうるかを示すもので、このパケットがどこへ行ったかではありません。結論を出す前にインターフェース、選択されたルート、トンネルのプレフィックスを読んでください。
テストページがグローバルIPv6アドレスを報告すると、結論はすぐにVPNを迂回するトラフィックへ飛びつきます。その結論には、ページが決して示さなかった二つの事実、つまりどのアプリケーションが要求を出したのか、カーネルがそのためにどのルートを選んだのかが必要です。アドレスのスコープは、そのアドレスがどこまで経路化されうるかを説明します。この特定のパケットがどこへ行ったかについては何も語りません。
スコープと役割は、異なる証拠を持つ別の問いです。
スコープが答えるのは誰が経路化できるかであり、誰がしているかではない
グローバルユニキャストアドレスは原則として公衆インターネット上で経路化でき、一意ローカルアドレスは内部トポロジー向け、リンクローカルアドレスは一つのリンク上にしか存在しません。これらはアドレスブロックの性質です。特定の宛先へのパケットがトンネルから出るかどうかは、ルーティングテーブルとインターフェースに結び付いたポリシーが決め、どちらもどちらの向きにも向かえます。
アドレスはグローバルスコープでありながら、トンネルは経路であってアドレス計画ではないため、トンネルの中で運ばれることがあります。
インターフェース上のすべてのアドレスを読み、ウェブテストに頼らない
インターフェースの出力は、物理リンク上の外側アドレス、トンネルのアドレス、インターフェースごとのリンクローカルアドレスという複数のアドレスを同時に示します。 ウェブテストが示すのは一つの要求の送信元アドレスだけです。まず ip -6 addr show で始め、どのアドレスがどのインターフェースに属し、どのプレフィックス長を持つのかを記録したうえで、要求が実際にどのインターフェースを使ったのかを問い合わせてください。
ip -6 route get 2606:4700::1111 は、宛先に対してカーネルが選ぶインターフェースと送信元を出力するので、それと比較してください。
グローバルプレフィックスがトンネルの中に入る仕組み
二つの設計がトンネルインターフェース上にグローバルアドレスを生みます。プロバイダーは トンネル越しにクライアントへ経路化されるプレフィックスを委任できます、その場合アドレスはグローバルになりますが経路は依然としてトンネルです。あるいはクライアントが元のグローバルアドレスを保ち、外側ヘッダーが仕事をする間トンネルがそれを内側トラフィックとして運びます。どちらの設計も変換を必要とせず、混乱はIPv4 NATの習慣をIPv6の要件とみなすところから始まります。
管理者にどちらが当てはまるかを尋ねてください。答えによって、反対側のサーバーがあなたの送信元として何を見るかが決まります。
私的に見えるアドレスが信頼の信号にならない理由
一意ローカルアドレスは、運用者が内部経路化のために意図しているというだけで、それ以上ではありません。デバイスが管理されていること、ソフトウェアが信頼できること、トラフィックが暗号化されていることを証明しません。逆に、グローバルアドレスはトラフィックがトンネルを抜け出したことを証明せず、この記事全体はまさにその前提を崩すために存在します。
信頼はポリシー、認証、暗号化で判断してください。アドレスの見た目は弱い推測であり、どちらの向きでも外れます。
ルートとポリシーを二つの問いとして試す
第一にルートでは、curl -6 https://ifconfig.me をトンネル経由で、次に物理インターフェース経由で実行し、答えを比べます。第二にポリシーでは、トンネルが実際にどのプレフィックスを運んでいるのか、反対側にそれへの戻りルートがあるのかを確認します。公開サイトへの成功した要求は、その宛先にはどこからでも到達できるため、どちらも証明しません。ポリシーのテストには内部の宛先を使ってください。
それぞれの経路が生んだ送信元アドレスを記録してください。トンネル迂回についての主張が本当に必要とする証拠はそれです。