[アップデート]IPv6オンリーのリソースからNAT64/DNS64を使ってIPv4のリソースに接続出来るようになりました!
こんにちは!
コンサルティング部の繁松(shigematsu)です!
前回の記事でIPv6オンリーのサブネットとEC2インスタンスを作成することが可能になったことを紹介しました。
今日は、IPv6オンリーで作成したリソースからNAT64/DNS64を使ってIPv4のリソースに通信が出来るようになったアップデートを紹介します!
現在対応しているリージョンは、バージニア北部、オレゴン、北カリフォルニアの3リージョンのみとなっています。
本日より、Amazon Virtual Private Cloud(VPC)内のIPv6のAWSリソースは、NAT64(AWS NAT Gateway上)とDNS64(Amazon Route 53 Resolver上)を使用して、 IPv4サービスと通信することができます。ワークロードをIPv6ネットワークに移行しても、IPv4ネットワークやサービスへのアクセスは引き続き必要となります。 NAT64およびDNS64を使用すると、IPv6リソースは、同じVPCや接続されたVPC、オンプレミスネットワーク、またはインターネット内のIPv4サービスと通信できます。
構成図
前回
前回の記事で作成した環境の構成図です。
前回までの環境では、IPv6のリソースには接続可能でしたが、IPv4のリソースには接続が出来ませんでした。
今回
今回は以下の構成図となります。
DNS64を有効にし、ルートテーブルに赤文字記載のターゲットを追加することでIPv4との通信が可能になります。
DNS64の有効化を行うことでセッションマネージャーからの接続も可能となります。
※NAT64はNATゲートウェイで自動的に使用可能となっており、有効、無効を設定することは出来ません。
前提
- デュアルスタックVPC、IPv6オンリーのサブネット、NATゲートウェイは構築済み
IPv6オンリーサブネットの作成は前回の記事をご覧ください。
設定手順
DNS64の有効化
IPv6オンリーのサブネットを選択し[アクション]→[サブネットの設定を編集]をクリック
IPv6の有効化にチェックをいれ設定を保存
CLIで実施する場合
aws ec2 modify-subnet-attribute --subnet-id サブネットID –-enable-dns64
ルートテーブル
IPv6オンリーのサブネットに紐づくルートテーブルに以下の設定を追加
送信先 | ターゲット |
---|---|
0.0.0.0/0 | NATゲートウェイ |
64:ff9b::/96 | NATゲートウェイ |
::/0 | インターネットゲートウェイ |
このようになります。
CLIで実施する場合
aws ec2 create-route --route-table-id ルートテーブルID --destination-cidr-block 0.0.0.0/0 –-nat-gateway-id NATゲートウェイID
aws ec2 create-route --route-table-id ルートテーブルID –-destination-ipv6-cidr-block 64:ff9b::/96 –-nat-gateway-id NATゲートウェイID
aws ec2 create-route --route-table-id ルートテーブルID –-destination-ipv6-cidr-block ::/0 --gateway-id インターネットウェイID
※::/0宛のルートはegress-onlyインターネットゲートウェイをターゲットにすることも可能です。
動作確認
今回は、以下の宛先にcurlで接続をし動作確認を実施します。
IPv6の接続確認:ipv6.google.com
IPv4の接続確認:ipv4.google.com
DNS64が無効の場合
DNS64が無効の場合はセッションマネージャーから接続が出来ない為、踏み台サーバーを経由して接続しています。
IPv6宛は成功していますが、
Ipv4宛は失敗しています。
DNS64が有効の場合
DNS64を有効にして確認します。
セッションマネージャーから接続が可能になりました。
IPv6,IPv4どちらとも成功しています。
さいごに
DNS64/NAT64のアップデートについての記事でした。
IPv6オンリーで作成したリソースでも、IPv4との通信を簡単に可能にするといった、今後使用することが増えていきそうなアップデートでした。
早く日本リージョンでも使用出来るようになるといいですね!