VPC内部をIPv6で構成してみたときのメモ
主要なことはIPv6でだいたい完結できるけれども、まだかゆいところに手が届くところまでには至らないと感じた
Amazon VPCをIPv4で構成する場合との主な違い
- インターネット側からのアクセスをIPv6のみで受け付ける場合、Elastic IPは不要(IPv6アドレスは既にグローバルIPアドレスのため)
- privateサブネットからインターネットとのIPv6通信にはEgress-Onlyインターネットゲートウェイを使用する
AWSのIPv6対応状況
AWSの中でまだ対応していないサービスや、一部制約のあるサービスがある
対応状況は変化するため、IPv6対応状況の詳細は一次情報を参照
設定ポイント
VPC作成
- 「VPCの設定」->「IPv6 CIDRブロック」において、「Amazon提供のIPv6 CIDRブロック」を有効にする
publicサブネット
- 「IPv4 CIDRブロック」にて、「IPv4 CIDRがありません」を有効にする
- 「IPv6 CIDRブロック」にて、「手動入力」を有効にする
- 「IPv6 VPC CIDRブロック」にて、VPCに割り当てられたCIDRブロックを選択する
- 「IPv6サブネットCIDRブロック」にて、VPCに割り当てられたCIDRブロックから、適当に割り当てる
privateサブネット
- publicサブネットと同様に作成する
isolatedサブネット
- 他のサブネットと同様に作成する
インターネットゲートウェイ
- 普通に作る
Egress-Onlyインターネットゲートウェイ
- privateサブネットから外のインターネットにIPv6でアクセスしたい場合は、NATゲートウェイの代わりにEgress-Onlyインターネットゲートウェイを作成する
- Egress-Only インターネットゲートウェイを使用してアウトバウンド IPv6 トラフィックを有効にする(docs.aws.amazon.com)
ルートテーブル
1. publicサブネット用のルートテーブル
- 「::/0」宛のターゲットをインターネットゲートウェイに向ける
2. privateサブネット用のルートテーブル
- 「::/0」宛のターゲットをEgress-Onlyインターネットゲートウェイに向ける
3. isolatedサブネット用のルートテーブル
- IPv4の場合と特別な違いはない
NACL
- IPv4とIPv6とで特別な違いはない
セキュリティグループ
- IPv4とIPv6とで特別な違いはない
DNS64/NAT64
- privateサブネットからVPC外のネットワークとIPv4で通信をする場合にはDNS64/NAT64を有効にする
-
DNS64 と NAT64(docs.aws.amazon.com)
- DNS64を有効にする
- サブネットの設定から、「アクション」->「サブネットの設定を編集する」で画面遷移し、DNS64を有効にする
- サブネットの設定から、「アクション」->「サブネットの設定を編集する」で画面遷移し、DNS64を有効にする
- NAT64を使う
- NAT64機能そのものは、NATゲートウェイの機能で、デフォルトで最初から有効になっており、無効にすることはできない
- NATゲートウェイを、通信したいIPv4ネットワークと疎通できるサブネットに置く
- IPv6専門のサブネットに関連づけるルートテーブルで、通信対象のIPv4 CIDRブロック宛のルーティング先をNATゲートウェイに向ける
VPC内に設置するもの
EC2
- EC2作成時にIPv6アドレスを割り当てることができる
ロードバランサー
- ロードバランサーのうち、ALBとELBは、IPv6に対応している
RDS
- RDS作成時にネットワークタイプとして、デュアルスタックモードを有効にし、IPv4とIPv6の両方と通信できるようにする
その他
インスタンスメタデータ
インスタンスメタデータのIPv6アドレスは、[fd00:ec2::254]
インスタンスメタデータの取得(docs.aws.amazon.com/)
DNSサーバ
Route 53 ResolverのIPv6アドレスは、[fd00:ec2::253]
NTP
Amazon Time Sync ServiceのIPv6アドレスは、[fd00:ec2::123]
CloudFront
クライアントとCloudFrontとの通信はIPv6対応
CloudFrontとオリジンとの通信はIPv4のみ