ping6.net
移行

IPv6移行:デュアルスタック、トンネリング、NAT64

適切な戦略でIPv6移行を計画します。ネットワークのためのデュアルスタック、トンネリング、および変換アプローチを比較します。

ping6.net2024年2月15日3 min read
IPv6移行デュアルスタックトンネリングNAT646to4

今すぐ移行する理由#

IPv4アドレスの枯渇は現実です。すべての地域インターネットレジストリがプールを使い果たしました。組織は、IPv6アドレス空間が無料のままである一方で、小さなIPv4ブロックにプレミアム価格を支払っています。アドレッシングを超えて、IPv6はNATの複雑さを排除し、ルーティングを簡素化し、主要なプラットフォームがIPv6トラフィックを優先するにつれて、ますます競争要件になっています。

ビジネスケースは簡単です。ユーザーはすでにIPv6ネットワーク(モバイルキャリア、クラウドプロバイダー、最新のISP)を使用していますが、効率的にサービスを提供する準備ができていない可能性があります。AppleはiOSアプリにIPv6サポートを要求しています。GoogleはIPv6対応サイトをわずかに高くランク付けします。IPv6トラフィックは年間25〜30%成長しています。

TL;DR - 要点まとめ

重要ポイント:

  • デュアルスタック(IPv4とIPv6の両方を実行)はほとんどのネットワークに推奨されるアプローチ
  • トンネリング(6in4、6rd)は一時的 — ネイティブIPv6が利用できない場合のみ使用
  • 変換(NAT64/DNS64)はIPv6のみのクライアントがIPv4のみのサービスに到達可能にする
  • リスクの低いサービスでデュアルスタックを開始し、徐々に本番環境に拡大
  • 非推奨の6to4やTeredoは使用しない — 最新の代替手段が優れている

ジャンプ: デュアルスタック展開 | トンネリング | 変換 | 決定フレームワーク


3つの移行アプローチ#

IPv6移行は万能ではありません。3つの基本的な戦略があります:

アプローチ仕組み最適な用途
デュアルスタックIPv4とIPv6を同時に実行ISP IPv6サポートがある本番ネットワーク
トンネリングIPv6パケットをIPv4パケット内にカプセル化ネイティブIPv6接続がないネットワーク
変換IPv4とIPv6間でパケットを変換IPv6のみとIPv4のみのシステムの接続

ほとんどの本番ネットワークはデュアルスタックを使用します。トンネリングは一時的なブリッジとして機能します。変換は、プロトコルが相互運用する必要があるエッジケースを処理します。

デュアルスタック展開#

デュアルスタックとは、すべてのネットワークデバイスが両方のプロトコルを話すことを意味します。サーバーにはIPv4アドレス(192.0.2.10)とIPv6アドレス(2001:db8::10)があります。アプリケーションは、宛先と優先順位に基づいて使用するプロトコルを選択します。

┌─────────────────────────────────┐
│      アプリケーション層          │
├─────────────────────────────────┤
│  TCP/UDP(プロトコル非依存)    │
├──────────────┬──────────────────┤
│  IPv4スタック│   IPv6スタック   │
│  192.0.2.10  │  2001:db8::10    │
└──────────────┴──────────────────┘
         │              │
    IPv4ネットワーク IPv6ネットワーク

利点#

デュアルスタックは互換性の問題を作りません。IPv4のみのクライアントは通常どおり動作し続けます。IPv6クライアントはネイティブ接続を取得します。サービスの中断や外部関係者との調整なしに、自分のペースで移行できます。

時間の経過とともにネットワークアーキテクチャが簡素化されます。IPv6の採用が増えるにつれて、IPv4サービスを徐々に非推奨にできます。フラグデーはありません。移行週末もありません。着実な進歩だけです。

実装手順#

1. ハードウェアサポートを確認

ルーター、スイッチ、ファイアウォールがIPv6をサポートしていることを確認します。過去10年のほとんどの企業機器はサポートしていますが、ファームウェアバージョンを確認してください。一部の古いデバイスには更新が必要です。

2. アドレッシングスキームを設計

ISP(または大規模組織の場合はRIR)から/48以上のプレフィックスをリクエストします。サブネット構造を計画します。IPv4の厳格なサブネット化とは異なり、すべてのLANに/64を使用します。これは、SLAACを有効にする標準サブネットサイズです。

/48の割り当て例:

2001:db8:0100::/48  - ISPから受信
2001:db8:0100:0001::/64  - データセンターサーバー
2001:db8:0100:0002::/64  - オフィスLAN
2001:db8:0100:0003::/64  - ゲストネットワーク
2001:db8:0100:0010::/64  - DMZ

3. ネットワークインフラストラクチャを設定

境界ルーターでIPv6ルーティングを有効にします。アドレス割り当てのためにルーターアドバタイズメント(SLAAC)またはDHCPv6を設定します。ファイアウォールルールを更新します。これは重要でしばしば忘れられます。

4. サーバーに展開

リスクの低いサービスから始めます。AAAADNSレコードを追加します。本番サービスに移行する前に徹底的にテストします。IPv4とIPv6の両方のトラフィックパターンを監視します。

5. クライアント接続を有効化

最新のオペレーティングシステムはデュアルスタックを自動的に処理します。SLAACはDHCPなしでアドレスを設定します。クライアントはIPv4(DHCP経由)とIPv6(SLAAC経由)の両方のアドレスを受信し、適切に選択します。

セキュリティギャップ

最も一般的なデュアルスタックの失敗:IPv6ファイアウォールルールの設定を忘れること。攻撃者はフィルタリングなしでIPv6対応ホストをスキャンします。両方のプロトコルに同じセキュリティポリシーを適用します。

Happy Eyeballs:プロトコル選択#

RFC 8305は「Happy Eyeballs」を定義しています。これは、最新システムがIPv4とIPv6の間で選択するために使用するアルゴリズムです。これを理解すると、接続の問題をデバッグするのに役立ちます。

プロセス:

  1. DNSルックアップがA(IPv4)とAAAA(IPv6)の両方のレコードを返す
  2. システムは最初にIPv6接続を試みる
  3. 50〜250ms後(実装固有)、並行してIPv4試行を開始
  4. 最初の成功した接続が勝つ
  5. 結果は同じホストへの後続の接続のためにキャッシュされる

これにより、ユーザーは目立った遅延なしに利用可能な最良の接続を取得できます。IPv6が優先されますが、IPv4はフォールバックのままです。

IPv6 pingツールでこの動作をテストできます。デュアルスタック宛先の応答時間を比較します。

トンネリングメカニズム#

トンネリングは、IPv6パケットをIPv4内にラップし、IPv4のみのインフラストラクチャを介したIPv6接続を可能にします。永続的なソリューションではなく、一時的な回避策と考えてください。

元のもの:[IPv6ヘッダー | データ]
トンネル化:[IPv4ヘッダー | IPv6ヘッダー | データ]

6in4:手動トンネル#

最もシンプルなトンネリング方法です。2つのエンドポイントを手動で設定すると、IPv6パケットはプロトコル41(UDPまたはTCPではなく、生のIPプロトコル41)としてIPv4ネットワークを通過します。

Linux設定例:

# トンネルインターフェイスを作成
ip tunnel add he-ipv6 mode sit remote 209.51.161.14 local 203.0.113.50 ttl 255
 
# IPv6アドレスを割り当て(トンネルブローカーから)
ip addr add 2001:470:1f0a:1ab::2/64 dev he-ipv6
 
# リンクを上げる
ip link set he-ipv6 up
 
# デフォルトIPv6ルートを追加
ip route add ::/0 dev he-ipv6
 
# 確認
ping6 google.com

重要なポイント:

  • プロトコル41はファイアウォール/NATを通過する必要があります(しばしばブロックされます)
  • トンネルエンドポイントには静的IPv4アドレスが必要
  • Hurricane Electricおよびその他のトンネルブローカーは無料のエンドポイントを提供
  • トンネルブローカーの場所に応じて約10〜30msの遅延を追加

6rd:ISP迅速展開#

6rdにより、ISPは既存のIPv4インフラストラクチャを介して顧客にIPv6を提供できます。ISPはリレーサーバーを実行し、顧客ルーターは自動的にIPv6トラフィックをトンネリングします。

6to4とは異なり、6rdはISP固有のプレフィックスとISP制御のリレーを使用するため、より信頼性が高く安全です。手動で設定することはありません。ISPがサポートしている場合は自動的にプロビジョニングされます。

DS-Lite:IPv6上のIPv4#

DS-Liteは典型的なシナリオを逆転させます:IPv6のみのネットワーク上でIPv4接続を提供します。レガシーIPv4サービスを維持しながらIPv6のみのインフラストラクチャに移行するISPによって使用されます。

顧客 ----[IPv4-in-IPv6]----> ISP AFTR ----[IPv4]----> インターネット

顧客機器(B4要素)は、IPv6内のIPv4をISPのAFTR(アドレスファミリ遷移ルーター)にトンネリングし、IPv4インターネットに転送する前にNAT44を実行します。

エンドユーザーは通常DS-Liteを設定しません。ISPによって管理されます。

非推奨:6to4とTeredo

**新しい展開には6to4(2002::/16)またはTeredoを使用しないでください。**両方とも、信頼性とセキュリティの問題により公式に非推奨です。

6to4は、可用性が低いエニーキャストリレーに依存していました。TeredoはNATトラバーサルでセキュリティ上の懸念を引き起こしました。最新のトンネルブローカーまたはネイティブデュアルスタックがより良いソリューションです。

変換技術#

変換は、ネットワーク層でIPv6とIPv4の間でパケットを変換します。これにより、一方がIPv6のみで他方がIPv4のみの場合に通信が可能になります。

DNS64を使用したNAT64#

NAT64はIPv6パケットをIPv4に変換し、その逆も行います。DNS64と組み合わせると、IPv6のみのネットワークからIPv4のみのサービスへの透過的なアクセスを提供します。

仕組み:

  1. IPv6のみのクライアントがipv4only.example.comのDNSをクエリ
  2. DNS64サーバーがAレコード(IPv4)のみを表示、AAAAレコード(IPv6)なし
  3. DNS64がNAT64プレフィックスを使用してAAAAレコードを合成:64:ff9b::198.51.100.5
  4. クライアントが合成IPv6アドレスにパケットを送信
  5. NAT64ゲートウェイがIPv4に変換して転送
  6. 返信トラフィックがIPv6に変換される
┌─────────────┐         ┌─────────────┐         ┌─────────────┐
│ IPv6クライアント│      │   NAT64     │         │ IPv4サーバー│
│             │─────────│   ゲートウェイ│─────────│             │
│2001:db8::1  │  IPv6   │  + DNS64    │  IPv4   │198.51.100.5 │
└─────────────┘         └─────────────┘         └─────────────┘

既知のNAT64プレフィックス:64:ff9b::/96(RFC 6052)

NAT64にはステートフル変換が必要です。ゲートウェイは、従来のNAT44のようなセッション状態を維持します。これにより、IPv4 NATと同じスケーリングの懸念が生じます。

464XLAT:IPv4アプリの有効化#

464XLATは、クライアント側変換(CLAT)を追加することでNAT64を拡張し、IPv4のみのアプリケーションがIPv6のみのネットワークで動作できるようにします。

┌──────────────┐      ┌──────────────┐      ┌──────────────┐
│ IPv4アプリ   │      │              │      │ IPv4サーバー │
│              │      │ IPv6のみ     │      │              │
│ 192.0.0.1    │      │ ネットワーク │      │ 198.51.100.5 │
└──────┬───────┘      └──────────────┘      └──────────────┘
       │                                             │
    CLAT(デバイス)                          PLAT(ISP)
    NAT46                                       NAT64

モバイルネットワークは464XLATを広範に使用しています。電話はIPv6のみのスタックを実行しますが、レガシーIPv4のみのアプリは透過的に動作します。AndroidとiOSの両方がCLATをネイティブでサポートしています。

戦略の選択#

ネットワーク特性に基づく意思決定フレームワーク:

ISPからネイティブIPv6がありますか?

   ├─ はい ──> デュアルスタックを展開(推奨)
   │          1. 境界ルーターでIPv6を有効化
   │          2. SLAAC/DHCPv6を設定
   │          3. ファイアウォールルールを更新
   │          4. DNSにAAAAレコードを追加

   └─ いいえ ──> すぐにIPv6が必要ですか?

              ├─ はい ──> トンネルブローカーを使用
              │          (Hurricane Electricなど)

              └─ いいえ ──> ISPにIPv6をリクエスト
                        または移行タイムラインを計画

戦略選択マトリックス#

あなたの状況推奨アプローチ実装労力
IPv6 ISPがあるエンタープライズデュアルスタック中(1回限りの設定)
IPv6 ISPがあるホーム/小規模オフィスデュアルスタック低(ルーターで有効化)
ISPがIPv4のみを提供トンネルブローカー(一時的)低(ただし遅延が追加)
IPv4にアクセスするIPv6のみのネットワークNAT64/DNS64中(ゲートウェイ展開)
モバイルキャリア464XLAT(自動)N/A(キャリア管理)
IPv6からIPv4のみのサービスにアクセスする必要があるサービスをデュアルスタック化

一般的な落とし穴#

1. 不完全なファイアウォール設定#

IPv6トラフィックはしばしばIPv4ファイアウォールルールをバイパスします。セキュリティチームは広範なIPv4ポリシーを設定しますが、IPv6を完全に忘れます。結果:フィルタリングされていないIPv6接続。

**解決策:**両方のプロトコルに同等のセキュリティポリシーを適用します。IPv4でポート23(telnet)をブロックする場合は、IPv6でもブロックします。両方にステートフルインスペクションを使用します。

2. DNS設定ミス#

動作するIPv6接続なしでAAAAレコードを公開すると、IPv6対応クライアントのアクセスが壊れます。Happy Eyeballsは役立ちますが、遅延を引き起こし、IPv4へのフォールバックを引き起こします。

**解決策:**IPv6接続が機能することを確認した後にのみAAAAレコードを公開します。AとAAAAの両方のクエリパターンを監視します。IPv6アドレスの逆DNS(PTRレコード)を設定します。

3. アプリケーション互換性の問題#

IPv4の仮定をハードコーディングするアプリケーションはIPv6で失敗します:

  • 32ビット整数にIPアドレスを格納
  • IPv4形式のみに一致する正規表現パターン
  • URLでIPv6アドレスを角括弧で囲まない:http://[2001:db8::1]:8080/
  • ::(IPv6ワイルドカード)ではなく0.0.0.0にバインド

**解決策:**IPv6のみの接続でアプリケーションを徹底的にテストします。デュアルスタックテスト環境を使用します。IPv4の仮定についてコードを確認します。

4. 監視の盲点#

ネットワーク監視はしばしばIPv4メトリックを追跡しますが、IPv6を無視します。IPv6接続が劣化または完全に失敗した場合に気付きません。

解決策:

  • IPv6とIPv4のトラフィックを個別に監視
  • IPv6固有のヘルスチェックを設定
  • プロトコル優先分布を追跡(IPv6を使用するトラフィックの割合)
  • IPv6可用性の問題についてアラート

IPv6サブネット計算機を使用してアドレッシングを計画し、pingツールを使用して接続を確認します。

シンプルに始める#

重要でないシステムでデュアルスタックから始めます。テストサーバー、開発環境、または内部ツール。IPv6接続が機能することを確認します。AAAAレコードを追加します。トラフィックを監視します。

快適になったら、本番サービスに拡大します。ほとんどの最新インフラストラクチャは、最小限の設定でIPv6をサポートします。技術的な移行は簡単です。組織の変更と徹底的なテストに時間がかかります。

トンネリングは、すぐにネイティブIPv6を取得できない場合の一時的なブリッジとして機能します。しかし、ISPにネイティブサポートを求めてください。変換はエッジケースを処理しますが、主要な戦略であるべきではありません。

IPv6の採用は加速し続けています。今すぐ開始すると、たとえ段階的であっても、競合他社が後で追いつくのに苦労している間に、ネットワークを未来のために位置付けます。

関連記事#

実際に試してみましょう

IPv6 PingおよびTracerouteツールを使用して、移行の進行状況をテストします。