IPv6移行:デュアルスタック、トンネリング、NAT64
適切な戦略でIPv6移行を計画します。ネットワークのためのデュアルスタック、トンネリング、および変換アプローチを比較します。
今すぐ移行する理由#
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 - DMZ3. ネットワークインフラストラクチャを設定
境界ルーターでIPv6ルーティングを有効にします。アドレス割り当てのためにルーターアドバタイズメント(SLAAC)またはDHCPv6を設定します。ファイアウォールルールを更新します。これは重要でしばしば忘れられます。
4. サーバーに展開
リスクの低いサービスから始めます。AAAADNSレコードを追加します。本番サービスに移行する前に徹底的にテストします。IPv4とIPv6の両方のトラフィックパターンを監視します。
5. クライアント接続を有効化
最新のオペレーティングシステムはデュアルスタックを自動的に処理します。SLAACはDHCPなしでアドレスを設定します。クライアントはIPv4(DHCP経由)とIPv6(SLAAC経由)の両方のアドレスを受信し、適切に選択します。
セキュリティギャップ
最も一般的なデュアルスタックの失敗:IPv6ファイアウォールルールの設定を忘れること。攻撃者はフィルタリングなしでIPv6対応ホストをスキャンします。両方のプロトコルに同じセキュリティポリシーを適用します。
Happy Eyeballs:プロトコル選択#
RFC 8305は「Happy Eyeballs」を定義しています。これは、最新システムがIPv4とIPv6の間で選択するために使用するアルゴリズムです。これを理解すると、接続の問題をデバッグするのに役立ちます。
プロセス:
- DNSルックアップがA(IPv4)とAAAA(IPv6)の両方のレコードを返す
- システムは最初にIPv6接続を試みる
- 50〜250ms後(実装固有)、並行してIPv4試行を開始
- 最初の成功した接続が勝つ
- 結果は同じホストへの後続の接続のためにキャッシュされる
これにより、ユーザーは目立った遅延なしに利用可能な最良の接続を取得できます。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のみのサービスへの透過的なアクセスを提供します。
仕組み:
- IPv6のみのクライアントが
ipv4only.example.comのDNSをクエリ - DNS64サーバーがAレコード(IPv4)のみを表示、AAAAレコード(IPv6)なし
- DNS64がNAT64プレフィックスを使用してAAAAレコードを合成:
64:ff9b::198.51.100.5 - クライアントが合成IPv6アドレスにパケットを送信
- NAT64ゲートウェイがIPv4に変換して転送
- 返信トラフィックが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の採用は加速し続けています。今すぐ開始すると、たとえ段階的であっても、競合他社が後で追いつくのに苦労している間に、ネットワークを未来のために位置付けます。
関連記事#
- Windows、macOS、Linux、ルーターでIPv6を有効にする方法 - デバイスとネットワークでIPv6を実装するための実用的なガイド。
- AWS、Azure、GCPでのIPv6 - 主要なクラウドプラットフォームでIPv6を展開する方法を学びます。
実際に試してみましょう
IPv6 PingおよびTracerouteツールを使用して、移行の進行状況をテストします。