NAT64とは
NAT64とは、IPv6アドレスをIPv4アドレスに変換する技術です。IPv4アドレスをIPv6アドレスに変換するNAT46 とは異なります。
NAT64の条件
NAT64はクライアントからサーバへの通信において、以下の場合に適用されます。
- クライアントはIPv6のみのホスト(IPv4アドレスを使用していない)
- サーバはIPv4のみのホスト(IPv6に対応していない)
- 通信のイニシエータがクライアント
NAT64を使用するための条件
1. クライアント側ネットワーク(IPv6のみ)とインターネット(IPv4をサポートすること)間にNAT64対応のゲートウェイが必要です。今回の場合SonicWall UTM Applianceがゲートウェイとなります。
2. クライアントのDNSサーバ設定にDNS64サーバを指定すること。
3. DNS64サーバのIP アドレスはIPv6アドレスであること(クライアントはIPv6のみのため)
DNS64サーバとは
AAAAの名前解決要求を受信した場合、まず、AAAAレコードの名前解決を行い、解決できない場合、Aレコードの名前解決を行います。Aレコードの名前解決に成功した場合、 (かつAAAAレコードの名前解決ができない場合)、IPv4アドレスをIPv6アドレスに変換して応答します。
IPv4/v6変換方法
Well-Known Prefixとして、64:ff9b::/96 が予約されています。
ホストアドレス部の32ビットは、IPv4アドレスの4バイトを、16進数に変更して使用します。
例:このケースでは、DNS64サーバはクライアントに対して、64:ff9b::c0a8:0110のAAAAレコードを返答します。
IPv4アドレス=192.168.1.16
10進数 16進数
192 c0
168 a8
1 01
16 10
IPv6アドレス=64:ff9b::c0a8:0110
SonicWallでのNAT64設定
構成例:
以下の構成での設定を説明します。尚、fd00::/8, 192.168.0.0/24, 10.0.0.0/8 はプライベートアドレスであり、説明のために使用しています。実際のインターネットの通信においては使用できないアドレスですのでご注意ください。
IPバージョン: NAT64のみを指定します。
- IPv6 変換前の送信元: 今回の例では、X0 IPv6 プライマリー静的アドレスサブネットを指定します。
- 変換後のIPv4 送信元: X1 IPを指定します。
- Pref64: 既知のPref64 を指定します。 既知のPref64 は上記で説明した、Well-Known Prefixの 64:ff9b::/96 です。
- 受信インターフェース: X0 もしくはに すべて を選択します。
- 発信インターフェース: X1 もしくは すべて を選択します。
5. 最後に追加をクリックします。
![]()
通信の流れ
- クライアントPC(fd00::0256) は、DNS64 Server(fd00:64::64)に、Web Serverの名前解決のためのDNSクエリを送信します。このパケットは通常のIPv6<>IPv6パケットなのでNAT変換されず、SonicWallでルーティングされます。
- DNSサーバはWeb ServerのIPv4アドレス: 10.64.0.64 を IPv6アドレス:64:ff9b::0a40:0040 に変換してクライアントに返信します。
- クライアントPCは64:ff9b::0a40:0040 をあて先とするパケットをSonicWallのX0に向けて送信します。
- SonicWallはこのパケットが、上記で作成したNAT64ルールにマッチするため( 送信元IPv6アドレス、および送信先のIPv6アドレスプレフィックス(64:ff9b::/96) 、送信元IP: 192.168.1.1 (X1 IP)、送信先IP 10.64.0.64(送信先IPv6アドレスより取得したIPv4アドレス)のIPv4パケットに変換してX1インターフェースより送信します。
- Web Serverからの戻りのパケットは、このNAT64ルールのコネクションキャッシュにマッチするため、IPv4から、IPv6への変換を行いクライアントPCに到達します。