DNS64とは
DNS64は、AAAAレコードを持たずAレコードだけを持つ名前について、NAT64で使える合成AAAAレコードを生成するDNS機能です。読みはディーエヌエス・シックスティーフォーです。
IPv6専用クライアントがAAAAを問い合わせたとき、DNS64はまず本物のAAAAを探します。利用可能なAAAAがなく、同じ名前のAレコードがあれば、NAT64用プレフィックスとIPv4アドレスを組み合わせたAAAAレコードを合成します。
DNS64はDNS応答を作る機能で、パケットを変換しません。合成IPv6アドレスへ送られた通信をIPv4へ変換するのはNAT64です。

AAAA問い合わせへの三つの結果を分ける
ネイティブIPv6の接続先を優先し、合成処理へ進まない
Pref64と各AのIPv4アドレスをRFC 6052形式で組み合わせる
元のDNS結果を基に、存在しないIPv4宛先を作らない
合成アドレスは、NAT64と同じPref64を使う
DNS64はAレコードの32ビットIPv4アドレスを、NAT64で設定されたPref64::/nへ埋め込みます。NAT64が別のプレフィックスを待っていると、合成した宛先が変換装置へ届きません。
一般の端末はDNS64の存在を意識せず、受け取ったAAAAへIPv6接続します。端末がPref64を知る必要がある機能では、ipv4only.arpaを利用するRFC 7050の発見手順などがあります。
IPv4アドレスの直書きには働かない
アプリがURLや設定へ192.0.2.33のようなIPv4リテラルを直接書いている場合、DNS問い合わせ自体がないためDNS64は合成できません。IPv4ソケットだけを使う古いアプリも、合成AAAAを利用できない場合があります。
この互換性を端末側で補う仕組みが464XLATです。一方、名前を使いIPv6ソケットで接続できるアプリは、DNS64とNAT64による一段の状態保持型変換を利用できます。
DNSSECでは、権威の署名とローカル合成を区別する
DNSSECは権威DNSが作ったRRsetの改変を検知します。DNS64がAから新しいAAAAを作ると、その合成AAAAに権威側のRRSIGは存在しません。
検証と合成を同じDNS64リゾルバーで行えば、権威から得たAや不存在証明を検証したうえでローカル結果を返せます。端末自身がDNSSECを検証する構成では、CD・DOビットと応答方針を含むRFC 6147の条件を満たす必要があります。
仕様の確認資料:RFC 6147「DNS64」、RFC 6052「IPv6 Addressing of IPv4/IPv6 Translators」、RFC 7050「Discovery of the IPv6 Prefix Used for IPv6 Address Synthesis」