IPv6 / NAT46


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


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

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

本製品では、パケットの変換を行う「NAT46」と DNSリレーのオプション機能である「DNS46」を併用することで、次のような構成を実現することができます。

この構成において、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変換ルール(レスポンダーマッピング)としてダイナミック登録するとともに、IPv4端末にはIPv6端末の仮想的なIPv4アドレス(Aレコード)だけを返送します。

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

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

本解説編では、NAT46/DNS46の基本的な設定方法について説明します。

基本設定

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

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

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

前提

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

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

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

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

  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端末のアドレス変換ルール(レスポンダーマッピング)をダイナミックに取得するため、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 test
    
    Note
    この例では上位DNSサーバー(ip name-server)をIPv6アドレスで指定していますが、変換ルール(レスポンダーマッピング)をAAAAレコードとAレコードで登録してありさえすれば、DNSサーバーへのアクセスはIPv6でもIPv4でもかまいません。
    Note
    DNS46を使用する場合は、下記の仕様にご留意ください。

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

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

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

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

    4. ip dns forwarding dns46 subnetコマンドを使うことで、前項 3 におけるDNS46機能の動作を特定のIPv4/IPv6アドレスサブネット(アドレス範囲)だけに限定することもできます。この場合は、レスポンダーマッピングをダイナミックに登録したいIPv4/IPv6サブネットをすべて指定してください。
      awplus(config)# ip dns forwarding test subnet 192.168.2.0/24
      awplus(config)# ip dns forwarding test 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端末のアドレス変換ルール(レスポンダーマッピング)をスタティックに設定することもできます。
その場合、IPv4端末はDNSを利用してホスト名からIPv6端末の仮想IPv4アドレスを調べることができないため、IPv4端末の利用者に対し、IPv6端末の仮想IPv4アドレスをあらかじめ通知しておく、IPv6端末のホスト名と仮想IPv4アドレスの対応を記述したhostsファイルを配布しておく、あるいは、IPv4端末用のDNSサーバーにIPv6端末の仮想IPv4アドレスを登録しておく、などの対策が必要になります。
  1. NAT46変換ルールの設定を取りまとめるNAT46マッピングインスタンスを作成します。これには4to6-mappingコマンドを使います。
    awplus(config)# 4to6-mapping test
    

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

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

  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コマンドで確認できます。


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

PN: 613-002107 Rev.AN