VPC内のEC2にはglobal IPv6アドレスが割り当てられ、OSのIPv6設定も正常である。接続先は実際のAAAAを持つnative IPv6のHTTPS APIであり、IPv4専用の宛先ではない。
VPCにはEgress-only internet gatewayがあるが、対象サブネットの経路表には外向きIPv6ルートがまだない。宛先に一致する別の外向き経路はなく、EC2のSGとサブネットのNACLはIPv6のTCP 443と応答を許可済みである。
EC2開始の接続と応答を通し、gateway側でもインターネットから開始するIPv6接続を防ぎたい。既存のIPv4経路は維持する。
対象サブネットに必要な経路設定はどれか。
native IPv6宛先には::/0をEgress-only internet gatewayへ向ける。IPv4用の経路やDNS64/NAT64の変換用経路と区別し、SG/NACLの許可も確認する。
詳細解説
NAT64はIPv6からIPv4への変換にも使えるが、DNS64は既存AAAAのIPv6アドレスを変更しない。64:ff9b::/96の変換経路だけでは本問のnative IPv6宛先に一致しない。
通常のInternet Gatewayにはegress-onlyの制御はない。SGやNACLが拒否する場合があっても、gateway側でも外部開始の接続を防ぐという本問の要件とは区別する。
0.0.0.0/0はIPv4宛先に一致する経路であり、AAAAが示すIPv6宛先には一致しない。IPv4経路を追加しても、欠けているIPv6のデフォルトルートは補えない。
native IPv6宛先をIPv6の経路でegress-only gatewayへ送る。EC2開始の接続と応答を通し、gateway側でもインターネット開始のIPv6接続を防ぐ要件を満たす。
公式資料で確認する
以下の項目を公式資料の記述と照合して確認します。
公式資料と経路表の関連付け、EC2のIPv6アドレス、宛先のAAAA、SG/NACLを照合する。利用可能な承認済み検証環境では、IPv6 HTTPS接続とその応答を確認し、管理下の外部IPv6ホストからの新規接続も試す。設定と通信結果を分けて記録する。
参考にした公式資料
確認できる内容
対象経路表の::/0がegress-only gatewayを指し、native IPv6のHTTPS接続と応答が成功する。外部開始の接続は成立しないが、タイムアウトだけから拒否した制御を特定しない。SG/NACLも確認し、IPv4経路が維持されている。
理解のポイント
- native IPv6
- IPv6 default route
- NAT64
確認時の注意
- 確認環境: AWS公式SOA-C03試験ガイドとAWS公式ドキュメントの確認
- AWS公式SOA-C03試験ガイドと各サービスの公式ドキュメントを確認する。
基礎のおさらい
宛先のIPファミリーと経路表を確認する
宛先はAAAAが示すnative IPv6アドレスであり、IPv4専用ではない。対象サブネットに実際に関連付いた経路表へ、IPv6のデフォルトルート::/0を設定する。0.0.0.0/0はIPv4用なので代わりにならない。IPv6アドレスの割り当てだけでは外向き経路は作成されない。
外向き接続の応答と外部開始の接続を分ける
Egress-only internet gatewayはstatefulで、EC2から開始したIPv6通信とその応答を通し、インターネット側から開始するIPv6接続を防ぐ。通常のInternet Gatewayはこの外向き限定の制御を提供しない。EC2のSGとサブネットのNACLも別途必要で、egress-only gateway自体にSGを関連付けることはできない。
NAT64とDNS64の対象を区別する
NAT GatewayはNAT64によりIPv6からIPv4への接続にも対応する。IPv4専用宛先へのDNS64構成では、AAAAがない名前から64:ff9b::/96のアドレスを合成してNAT Gatewayへ経路を向ける。一方、元のAAAAがある名前ではDNS64はそのIPv6アドレスをそのまま返す。本問のnative IPv6宛先の経路は、この変換用プレフィックスでは補えない。