要約

  • RFC 3964 の外側 IPv4 送信元と内側 6to4 プレフィックスの照合は、二つの値の局所的な整合を示すだけで、中継者の正当性、主体、権限、配送結果を示さなかった。
  • カプセル解除後には外側ヘッダーが通常の IPv6 処理から消えるため、両ヘッダー、実際の中継インスタンス、個別の検査結果を変換前に結び付けて残す必要があった。

6to4 の歴史を一枚の障害票から読むと、最初に見えるのは IPv6 送信元である。宛先はそのアドレスを記録し、アプリケーションもそれを表示する。ところが苦情を受けるのは中継事業者かもしれない。両者を結んでいた IPv4 ヘッダーは、すでにカプセル解除で捨てられている。

RFC 3964 は、この消失を付録の例で明示した。解除前のパケットには外側 IPv4 の送信元・宛先と、内側 IPv6 の送信元・宛先がある。受信側が外皮を除けば、通常の IPv6 転送に残るのは内側の二つだけである。IPv4 アドレスはリンク層情報のように失われ、悪用の余地が生まれると文書は警告した。

自動設定は二つの証拠体系を重ねた

基礎となった RFC 3056 は、グローバル IPv4 アドレスを持つサイトが 2002:V4ADDR::/48 を作る仕組みを定めた。相手も 6to4 なら、宛先に埋め込まれた V4ADDR がプロトコル 41 の IPv4 宛先になる。ネイティブ IPv6 との通信では中継が二つの経路世界をまたいだ。

この設計は手動のトンネル交渉を減らした一方、一つのパケットに異なる意味を持つアドレスを載せた。外側は「どの IPv4 終端からこの外皮が届いたか」を表し、内側は「IPv6 送信元はここだ」という主張を表す。前者を除いたことは、後者を認証したことではない。

RFC 3964 が求めた代表的な検査は、内側送信元が 6to4 の場合の照合である。2002:V4ADDR::/48 に埋め込まれた値と外側 IPv4 送信元が一致しなければ破棄する。また、ブロードキャスト、マルチキャスト、ループバック、プライベートその他、グローバルなトンネル終端として不適切な値を拒む。境界の根拠には RFC 1812 のルータ要件があり、現在の分類は IANA IPv4特殊用途アドレス・レジストリで確認できる。

一致には価値がある。しかし、それは身元ではない。ある機器のある規則と時点で、二つの機械可読な主張が同じ IPv4 値を指したと分かるだけだ。アドレスを誰が操作したか、割当てが継続しているか、中継の権限があるか、利用者がアプリケーション動作を意図したかは別である。

RFC 2827 / BCP 38 の入口フィルタと、多重接続を扱う RFC 3704 / BCP 84 は、偽の外側送信元を起点近くで止める助けになる。それでも通過という事実が示すのは、その接続・経路集合に対する妥当性であって、人や組織の認証ではない。RFC 3964 自身も、IPv4 全体で完全な入口フィルタを前提にすることは現実的でないと扱った。

ネイティブ側から来ると比較式が成立しない

ネイティブ IPv6 から 6to4 サイトへ向かうパケットでは、内側送信元に IPv4 値が埋め込まれていない。外側送信元は通常なら中継だが、受信する 6to4 ルータは正当な中継と、それを装う第三者を容易に区別できないと RFC 3964 は述べる。プロトコル 41 を受信したことは、中継資格を受け取ったことではない。

この問題は RFC 3756 が整理した IPv6 Neighbor Discovery の信頼境界にも似る。リンク上で発言できることと、ルータ役を任されていることは違う。6to4 は広域 IPv4 網を擬似リンクとして扱ったため、到達可能性と権限の差がさらに大きかった。

そこで検査は分離して考えなければならない。外側と埋込み値の一致、特殊アドレス、方向、自己サイト宛てか、6to4 から 6to4 への再中継ではないか、経路範囲、レート制限はそれぞれ別の判定である。一つの「正常」フラグでは、何を確かめ、何が適用外だったかを復元できない。

外側ヘッダーは不完全でも、捨ててよい情報ではなかった

RFC 3964 は、6to4 中継が IPv4 アドレスをリンク層アドレスのように扱い、通常は記録しない場合があると指摘した。そのため IPv4 ノードから始まった攻撃は、内側 IPv6 パケットが残っても src_v4 の痕跡を失い得た。

外側送信元を最終帰属とみなすのは誤りである。偽装かもしれず、発信者ではなく中継かもしれず、anycast なら複数機器の共有名かもしれない。しかし、不完全な観測を削除しても内側の主張が強くなるわけではない。調査に使える制約が一つ減るだけだ。

保存すべき単位は関係である。入口インターフェース、処理した具体的インスタンス、外側 IPv4 の組、内側 IPv6 の組、時刻、経路状態、各検査結果を解除前に結ぶ。その後、解除、IPv6 転送、遠隔受信、アプリケーション結果を別々の受領事実として残す。宛先からの苦情は、その関連付けがあって初めてトンネル入口まで戻れる。

RFC 6169 は後に一般の IP トンネルについて、搬送網の入口・出口フィルタが内側アドレスへ自動適用されず、トンネルを理解しない装置はポリシー可視性を失うと整理した。RFC 3964 はその具体例として、正しい変換と証拠保全が別の成功条件であることを示した。

Anycast は「どれか」を選び、「どれか」を隠した

RFC 3068 は 6to4 中継 anycast として 192.88.99.1 を割り当てた。IPv4 経路が近い中継を選び、故障した中継が広告を取り下げれば別の中継へ移れる。設定は容易になったが、特定の中継を識別しにくいという欠点も文書に書かれた。

したがって、192.88.99.1 への経路は中継候補の選択を示すにすぎない。実際の機器、転送意思、ネイティブ IPv6 接続、検査の実施、容量、復路を証明しない。可用性はインスタンスの交換可能性を求め、説明責任は正反対にインスタンスの固定記録を求めた。

RFC 6343 は 2011 年、往路と復路が異なる中継を使うこと、広告はあるのに転送しない経路、ブラックホール、外側送信元が変わることで状態型フィルタに拒まれる問題、管理されない中継を記録した。経路広告はサービス受領証ではなかった。

RFC 7526 は 2015 年に anycast 6to4 と 192.88.99.1 を正式に非推奨とした。ただし RFC 3056 の基本機構と 2002::/16 自体は非推奨にしていない。標準上の判断から、全ホスト、全経路、全残存トラフィックの消滅を推論してはならない。

トンネル完了の先にある受領事実

RFC 3964 はサービス妨害、反射、パケット洗浄、ローカル IPv4 ブロードキャスト、サービス盗用、運用上の濫用を分けて扱った。中継は発信していないのに外側アドレスのため苦情を受け得る。偽装された内側送信元は第三者へ応答を向け得る。宛先ログは内側だけを残し得る。

証拠鎖は、IPv4 経路選択、具体的インターフェースでの受信、四アドレスの同時観測、各規則の判定、カプセル解除、IPv6 転送、宛先受信、アプリケーション効果、主体の権限確認に分かれる。解除成功はその五番目であり、その後を代替しない。

一次資料は RFC 3964 の本文、RFC Editor情報、正誤表である。二件の検証済み技術正誤は例の宛先と誤記された anycast プレフィックスを直すもので、実運用事故の証拠ではない。設計と後史は RFC 3056、3068、2827、3704、6343、7526、6169、1812、3756に基づく。特定ベンダー、被害、普及率、攻撃件数を示すものではない。