464XLAT:コアネットワークの IPv4 接続
このドキュメントは編集中です。内容が実際のバージョンと異なる場合があります。
これは補足資料です。現在の Flet’H の各モードを設定するために 464XLAT は必要ありません。IPv4-in-IPv6 のカプセル化と IPv4/IPv6 変換を区別したいときに参照してください。
先に結論を書くと、464XLAT は IPv4 パケット全体を IPv6 トンネルに入れる方式ではありません。ユーザー側で IPv4 を IPv6 に変換し、IPv6-only 網を通過した後、事業者側で IPv4 に戻します。
ユーザー側から見えるもの
Section titled “ユーザー側から見えるもの”多くのユーザーにとって、464XLAT の違いはほとんど意識されません。従来の IPv4 アプリケーションもそのまま通信できます。直接確認できる数少ない手がかりの一つは、スマートフォンや端末にローカル専用の IPv4 互換アドレスが表示されることです。実装によっては 192.0.0.2 となり、DS-Lite とよく似て見えます。
これは 464XLAT と DS-Lite のどちらも 192.0.0.0/29 の IPv4 Service Continuity Prefix を利用できるためです。このアドレスがパブリック IPv4 としてアクセス網へ送信されることはなく、同じアドレスが見えても 464XLAT と DS-Lite の転送方式が同じという意味ではありません。
事業者がスマートフォンで 464XLAT を有効にする仕組み
Section titled “事業者がスマートフォンで 464XLAT を有効にする仕組み”464XLAT は通常、利用者が手動で切り替える機能ではありません。携帯事業者はキャリア設定を通じて端末に 464XLAT の機能を配布します。網が実際に IPv6-only のデータセッションを提供したとき、端末は CLAT を有効化でき、網側は PLAT/NAT64 を提供します。
iOS では、この端末側の機能設定がキャリア設定バンドル(.ipcc)に含まれます。展開した carrier.plist の APN 項目では、次のような設定を確認できる場合があります。
<key>apn</key><string>spmode.ne.jp</string><key>DefaultProtocolMask</key><integer>3</integer><key>AllowedProtocolMask</key><integer>3</integer><key>enableXLAT464</key><true/>これは 🍄 の spmode.ne.jp に対する設定です。protocol mask の 3 は IPv4 と IPv6 の両方を許可する値であり、すべての接続を IPv6-only に固定するものではありません。enableXLAT464 は iOS に 464XLAT の機能をあらかじめ設定し、網から IPv6 のみが割り当てられた場合に端末側の CLAT を起動できるようにします。事業者網には別途 PLAT/NAT64 が必要です。
464XLAT の仕組み
Section titled “464XLAT の仕組み”464XLAT は、役割の異なる二つの変換機能を組み合わせます。
[ プライベート IPv4 クライアント ] -- IPv4 --> [ CLAT ] -- IPv6 --> [ PLAT ] -- IPv4 --> [ IPv4 インターネット ] ステートレス変換 ステートフル NAT64- CLAT(Customer-side translator) は端末またはユーザー側ルーターで動作し、IPv4 と IPv6 を規則に基づいてステートレスに変換します。
- PLAT(Provider-side translator) は事業者網で動作し、ステートフル NAT64 によって多数の IPv6 ユーザーを事業者の IPv4 アドレスプールへ対応付けます。
戻りの通信は PLAT、CLAT の順に逆方向へ変換されます。ネイティブ IPv6 通信は IPv6 のまま直接流れるため、どちらの変換も通りません。
RFC 6877 が対象とするのは、限定的な IPv4 接続です。クライアントから IPv4 サーバーへ開始する通信には使えますが、外部から直接到達できるパブリック IPv4 アドレスや、制限のない着信 IPv4、一般的な IPv4 の P2P 接続を置き換えるものではありません。
CLAT と DNS64 の関係
Section titled “CLAT と DNS64 の関係”NAT64 と DNS64 だけでも、IPv6 対応アプリケーションは合成された AAAA レコードを使って IPv4-only サーバーへ接続できます。ただし、次のような場合はローカルに IPv4 互換経路が必要です。
192.0.2.1のような IPv4 リテラルへ直接接続する。- アプリケーションが IPv4 socket しか作成できない。
- CLAT の配下に IPv4-only 機器がある。
CLAT はこれらの IPv4 通信を受け取り、IPv6 に変換して PLAT へ送ります。このため、464XLAT 自体は DNS64 を必須としません。DNS64 を併用する場合、IPv6 対応アプリケーションは CLAT を通らず、PLAT の NAT64 だけで IPv4-only サーバーへ接続できます。
他の IPv4 over IPv6 方式との違い
Section titled “他の IPv4 over IPv6 方式との違い”| 方式 | IPv6 網を流れる内容 | 主に状態を持つ場所 | Flet’H の現行対応 |
|---|---|---|---|
| DS-Lite | 外側の IPv6 ヘッダーで包まれた完全な IPv4 パケット | 事業者の AFTR | 対応 |
| MAP-E | 外側の IPv6 ヘッダーで包まれた完全な IPv4 パケット。IPv4 アドレスとポートセットはルールから決まる | マッピング自体について事業者側のフロー単位状態は不要 | 対応 |
| IPIP6H / IPIP6HP | 外側の IPv6 ヘッダーで包まれた完全な IPv4 パケット | 事業者の固定 IP サービスによる | 対応 |
| 464XLAT | IPv4 ヘッダーを残さず変換した IPv6 パケット | 事業者 PLAT のステートフル NAT64 | 非対応 |
DS-Lite、MAP-E、IPIP6 は元の IPv4 パケットを保持し、外側に IPv6 ヘッダーを追加します。464XLAT は IP ヘッダーを書き換えるため、IPv6 区間では変換後の IPv6 パケットだけを運びます。いずれも IPv6 基盤を使って IPv4 接続を提供しますが、カプセル化、アドレスの意味、事業者側で保持する状態が異なります。
Flet’H との関係
Section titled “Flet’H との関係”464XLAT と Flet’H に直接の関係はありません。
- RFC 6877: 464XLAT: Combination of Stateful and Stateless Translation
- RFC 7335: IPv4 Service Continuity Prefix
- RFC 7849: An IPv6 Profile for 3GPP Mobile Devices
- RFC 8683: Additional Deployment Guidelines for NAT64/464XLAT
- RFC 9313: Pros and Cons of IPv6 Transition Technologies for IPv4-as-a-Service
- JANOG30:「IPv6時代のIPv4を考える」~第二章~ 464XLAT 事前公開資料
- IPv6 Summit in TOKYO 2022:NTT ドコモ「IPv6シングルスタックの導入とその後の動向」
- Apple CDN: Docomo_jp iPhone
.ipcc設定