自分のリソースを使って VPN 経由の IPv6 を検証する方法
経路が一つ動くことを示すのに、公開の IPv6 チェッカーは要りません。自分で管理するリソースを使い、両端を記録し、検証が何を対象外にしたかを書き留めます。
公開の IP チェックページが答えるのは一つの問いだけで、たいていはあなたが立てた問いではありません。ページが見た出口アドレスを教えるだけで、トンネルを通る IPv6 経路が動くか、ホストが IPv6 を優先したのか後退したのか、除外したアプリが別の経路を通ったのかは教えてくれません。自分で管理する許可されたリソースなら、両端が見えるので、より狭い問いにきちんと答えられます。以下の手順は、防御できる結論に至るためのものであり、緑の結果を得るためのものではありません。
ステップ 1: どの IPv6 経路を検証するのかを明言する
一文で述べます。トンネルサーバー自身の IPv6 アドレスへの要求はトンネルを検証し、出口の向こうのホストへの要求は出口の IPv6 出口を検証し、プライベートな IPv6 アドレスへの要求は内部経路を検証します。
これは三つの別々の主張であり、一回の成功した要求ではすべてを支えられません。目の前の判断に重要なものを一つ選び、何かを実行する前に書き留めます。懸念がトンネルの周りで IPv6 が漏れるかどうかなら、問いはホストの経路選択についてであり、出口への到達性ではありません。懸念が遠い側が内部サービスに届くかどうかなら、出口は無関係です。
ステップ 2: ホストがその経路を選ぶことを確認する
ip -6 route get 2001:db8:1::10 経路、送信元アドレス、カーネルが使うインターフェースを表示し、残りの検証はこの事実に依存します。
インターフェースが存在することと、それが選ばれることは同じではありません。デュアルスタックのホストには優先順位表があり、Linux の /etc/gai.conf は、両方に解決する名前でどちらのファミリーが勝つかを変えられます。
ステップ 3: 正当な宛先と名前を使う
HTTPS を検証するなら、証明書が発行されたホスト名を使い、検証を有効のままにし、テストを通すためにリテラルアドレスへ切り替えると、意図したホストに届いたことを示す肝心の検査を切ってしまいます。自分で管理する診断サービスが、既知の名前で有効な証明書に応答するなら、それが最も清潔な対象です。さらに照合に使えるサーバー側のログ行も得られますが、第三者のチェッカーはそれを決して与えません。
使ったアドレスが分かる形で要求を実行します: curl -6 -sS -o /dev/null -w '%{remote_ip} %{http_code}\n' https://test6.example.net/。-6 はファミリーを強制し、これで「IPv6 が動かない」と「IPv6 が選ばれなかった」を切り分けられます。
ICMPv6 が許される純粋な到達性の確認なら、ping -6 -c 3 2001:db8:1::10 で十分です。経路を示すだけで、その上は何も示しません。
ステップ 4: 両端を突き合わせる
両端にアクセスできるなら、クライアントで tcpdump -ni any ip6 and host 2001:db8:1::10 を、リソースで同等のものを、タイムスタンプ付きで実行し、同じフローが両方に現れることを確認し、これがもっともらしい結果を証拠に変えます。クライアント側の見方だけでは、リソースからの応答と途中の何かからの応答を区別できません。キャプチャは一つの宛先に絞り、出力を読みやすく保ち、無関係なセッションがファイルに残らないようにします。
ポリシーが再起動をまたいで残るかが懸念なら、再接続後に検証を繰り返します。接続時に一度だけ適用された経路とファイアウォールの状態は、再適用される状態と異なることがあり、違いは二回目の接続で初めて現れます。
必要なら失敗のケースを別に検証します。落ちたときに IPv6 を遮断するトンネルと漏らすトンネルは別の設計であり、成功した要求で確認できるのは片方だけです。
ステップ 5: 検証が証明しなかったことを書き留める
五番目のステップは、検証が証明しなかったことを書き留めることで、ここが抜け落ちやすい部分です。プライベートな端点への成功した検証は、公開の IPv6 出口を証明せず、DNS の挙動も証明せず、トンネルから除外したアプリも対象にしません。それぞれに独自の宛先と独自の観察が必要です。一つのホストへの一回の要求のあと IPv6 が動くというメモは発見ではなく、タイムスタンプ付きの推測です。
残す価値のある記録は短いものです:宛先、名前、ホストが選んだ送信元アドレス、観察された遠隔アドレス、時刻です。RFC 7359 は、関連する IPv6 経路が実際に使えるかを検証する方法を論じており、この手順がより簡単な道具で近づこうとしている標準です。結論が正しいために公開チェッカーを必要とするなら、検証は十分に具体的ではありませんでした。