🔐 AWS Site-to-Site VPN
IPv4 / IPv6 トラフィック完全ガイド

VPN トンネルの「外側」と「内側」で IPv4 / IPv6 を自在に組み合わせる仕組みを図解

1

VPN トンネルは「外側の道路」と「中身の荷物」で、それぞれ IPv4 / IPv6 を選べる

2

1本の VPN 接続で IPv4 と IPv6 の両方を同時に運ぶことはできない(別々に接続が必要)

3

外部トンネル IPv6 は Transit Gateway / Cloud WAN のみ対応(VGW は非対応)

4

既存 VPN に後から IPv6 を追加できない → 削除して新規作成が必要

🚂 たとえ話:貨物列車とトンネルの関係

VPN の IPv4/IPv6 の仕組みを「鉄道」にたとえて理解しましょう

🚂 VPN は「鉄道トンネル」と「貨物コンテナ」の関係

AWS Site-to-Site VPN を「鉄道システム」にたとえてみましょう。

外部トンネル IP(IPv4 / IPv6)は、列車が走る「線路・トンネルの規格」です。従来の狭軌線路(IPv4)と、新型の広軌線路(IPv6)があります。

内部パケット(IPv4 / IPv6)は、列車に積む「貨物コンテナの種類」です。従来型コンテナ(IPv4 パケット)と、新型コンテナ(IPv6 パケット)があります。

重要なルール:1本の列車(VPN 接続)には1種類のコンテナしか積めません。従来型と新型を混載することはできないため、両方を運びたい場合は2本の列車を手配する必要があります。

鉄道のたとえ 🚂 AWS VPN の実体 ポイント
線路・トンネルの規格 外部トンネル IP アドレス IPv4(従来)または IPv6(新型)を選択
貨物コンテナの種類 内部パケットの IP バージョン IPv4 または IPv6 のいずれか1種類のみ
1本の列車 = 1種類のコンテナのみ 1本の VPN 接続 = 1つの IP バージョンのみ IPv4 と IPv6 の混載は不可
2本の列車を手配 2本の VPN 接続を作成 デュアルスタックには2本必要
新型線路は最新の駅でのみ利用可能 外部 IPv6 は TGW / Cloud WAN のみ VGW(旧型駅)は非対応
線路を走行中に規格変更は不可 既存 VPN に後から IPv6 追加は不可 削除 → 新規作成が必要

📐 VPN トンネルの外側と内側の構造

「トンネルの外側の IP」と「中を流れるパケットの IP」は独立して選択できます

VPN トンネルの外側 IP と内側パケット IP の関係 外側(Outer)= トンネル自体のアドレス / 内側(Inner)= 中を流れるデータのアドレス 🏢 オンプレミス Customer Gateway カスタマーゲートウェイ オンプレミス ネットワーク 🔐 VPN トンネル(IPsec) 外側トンネル IP(Outer): IPv4 または IPv6 トンネルエンドポイントのアドレス空間 内側パケット(Inner): IPv4 または IPv6 実際のアプリケーションデータ ☁️ AWS クラウド Transit Gateway / VGW / Cloud WAN VPC IPv4/IPv6 サブネット ⚠️ 重要な制約 1本の VPN 接続 = IPv4 か IPv6 どちらか一方のみ デュアルスタック(IPv4+IPv6)には2本の VPN 接続が必要 外側トンネル IP 内側パケット IP 制約・注意事項 🚂 たとえ:「線路の規格」=外側IP /「コンテナの種類」=内側IP / 1列車=1種類のコンテナのみ / 混載するなら2列車必要

📦 4つの IP 構成パターン

外側トンネルと内側パケットの IPv4/IPv6 の組み合わせは4パターンあります

4つの IP 構成パターン(外側トンネル × 内側パケット) ① IPv4 外 + IPv4 内 外側: IPv4 トンネル パブリック IPv4 エンドポイント 内側: IPv4 パケット 🚂 旧型線路 + 旧型コンテナ VGW TGW Cloud WAN ② IPv4 外 + IPv6 内 外側: IPv4 トンネル パブリック IPv4 エンドポイント 内側: IPv6 パケット 🚂 旧型線路 + 新型コンテナ VGW TGW Cloud WAN ③ IPv6 外 + IPv6 内 外側: IPv6 トンネル パブリック IPv6 エンドポイント 内側: IPv6 パケット 🚂 新型線路 + 新型コンテナ VGW TGW Cloud WAN ④ IPv6 外 + IPv4 内 外側: IPv6 トンネル パブリック IPv6 エンドポイント 内側: IPv4 パケット 🚂 新型線路 + 旧型コンテナ VGW TGW Cloud WAN ⚠️ VGW(仮想プライベートゲートウェイ)は ① のみ対応 / 外側 IPv6 は TGW・Cloud WAN のみ対応 デュアルスタック構成:2本の VPN 接続が必要 VPN 接続 ① ─ IPv4 トラフィック用 各トンネル: /30 IPv4 CIDR(169.254.0.0/16) VPN 接続 ② ─ IPv6 トラフィック用 各トンネル: /30 IPv4 + /126 IPv6 CIDR(fd00::/8) ↕ 両方を Transit Gateway に接続して統合管理 対応 非対応
① IPv4 外部 + IPv4 内部
Outer パブリック IPv4 アドレス
Inner IPv4 パケット(/30 CIDR)
🚂 旧型線路 + 旧型コンテナ ─ 最も基本的な構成
VGW ✓ TGW ✓ Cloud WAN ✓
② IPv4 外部 + IPv6 内部
Outer パブリック IPv4 アドレス
Inner IPv6 パケット(/126 CIDR)
🚂 旧型線路 + 新型コンテナ ─ IPv6 移行の第一歩
VGW ✗ TGW ✓ Cloud WAN ✓
③ IPv6 外部 + IPv6 内部
Outer パブリック IPv6 アドレス
Inner IPv6 パケット(/126 CIDR)
🚂 新型線路 + 新型コンテナ ─ 完全 IPv6 移行
VGW ✗ TGW ✓ Cloud WAN ✓
④ IPv6 外部 + IPv4 内部
Outer パブリック IPv6 アドレス
Inner IPv4 パケット(/30 CIDR)
🚂 新型線路 + 旧型コンテナ ─ レガシー対応
VGW ✗ TGW ✓ Cloud WAN ✓

⚠️ 重要な制約ルール

IPv4/IPv6 VPN で覚えておくべき6つの制約

🚫 IPv4/IPv6 混載禁止

1本の VPN 接続で IPv4 と IPv6 のトラフィックを同時に流すことはできません。デュアルスタックには2本の VPN 接続が必要です。

🚫 既存 VPN の IPv6 後付け不可

既存の Site-to-Site VPN 接続に対して IPv6 サポートを追加することはできません。既存接続を削除して新規作成する必要があります。

⚡ VGW は外部 IPv6 非対応

外部トンネル IP に IPv6 を使えるのは Transit Gateway または Cloud WAN で終端する VPN のみ。VGW では使えません。

⚡ 外部 IPv6 は両端に必要

外部トンネル IP に IPv6 を使う場合、AWS 側と Customer Gateway 側の両方に IPv6 アドレスを割り当てる必要があります。

📌 Private IP VPN は IPv6 非対応

プライベート IP VPN は外部トンネル IP に IPv6 をサポートしません。RFC 1918 または CGNAT アドレスのみ使用可能です。

✅ スループット・MTU は同一

IPv6 VPN は IPv4 VPN と同じスループット(Gbps / PPS)、MTU、ルート制限をサポートします。暗号化方式も同一です。

📊 ゲートウェイタイプ別 対応比較表

どのゲートウェイでどの構成が使えるかを一覧で確認

構成パターン VGW
(仮想プライベートGW)
Transit Gateway Cloud WAN
① IPv4 外部 + IPv4 内部
② IPv4 外部 + IPv6 内部
③ IPv6 外部 + IPv6 内部
④ IPv6 外部 + IPv4 内部
プライベート IP VPN (IPv4のみ)

🔄 デュアルスタック VPN 構成

IPv4 と IPv6 の両方をハイブリッド接続するための構成

デュアルスタック構成 ─ Transit Gateway で2本の VPN を統合 🏢 オンプレミス Customer Gateway パブリック IPv4 アドレス デュアルスタック IPv4 + IPv6 ネットワーク VPN 接続 ① ─ IPv4 トラフィック用 外側: IPv4 / 内側: IPv4 / 各トンネル /30 CIDR(169.254.0.0/16) VPN 接続 ② ─ IPv6 トラフィック用 外側: IPv4 / 内側: IPv6 / 各トンネル /30 IPv4 + /126 IPv6 CIDR ☁️ AWS クラウド Transit Gateway VPN アタッチメント ×2 デュアルスタック VPC IPv4 + IPv6 サブネット 📌 CIDR ブロックの割り当て IPv4 用 VPN: 各トンネルに /30 IPv4 CIDR(169.254.0.0/16 範囲) IPv6 用 VPN: 各トンネルに /30 IPv4 CIDR + /126 IPv6 CIDR(fd00::/8 範囲) 🚂 旧型コンテナ用の列車と新型コンテナ用の列車を、同じ駅(TGW)に発着させる構成

💻 設定例(IPv6 VPN 作成)

AWS CLI / CloudFormation / Terraform による IPv6 対応 VPN の設定例

# 1. Customer Gateway 作成(IPv4 パブリック IP を指定)
aws ec2 create-customer-gateway \
  --type ipsec.1 \
  --bgp-asn 65000 \
  --ip-address 203.0.113.1

# 2. IPv6 内部パケット対応の VPN 接続を作成
#    TunnelInsideIpVersion を ipv6 に設定
aws ec2 create-vpn-connection \
  --type ipsec.1 \
  --customer-gateway-id cgw-0abc123def456 \
  --transit-gateway-id tgw-0xyz789ghi012 \
  --options '{"TunnelInsideIpVersion":"ipv6"}'

# 3. VPN 接続の状態を確認
aws ec2 describe-vpn-connections \
  --vpn-connection-ids vpn-0abc123456 \
  --query 'VpnConnections[0].State'
AWSTemplateFormatVersion: '2010-09-09'
Description: IPv6 Site-to-Site VPN with TGW

Resources:
  CustomerGateway:
    Type: AWS::EC2::CustomerGateway
    Properties:
      Type: ipsec.1
      BgpAsn: 65000
      IpAddress: 203.0.113.1

  VpnConnectionIPv6:
    Type: AWS::EC2::VPNConnection
    Properties:
      Type: ipsec.1
      CustomerGatewayId: !Ref CustomerGateway
      TransitGatewayId: !Ref TransitGateway
      # IPv6 内部パケットを有効化
      VpnTunnelOptionsSpecifications:
        - TunnelInsideIpVersion: ipv6
        - TunnelInsideIpVersion: ipv6
# Customer Gateway
resource "aws_customer_gateway" "main" {
  bgp_asn    = 65000
  ip_address = "203.0.113.1"
  type       = "ipsec.1"
}

# IPv6 VPN Connection (TGW に接続)
resource "aws_vpn_connection" "ipv6" {
  customer_gateway_id = aws_customer_gateway.main.id
  transit_gateway_id  = aws_ec2_transit_gateway.main.id
  type                = "ipsec.1"

  # IPv6 内部パケットを有効化
  tunnel_inside_ip_version = "ipv6"

  tunnel1_inside_ipv6_cidr = "fd00::/126"
  tunnel2_inside_ipv6_cidr = "fd00::4/126"
}

✅ ベストプラクティス vs ❌ アンチパターン

✅ ベストプラクティス
  • Transit Gateway を使ってデュアルスタック VPN を構成する
  • IPv6 移行は段階的に ─ まず ② の構成(IPv4 外 + IPv6 内)から開始
  • BGP を使用して IPv6 ルートを動的に交換する
  • VPC とオンプレミスの両方で IPv6 CIDR を事前に設計する
  • 2本の VPN 接続を独立して監視し、個別にフェイルオーバーを設計する
❌ アンチパターン
  • VGW で IPv6 VPN を使おうとする(非対応で失敗する)
  • 既存 VPN に IPv6 を「後から追加」できると思い込む
  • 1本の VPN で IPv4 + IPv6 トラフィックを混載しようとする
  • プライベート IP VPN で外部 IPv6 アドレスを使おうとする
  • CGW 側に IPv6 アドレスを割り当てずに IPv6 外部トンネルを作成する

🔧 トラブルシューティング

⚡ VPN 作成時に IPv6 オプションが表示されない

原因: VGW(仮想プライベートゲートウェイ)を選択している可能性

対処: ターゲットを Transit Gateway または Cloud WAN に変更してください
⚡ IPv6 トンネルが確立されない

原因: CGW 側に IPv6 アドレスが設定されていない

対処: CGW デバイスと AWS 側の両方に IPv6 アドレスを設定してください
⚡ IPv6 トラフィックが流れない

原因: VPC サブネットに IPv6 CIDR が関連付けられていない

対処: VPC・サブネットに IPv6 CIDR を追加し、ルートテーブルを更新してください
⚡ 既存 VPN に IPv6 を追加できない

原因: 仕様上、既存 VPN への IPv6 後付けは不可

対処: 既存 VPN を削除し、IPv6 オプションを有効にした新規 VPN を作成してください

📝 AWS 認定試験対策(ANS-C01 / SAP-C02)

🎯 試験で狙われるポイント
  • 1 「1本の VPN で IPv4 と IPv6 を同時に」→ 不可。デュアルスタックには2本の VPN 接続が必要
  • 2 「VGW で IPv6 VPN」→ 非対応。IPv6 は TGW / Cloud WAN でのみ使用可能
  • 3 「既存 VPN への IPv6 追加」→ 不可。削除 → 新規作成が必要
  • 4 IPv6 VPN トンネルの CIDR: /30 IPv4 + /126 IPv6(fd00::/8 範囲)
  • 5 外部 IPv6 を使う場合: AWS 側 + CGW 側の両方に IPv6 アドレスが必要
  • 6 Private IP VPN は外部 IPv6 アドレスをサポートしない(RFC 1918 / CGNAT のみ)
  • 7 問題文で「デュアルスタック」「IPv6 移行」が出たら → TGW + 2本の VPN 接続を想起する

❓ よくある質問

いいえ、できません。1本の VPN 接続は IPv4 トラフィックまたは IPv6 トラフィックのいずれか一方のみをサポートします。両方を送る場合は、2本の VPN 接続を作成してください。
いいえ、できません。既存の VPN 接続を削除して、IPv6 サポートを有効にした新しい VPN 接続を作成する必要があります。
VGW は「IPv4 外部 + IPv4 内部」の構成(パターン①)のみ対応しています。IPv6 を使う場合は Transit Gateway または Cloud WAN で VPN を終端させてください。
IPv6 VPN を有効にすると、各トンネルに2つの CIDR が割り当てられます。1つは /30 の IPv4 CIDR(169.254.0.0/16 範囲)、もう1つは /126 の IPv6 CIDR(fd00::/8 範囲)です。IPv6 CIDR は自分で指定することも、AWS に自動生成させることもできます。
いいえ、IPv6 VPN は IPv4 VPN と同じスループット(Gbps/PPS)、MTU、ルート制限をサポートします。IPsec 暗号化とキー交換の仕組みも同一です。
プライベート IP VPN は外部トンネル IP の IPv6 アドレスをサポートしていません。プライベート IP VPN では RFC 1918 アドレスまたは CGNAT アドレスのみ使用可能です。

📖 用語集

外部トンネル IP(Outer Tunnel IP)
VPN トンネル自体のエンドポイントアドレス。インターネット上でトンネルの両端を識別する IP アドレス。
内部パケット IP(Inner Packet IP)
VPN トンネル内をカプセル化されて流れる実際のアプリケーションデータの IP バージョン。
デュアルスタック
IPv4 と IPv6 の両方を同時に使用する構成。VPN では2本の接続を用いて実現する。
Transit Gateway(TGW)
複数の VPC や VPN 接続を一元的に接続するハブ。IPv6 VPN の終端先として推奨。
VGW(仮想プライベートゲートウェイ)
VPC 単位の VPN 接続ポイント。IPv4 のみ対応で、IPv6 VPN は非対応。
fd00::/8
IPv6 のユニークローカルアドレス(ULA)範囲。VPN トンネル内部の IPv6 CIDR として使用される。
Customer Gateway(CGW)
オンプレミス側の VPN エンドポイントを論理的に表す AWS リソース。
Private IP VPN
パブリック IP ではなく RFC 1918 / CGNAT アドレスを使う VPN。外部 IPv6 は非対応。

📋 チートシート

🚂 Site-to-Site VPN IPv4/IPv6 早見表
構成パターン数
4種類(外側 IPv4/IPv6 × 内側 IPv4/IPv6)
デフォルト
IPv4 外部 + IPv4 内部
VGW 対応
IPv4 外部 + IPv4 内部のみ(① のみ)
TGW / Cloud WAN
全4パターン対応
デュアルスタック
2本の VPN 接続が必要(混載不可)
IPv6 トンネル CIDR
/30 IPv4 + /126 IPv6(fd00::/8 範囲)
Private IP VPN
外部 IPv6 非対応(RFC 1918 / CGNAT のみ)
既存 VPN 移行
IPv6 後付け不可 → 削除して新規作成

Created by SSuzuki1063

AWS SAP Learning Resources