VPN をつないだままでも IPv6 アドレスが変わる理由
一時アドレスは設計どおりに切り替わるため、ルーティングが変わらなくても 2 枚のスクリーンショットは異なり得ます。完全なアドレスではなく、プレフィックス、インターフェース、ルートを比べてください。
一時間おいて撮った二枚のスクリーンショットに別の IPv6 送信元アドレスが写っていると、トンネルが漏れたか再接続したと読むのが自然です。たいていはどちらも起きていません。ホストは一時アドレスを使っていて、これは OS のプライバシー機能で、インターフェース識別子をタイマーで切り替えます。その比較が決定的に見えたのは、決して安定していなかった項目を前提にしていたからにすぎません。
一時アドレスが実際に切り替えるもの
一時アドレスはインターフェースのプレフィックスに、ホストが変える識別子を加えて作られ、優先寿命と有効寿命を持ちます。有効寿命が切れる前にホストは代替を生成するので、二つの接続が別々の送信元から出るのは正当です。リンクローカルアドレスとプレフィックス自体はそのまま残り、ネットワークは今もその機械を認識できます。
その切り替えによってアカウント、Cookie、閲覧パターンが匿名になるわけではありません。あなたを認識したいサイトには Cookie、ログイン、フィンガープリントがあり、変わる送信元アドレスはそれらに比べればほとんど効きません。切り替えが変えるのはパケットヘッダーの一項目だけで、その項目が経路上で唯一の識別子だったことはありません。
ウェブサイトが見るのは一つのアドレス、ホストは複数を持つ
サーバーが記録するのは受け取ったリクエストの送信元だけです。ホストは範囲や寿命の異なる複数のアドレスを持て、どれが勝つかはアドレス選択の規則と宛先次第です。ウェブサイトの値を機械のアドレスとして読むところから、この混乱は始まります。同じホストでも、接続ごとに別のアドレスを選んだというだけで、同じ瞬間に二つのサイトに対して二台の機械のように見えます。
テスト中に ip -6 addr show dev eth0 でインターフェースを見てください:寿命付きのアドレスが複数あれば、切り替えは設計どおりに存在します。次に ip -6 route get 2001:db8:10::5 でカーネルにどのルートを使うか問い合わせると、その宛先のデバイスと優先送信元が出力されます。
文字列ではなく、プレフィックス、インターフェース、ルートを比べる
VPN のテストで問うべきは、パケットがトンネルから出たかどうかであり、これはルーティングとポリシーの問題です。送信元アドレスはその弱い代理指標にすぎません:トンネルのインターフェース上で切り替わるアドレスも、依然としてトンネル上にあります。再接続するトンネルは通常、代わりにプレフィックスやデバイスを変え、その変化は完全なアドレスを読まなくても見えます。
ですから、選ばれたルート、パケットが出たインターフェース、運ばれたプレフィックスを比べてください。この三つは実行間で十分に安定し、変化したときの意味もそれぞれ異なります。
プレフィックスが変わったとき、インターフェースが変わったとき、または宛先へのルートがトンネルを使わなくなったとき、その変化は重要です。同じプレフィックスと同じデバイスでインターフェース識別子だけが変わったなら、それは意図どおりに働くプライバシー挙動です。識別子だけが動いたのなら、そのテストが測ったのはカバレッジではなくプライバシーのタイマーです。トンネルを責める前に、三つのうちどれが動いたかを書き留めてください。
スクリーンショットを一致させるために IPv6 を無効にしない
IPv6 を切れば繰り返しのテストは一致しますが、トンネルが覆うべきネットワークからアドレス体系をまるごと外すことにもなります。ポリシーが IPv6 を運ぶことなら、無効化はカバレッジの穴を塞ぐのではなく隠します。
IPv6 が対応されるまで遮断するのがポリシーなら、意図的に遮断し、その決定を書き残してください。次の管理者は、文書化された遮断と無効化されたスタックの違いを見分けられる必要があります。
何を記録し、一つのテストが何を証明できるか
プレフィックス、インターフェース名、選ばれたルートを、宛先と時刻、そして完全なアドレスと並べて記録します。一時アドレスの仕様は切り替えを駆動する寿命を説明しており、だからこそ完全なアドレスがメモの中で最も不安定な項目です。三つの安定した項目のうち二つが実行間で一致することは、単一のアドレス一致より強い証拠です。
一つのテストは一つのリクエストの一つの観察です。次の観察を比較にするのはメモです。両方を残せば、次の食い違いは半日ではなく一瞥で済みます。