IPv6 / NAT46・NAT64


NAT46/DNS46
基本設定
前提
DNS46を使用する場合(ダイナミック登録)
DNS46を使用しない場合(スタティック登録)
NAT64/DNS64
基本設定
前提
設定手順


NAT46とNAT64は、IPv4パケットとIPv6パケットを相互変換することで、IPv4専用端末(以下、IPv4端末)とIPv6専用端末(以下、IPv6端末)との間の通信を実現する機能です。

IPv4端末はIPv4アドレス、IPv6端末はIPv6アドレスしか持っていないため、そのままでは両者の通信は行えませんが、IPv4端末に仮想的なIPv6アドレスを、IPv6端末に仮想的なIPv4アドレスを用意し、中継機器で適切なパケット変換を行えば、両者の通信が可能になります。

本製品では、パケットの変換を行う「NAT46」、「NAT64」と DNSリレーのオプション機能である「DNS46」、「DNS64」を併用することで、中継機器として以下の構成を実現することができます。

NAT46/DNS46

NAT46/DNS46は、IPv4端末にIPv6ネットワークへの接続性を提供するための機能です。

NAT46/DNS46機能を設定した本製品(図中「ルーター」)がIPv4ネットワークとIPv6ネットワークの間に位置するこの構成において、IPv4端末はおおよそ次の流れでIPv6端末と通信します。
  1. IPv4端末は、通信相手であるIPv6端末のIPv4アドレスを知るため、DNSサーバー(ここでは本製品のDNSリレー機能)に対し、IPv6端末のホスト名に対応するIPv4アドレス(Aレコード)を問い合わせます。

  2. 本製品のDNSリレー機能は、IPv4端末からのDNS問い合わせを上位のDNSサーバーに中継しますが、DNS46オプションが有効になっている場合は、Aレコード(IPv4アドレス)の問い合わせしか受けていなくても、上位DNSサーバーにはAレコードとAAAAレコード(IPv6アドレス)の両方を問い合わせます。

  3. 本構成の前提として、上位DNSサーバーには、IPv6端末の実IPv6アドレスと、それに対応するNAT46用の仮想的なIPv4アドレスが、それぞれAAAAレコード、Aレコードとして事前に登録されています。DNSリレー/DNS46機能から問い合わせを受けた上位DNSサーバーは、登録内容にしたがってIPv6端末のIPv6アドレスとIPv4アドレスを返答します。

  4. 本製品のDNSリレー/DNS46機能は、上位DNSサーバーが回答したIPv6アドレスとIPv4アドレスをIPv6端末用のNAT46変換ルール(4to6マッピング)としてダイナミック登録するとともに、IPv4端末にはIPv6端末の仮想的なIPv4アドレス(Aレコード)だけを返送します。

  5. IPv6端末の(仮想的な)IPv4アドレスを取得したIPv4端末は、同アドレスを宛先とするIPv4パケットを作成して送信します。

  6. 本製品のNAT46機能は、事前に設定されたIPv4端末のNAT46変換ルール(4to6マッピング)にもとづいてIPv4端末のIPv4アドレス(IPv4パケットの始点アドレス)を仮想的なIPv6アドレスに変換し、さらに手順4でダイナミック登録したIPv6端末用の変換ルール(6to4マッピング)にしたがってIPv6端末の仮想IPv4アドレス(IPv4パケットの終点アドレス)を同端末の実IPv6アドレスに変換して、IPv6パケットを作成し、IPv6端末宛てに送信します。
    (IPv6端末からの戻りパケットに対しても、NAT46機能が逆向きの変換を行います)

基本設定

ここでは、以下の構成を例として、NAT46の基本的な設定手順を説明します。


NAT46の設定においては、IPv4端末とIPv6端末の両方のアドレスを変換する必要があります。
本機能では、IPv4端末、IPv6端末の変換ルール(NAT46マッピング)をそれぞれ次の場所で定義します。

IPv4端末の変換ルール(4to6マッピング)はコマンドでスタティックに登録する必要がありますが、IPv6端末の変換ルール(6to4マッピング)はDNSサーバー側で事前登録したルールをDNS46によってダイナミックに取得する方式と、コマンドでスタティックに登録する方式があります。

以下では、それぞれの方法について設定手順を説明します。

前提

以下の説明では、次のような環境を仮定します。

DNS46を使用する場合(ダイナミック登録)

NAT46とDNS46を併用する場合の基本設定は次のとおりです。
  1. NAT46変換ルールの設定を取りまとめるNAT46マッピングインスタンスを作成します。これには4to6-mappingコマンドを使います。
    awplus(config)# 4to6-mapping NAT46
    

  2. IPv4端末のアドレス変換ルール(4to6マッピング)を定義します。これにはmap4to6コマンドを使います。
    ここでは、サブネット 192.168.1.0/24 内の全 IPv4 端末を対象として、これらの端末のIPv4アドレスを、IPv6ネットワーク側インターフェースである eth1 にアサインされているIPv6プレフィックス(2001:db8:2::/64)とオリジナルのIPv4アドレスの組み合わせた IPv6アドレスに変換するよう設定しています。
    awplus(config-4to6-mapping)# map4to6 subnet 192.168.1.0/24 ::/96 ipv6-interface eth1
    awplus(config-4to6-mapping)# exit
    
    Note
    すべてのIPv4端末をNAT46の変換対象にするには、map4to6コマンドで 0.0.0.0/0 を指定します。
    awplus(config-4to6-mapping)# map4to6 subnet 0.0.0.0/0 ::/96 ipv6-interface eth1
    

  3. NAT46トンネルインターフェースを作成します。これには、interfacetunnel mode map4to6コマンドを使います。
    awplus(config)# interface tunnel0
    awplus(config-if)# tunnel mode map4to6
    

  4. NAT46トンネルインターフェースにNAT46マッピングインスタンスを関連付けます。これには、tunnel 4to6-mappingコマンドを使います。
    awplus(config-if)# tunnel 4to6-mapping NAT46
    

  5. NAT46トンネルインターフェースはIPv4パケットとIPv6パケットを相互変換するため、ip addressコマンドでIPv4インターフェースとして、ipv6 enableコマンドでIPv6インターフェースとして設定します。また、TCPパケットに適切なMSSが設定されるようMSS書き換えの設定をip tcp adjust-mssコマンドで行います。
    Note
    NAT46トンネルインターフェースのIPv4アドレスには、ネットワーク上で使われていない任意のアドレスを設定してください。
    awplus(config-if)# ip address 192.168.0.1/32
    awplus(config-if)# ipv6 enable
    awplus(config-if)# ip tcp adjust-mss pmtu
    awplus(config-if)# exit
    

  6. IPv4端末からIPv6端末の仮想IPv4アドレス宛てのIPv4パケットがNAT46トンネルインターフェースに転送されるよう、ip routeコマンドでIPv4のスタティック経路を設定します。
    awplus(config)# ip route 192.168.2.0/24 tunnel0
    

  7. IPv4端末にIPv6端末の仮想IPv4アドレスを通知するとともに、IPv6端末のアドレス変換ルール(6to4マッピング)をダイナミックに取得するため、DNSリレーおよびDNS46機能の設定を行います。ip name-serverコマンドでDNSサーバーアドレスを指定し、ip dns forwardingコマンドでDNSリレーを有効化、さらに ip dns forwarding dns46コマンドでDNS46機能を有効化し、ip dns forwarding dns46(mapping)コマンドでNAT46マッピングインスタンスの指定を行います。
    awplus(config)# ip name-server 2001:db8:2::3
    awplus(config)# ip dns forwarding
    awplus(config)# ip dns forwarding dns46
    awplus(config)# ip dns forwarding dns46 NAT46
    
    Note
    この例では上位DNSサーバー(ip name-server)をIPv6アドレスで指定していますが、変換ルール(6to4マッピング)をAAAAレコードとAレコードで登録してありさえすれば、DNSサーバーへのアクセスはIPv6でもIPv4でもかまいません。
    Note
    DNS46を使用する場合は、下記の仕様にご留意ください。

    1. IPv6端末用のNAT46変換ルール(6to4マッピング)をDNSサーバーに登録しておく必要があります。
      このとき、実IPv6アドレスをAAAAレコード、仮想IPv4アドレスをAレコードとして、対になるよう登録してください。

    2. IPv4端末からのIPv4アドレス(Aレコード)問い合わせに対し、DNSリレーのDNS46機能はAレコードとAAAAレコードの両方を上位DNSサーバーに問い合わせます。

    3. 上位DNSサーバーからの回答に応じて、DNS46機能は次の動作を行います。
      • 上位DNSサーバーからIPv4アドレス(Aレコード)とIPv6アドレス(AAAAレコード)が対で返ってきた場合は、これらを一対一の6to4マッピングとしてダイナミックに登録し、IPv4端末にIPv4アドレス(Aレコード)を返答します。
        AレコードとAAAAレコードがそれぞれ複数返ってきた場合は、IPv4アドレスとIPv6アドレスを返却順に組み合わせて、複数の6to4マッピングを登録します。

      • 上位DNSサーバーから返ってきたIPv4アドレス(Aレコード)とIPv6アドレス(AAAAレコード)の数が異なる場合は、6to4マッピングを登録せず、端末にはSERVFAIL(Server Failure)エラーを返します。

    4. ip dns forwarding dns46 subnetコマンドを使うことで、前項 3 におけるDNS46機能の動作を特定のIPv4/IPv6アドレスサブネット(アドレス範囲)だけに限定することもできます。この場合は、6to4マッピングをダイナミックに登録したいIPv4/IPv6サブネットをすべて指定してください。
      awplus(config)# ip dns forwarding NAT46 subnet 192.168.2.0/24
      awplus(config)# ip dns forwarding NAT46 subnet 2001:db8:2::/64
      
設定は以上です。

■ アドレス変換ルール(NAT46マッピング)はshow 4to6-mappingコマンドで確認できます。

■ DNS46機能の設定はshow ip dns forwarding dns46コマンドで確認できます。

■ DNS46機能によって自動登録されたNAT46変換ルール(ダイナミックマッピング)はclear 4to6-mappingコマンドで削除できます。

■ ダイナミックマッピングのアドレス範囲は、ip dns forwarding dns46 subnetコマンドで制限できます。同コマンド未設定時は無制限です。

■ ダイナミックマッピングの登録数や有効期間には、limitsコマンドで上限を設けることができます。初期設定では無制限です。

DNS46を使用しない場合(スタティック登録)

NAT46では、DNS46を使用せず、IPv6端末のアドレス変換ルール(6to4マッピング)をスタティックに設定することもできます。
その場合、IPv4端末はDNSを利用してホスト名からIPv6端末の仮想IPv4アドレスを調べることができないため、IPv4端末の利用者に対し、IPv6端末の仮想IPv4アドレスをあらかじめ通知しておく、IPv6端末のホスト名と仮想IPv4アドレスの対応を記述したhostsファイルを配布しておく、あるいは、IPv4端末用のDNSサーバーにIPv6端末の仮想IPv4アドレスを登録しておく、などの対策が必要になります。
  1. NAT46変換ルールの設定を取りまとめるNAT46マッピングインスタンスを作成します。これには4to6-mappingコマンドを使います。
    awplus(config)# 4to6-mapping NAT46
    

  2. IPv4端末のアドレス変換ルール(4to6マッピング)を定義します。これにはmap4to6コマンドを使います。
    ここでは、サブネット 192.168.1.0/24 内の全 IPv4 端末を対象として、これらの端末のIPv4アドレスを、IPv6ネットワーク側インターフェースである eth1 にアサインされているIPv6プレフィックス(2001:db8:2::/64)とオリジナルのIPv4アドレスの組み合わせた IPv6アドレスに変換するよう設定しています。
    awplus(config-4to6-mapping)# map4to6 subnet 192.168.1.0/24 ::/96 ipv6-interface eth1
    
    Note
    すべてのIPv4端末をNAT46の変換対象にするには、map4to6コマンドで 0.0.0.0/0 を指定します。
    awplus(config-4to6-mapping)# map4to6 subnet 0.0.0.0/0 ::/96 ipv6-interface eth1
    

  3. IPv6端末のアドレス変換ルール(6to4マッピング)を定義します。これにはmap6to4コマンドを使います。
    ここでは、IPv6端末の実IPv6アドレスである 2001:db8:2::5 と仮想IPv4アドレス 192.168.2.5 を一対一で相互変換するよう設定します。
    awplus(config-4to6-mapping)# map6to4 single 2001:db8:2::5 192.168.2.5
    awplus(config-4to6-mapping)# exit
    

  4. NAT46トンネルインターフェースを作成します。これには、interfacetunnel mode map4to6コマンドを使います。
    awplus(config)# interface tunnel0
    awplus(config-if)# tunnel mode map4to6
    

  5. NAT46トンネルインターフェースにNAT46マッピングインスタンスを関連付けます。これには、tunnel 4to6-mappingコマンドを使います。
    awplus(config-if)# tunnel 4to6-mapping NAT46
    

  6. NAT46トンネルインターフェースはIPv4パケットとIPv6パケットを相互変換するため、ip addressコマンドでIPv4インターフェースとして、ipv6 enableコマンドでIPv6インターフェースとして設定します。また、TCPパケットに適切なMSSが設定されるようMSS書き換えの設定をip tcp adjust-mssコマンドで行います。
    Note
    NAT46トンネルインターフェースのIPv4アドレスには、ネットワーク上で使われていない任意のアドレスを設定してください。
    awplus(config-if)# ip address 192.168.0.1/32
    awplus(config-if)# ipv6 enable
    awplus(config-if)# ip tcp adjust-mss pmtu
    awplus(config-if)# exit
    

  7. IPv4端末からIPv6端末の仮想IPv4アドレス宛てのIPv4パケットがNAT46トンネルインターフェースに転送されるよう、ip routeコマンドでIPv4のスタティック経路を設定します。
    awplus(config)# ip route 192.168.2.0/24 tunnel0
    

設定は以上です。

■ アドレス変換ルール(NAT46マッピング)はshow 4to6-mappingコマンドで確認できます。

NAT64/DNS64

NAT64/DNS64は、IPv6端末にIPv4ネットワークへの接続性を提供するための機能です。

NAT64/DNS64機能を設定した本製品(図中「ルーター」)がIPv6ネットワークとIPv4ネットワークの間に位置するこの構成において、IPv6端末はおおよそ次の流れでIPv4端末と通信します。
  1. IPv6端末は、通信相手であるIPv4端末のIPv6アドレスを知るため、DNSサーバー(ここでは本製品のDNSリレー機能)に対し、IPv4端末のホスト名に対応するIPv6アドレス(AAAAレコード)を問い合わせます。

  2. 本製品のDNSリレー機能は、IPv6端末からのDNS問い合わせを上位のDNSサーバーに中継しますが、DNS64オプションが有効になっている場合は、AAAAレコード(IPv6アドレス)の問い合わせしか受けていなくても、上位DNSサーバーにはAAAAレコード(IPv6アドレス)とAレコード(IPv4アドレス)の両方を問い合わせます。

  3. DNSリレー/DNS64機能から問い合わせを受けた上位DNSサーバーは、登録内容にしたがってIPv4端末のAAAAレコード(IPv6アドレス)とAレコード(IPv4アドレス)を返答しますが、IPv4端末はIPv6アドレスを持っていないため、AAAAレコード(IPv6アドレス)の問い合わせに対してはNXDomain(該当ドメインなし)で答えます。

  4. 本製品のDNSリレー/DNS64機能は、上位DNSサーバーから受け取ったAレコードに含まれるIPv4アドレスの前に、あらかじめ設定されたIPv6プレフィックスを連結し、IPv4端末の仮想的なIPv6アドレスを組み立て、これをAAAAレコード(IPv6アドレス)としてIPv6端末に返送します。

  5. IPv4端末の(仮想的な)IPv6アドレスを取得したIPv6端末は、同アドレスを宛先とするIPv6パケットを作成して送信します。

  6. 本製品のNAT64機能は、事前に設定されたIPv6端末のNAT64変換ルール(6to4マッピング)にもとづいてIPv6端末のIPv6アドレス(IPv6パケットの始点アドレス)を仮想的なIPv4アドレスに変換し、さらにIPv4端末の仮想IPv6アドレス(IPv6パケットの終点アドレス)を同端末の実IPv4アドレスに変換して、IPv4パケットを作成し、IPv4端末宛てに送信します。
    (IPv4端末からの戻りパケットに対しても、NAT64機能が逆向きの変換を行います)
Note
図中「IPv4端末」がIPv4/IPv6のデュアルスタックである場合など、上記手順3でDNSサーバーからIPv4端末の有効なAAAAレコード(IPv6アドレス)が返ってきた場合、本製品のDNSリレー/DNS64機能は手順4で当該AAAAレコードをそのままIPv6端末に返送します。
また、その場合、本製品のNAT64機能は手順6でIPv6パケットからIPv4パケットへの変換を行わず、IPv6端末からのIPv6パケットをそのまま転送します(本製品がIPv4ネットワーク側(図中「ルーター」の右側)にもIPv6インターフェースを持っている必要があります)。

基本設定

ここでは、以下の構成を例として、NAT64の基本的な設定手順を説明します。


前提

NAT64の設定にあたっては事前に下記のアドレスを把握・決定しておく必要があります。

これらを踏まえ、以下の説明では次のような環境を仮定します。

設定手順

NAT64とDNS64を併用する場合の基本設定は次のとおりです。
Note
以下、「NAT46マッピング」、「NAT46マッピングインスタンス」、「NAT46トンネルインターフェース」といった名称が登場しますが、これらは「NAT46」機能と「NAT64」機能で共通に使用される設定要素です。
また、4to6-mappingshow 4to6-mappingtunnel 4to6-mappingtunnel mode map4to6などのコマンドについても同様です。
  1. NAT64変換ルールの設定を取りまとめるNAT46マッピングインスタンスを作成します。これには4to6-mappingコマンドを使います。
    awplus(config)# 4to6-mapping NAT64
    

  2. IPv6端末のアドレス変換ルール(6to4マッピング)を定義します。これにはmap6to4コマンドを使います。
    ここでは、2001:db8::/96 にマッチする IPv6 端末を対象として、これらの端末のIPv6アドレス末尾32ビットを取り出して、同端末の仮想IPv4アドレスを生成するよう設定しています。
    この設定により、IPv6端末のIPv6アドレス「2001:db8::10.1.1.5」はIPv4ネットワーク側では「10.1.1.5」になります。
    awplus(config-4to6-mapping)# map6to4 subnet 2001:db8::/96 0.0.0.0/0
    

  3. IPv4端末のアドレス変換ルール(4to6マッピング)を定義します。これにはmap4to6コマンドを使います。
    ここでは、すべてのIPv4端末を対象として、これらの端末のIPv4アドレスに固定的なIPv6プレフィックス「64:ff9b::/96」を連結して、同端末の仮想IPv6アドレスを生成するよう設定します。
    この設定により、IPv4端末のIPv4アドレス「192.0.2.5」はIPv6ネットワーク側では「64:ff9b::192.0.2.5」になります。
    awplus(config-4to6-mapping)# map4to6 subnet 0.0.0.0/0 64:ff9b::/96
    awplus(config-4to6-mapping)# exit
    

  4. NAT46トンネルインターフェースを作成します。これには、interfacetunnel mode map4to6コマンドを使います。
    awplus(config)# interface tunnel0
    awplus(config-if)# tunnel mode map4to6
    

  5. NAT46トンネルインターフェースにNAT46マッピングインスタンスを関連付けます。これには、tunnel 4to6-mappingコマンドを使います。
    awplus(config-if)# tunnel 4to6-mapping NAT64
    

  6. NAT46トンネルインターフェースはIPv4パケットとIPv6パケットを相互変換するため、ip addressコマンドでIPv4インターフェースとして、ipv6 enableコマンドでIPv6インターフェースとして設定します。また、TCPパケットに適切なMSSが設定されるようMSS書き換えの設定をip tcp adjust-mssコマンドで行います。
    Note
    NAT46トンネルインターフェースのIPv4アドレスには、ネットワーク上で使われていない任意のアドレスを設定してください。
    awplus(config-if)# ip address 192.168.0.1/32
    awplus(config-if)# ipv6 enable
    awplus(config-if)# ip tcp adjust-mss pmtu
    awplus(config-if)# exit
    

  7. IPv6端末からIPv4端末の仮想IPv6アドレス宛てのIPv6パケットがNAT46トンネルインターフェースに転送されるよう、ipv6 routeコマンドでIPv6のスタティック経路を設定します。
    awplus(config)# ipv6 route 64:ff9b::/96 tunnel0
    

  8. IPv4端末からIPv6端末の仮想IPv4アドレス宛てのIPv4パケットがNAT46トンネルインターフェースに転送されるよう、ip routeコマンドでIPv4のスタティック経路を設定します。
    awplus(config)# ip route 10.1.1.0/24 tunnel0
    

  9. DNSリレーおよびDNS64機能の設定を行います。ip name-serverコマンドでDNSサーバーアドレスを指定し、ip dns forwardingコマンドでDNSリレーを有効化、さらに ip dns forwarding dns64コマンドでDNS64機能を有効化するとともにNAT46マッピングインスタンスを指定します。
    awplus(config)# ip name-server 192.0.2.3
    awplus(config)# ip dns forwarding
    awplus(config)# ip dns forwarding dns64 NAT64
    
    Note
    この例では上位DNSサーバー(ip name-server)をIPv4アドレスで指定していますが、DNSサーバーへのアクセスはIPv6でもIPv4でもかまいません。
設定は以上です。

■ アドレス変換ルール(NAT46マッピング)はshow 4to6-mappingコマンドで確認できます。


(C) 2019 - 2025 アライドテレシスホールディングス株式会社

PN: 613-002735 Rev.AF