[アップデート]すべての商用リージョンとGovCloud(米国)リージョンで、NAT64/DNS64が利用可能になりました!

IPv6アドレスの利用に大きく前進したのではないかと思います。まずは是非、使ってみてください。
2022.03.01

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは!AWS事業本部コンサルティング部のたかくに(@takakuni_)です。

みなさん、IPv6使っていますかー?

今回は、タイトルの通り、NAT64/DNS64を使用したIPv6リソースからIPv4リソースへの接続が商用リージョンと、GovCloud(米国)リージョンでサポートされたのでご紹介します。

既に、米国など一部リージョンでサポートされている機能が東京リージョンなどで使えるようになりました。

詳しい使い方は、以下ブログをご参照ください。

ちなみに、NAT64の読み方は「NAT six to four」で、DNS64は「DNS six to four」です。

今回は、NAT64/DNS64の仕組みをご説明できたらと思います。

NAT64/DNS64ってどこにあるの?

まずは、NAT64/DNS64は、どちらも機能の1つでサービスではありません。

「NAT64」は、NAT Gatewayの機能です。AWS管理の機能で自身で設定することはありません。

「DNS64」は、Amazon Route 53 Resolverの機能です。サブネット単位で「有効/無効」を設定します。

仕組み

仕組みの都合上、DNS64からご説明します。

DNS64

DNS64では、AAAAレコードの名前解決IPv6アドレスの生成を担っています。

主な流れは以下の通りです。

  1. IPv6ホストからDNSを呼び出しが行われる。
  2. DNS64は、呼び出されたDNSのAAAAレコード(IPv6のアドレス)を探す。
  3. AAAAレコードが存在する場合、AAAAレコードのIPv6アドレスを返す。
  4. 存在しない場合、Aレコードのアドレスに64:ff9b::/96プレフィックスを付けてIPv6アドレスを合成する。
  5. 合成したIPv6レコードを返す。

64:ff9b::/96とは、IETFに提案されたRFC 6052標準で定義されているプレフィックスです。

固定値の認識で、今のところは問題ないです。AWSでIPv6設計する際は、覚えておきたい文字列です。

例えば、Aレコードが、「34.207.250.62」の場合に合成されるIPv6アドレスは以下になります。

NAT64

NAT64では、IPv4アドレスの抽出応答ホストのIPv6アドレス再作成を担います。

主な流れは以下の通りです。

前述の合成されたIPv6アドレス「64:ff9b::fff:22cf:fa3e」を使用してご説明します。

  1. 応答ホストからIPv6アドレス向けに通信が流れる。
  2. NAT64は、IPv6プレフィックス(64:ff9b::/96)を認識し、IPv4アドレスに変換してIPv4接続を行う。
  3. 応答パケットで、宛先ホストのIPv6アドレスを再作成、IPv6プレフィックス(64:ff9b::/96)を加える。
  4. 応答ホストへパケットを転送する。

そのため、NAT64を行うためには、IPv6ホストが配置されているサブネットルートテーブルに、

CIDRが64:ff9b::/96で、ターゲットがNAT Gateway」のルートが必要になります。

参考情報

まとめ

今回の、アップデートでIPv6の利用に大きく前進したのではないかと思います。

まずは是非、お試しいただければと思います。

IPv6アドレス設計で、ご参考にしていただければ幸いです。

以上、AWS事業本部コンサルティング部のたかくに(@takakuni_)でした!