NAT64およびDNS64技術のご紹介
tech_team インターネットの技術IPv6の普及には、その段階に応じて個々の端末の持つIPアドレスに対してより多くの到達性を与えるために、さまざまな仕組みが考えられ利用されてきました。
IPv6の導入が始まった段階では、IPv4のネットワークが海のような広大な状態であるのに対し、IPv6はネットワークの小規模な範囲からの対応が進むことから、島のような状態であると例えられることがありました。現在はそのIPv6の「島」の拡大が進んでいる状態であるといえます。
一方、IPv6の普及がこのまま進みますと、いずれは広大となったIPv6のネットワークに接続した端末から、徐々に規模を縮小し、逆に島のような状況となったIPv4ネットワークにアクセスするような状況となることが考えられます。そのような状況で助けとなるのが、今回ご紹介するNAT64とDNS64技術です。
先日JPNIC内の試験環境で、NAT64およびDNS64技術の試験環境を構築し動作の確認を行いました。今回はその技術概要について簡単にご紹介をさせていただきます。試験では、IPv4アドレスのみを解決することが可能なホームページへ、IPv6アドレスのみを与えたWindows PCよりアクセスを行い、問題なくブラウジングができることを確認しました。
構築した試験環境の概要は以下となります。DNS64サーバーはunboundおよびBINDで構築し、Google社のPublic DNS64を利用しての動作の確認も行いました。また、NAT64には、NIC MexicoとITESMのオープンソースプロジェクトであるJoolを利用して構築しました。
それではNAT64技術の紹介に移りたいと思います。NAT64はDNS64と併用して利用されるIPv6とIPv4アドレスの変換技術で、IPv6アドレスのみを持つ端末から、IPv4アドレスのみを持つサーバーへの接続を可能とすることが特徴です。
以下に動作原理の概要を紹介いたします。まず、現在一般的にIPv6対応とした場合にとられるIPv4アドレスおよびIPv6アドレスのデュアルスタックの端末からは、IPv4アドレスのみを持つサーバーやIPv6アドレスのみを持つサーバーへそれぞれ通信を行うことができます。
しかしながら、このままではIPv6アドレスのみを持つ端末からはIPv4アドレスのみをもつサーバーへ通信を行うことはできません。
そこで、NAT64およびDNS64を設置し、IPv6アドレスのみを持つ端末からIPv4アドレスのみを持つサーバーへの通信を仲介することで通信が成立するようにします。
DNS64でドメイン名の解決においてIPアドレスの変換を行い、その後、NAT64が実際の通信の仲介を行います。その動作フローは以下のようになります。
このNAT64およびDNS64技術ですが、近年では、Apple社より、申請されるアプリについて当技術を利用したネットワークでの動作を必須とするアナウンスがなされたことからも注目を集めております。
現在のIPv6対応されたネットワークでは、IPv4アドレスおよびIPv6アドレスのデュアルスタックの構成がとられることが一般的と考えられます。しかしながら、 このような技術の発展により、特に新興のネットワークオペレータや、IoTなどに類するある程度の規模の新たにIPアドレスを必要とするデバイスが接続されるケースなどでは、プライベートアドレスであっても、IPv4アドレスの配布を行わないネットワークが現れる可能性があるといえるのではないでしょうか。
また、既存のネットワーク環境であっても、IPv4プライベートアドレスの配布を行わないことにメリットがある場合や、利用用途や特性などから、端末の利用する通信のコントロールが可能である場合など、このような技術の採用が行われる可能性があるのではないかと考えられます。IPv4プライベートアドレスの利用には、約1600万強というアドレス空間の規模による資源の有限性や、ネットワークの統合などの構成の変更時にリナンバリングが求められることがあるなど、運用上の工夫が求められる場合があります。そのため、状況によっては今後、NAT64およびDNS64の利用によってIPv4アドレスが配布されない構成が、IPv6対応ネットワーク構築の一つのオプションとなってゆくかもしれません。
なお、RFC7269 NAT64 Deployment Options and Experienceでは、ユースケースとしてNAT64 Carrier-Grade NAT (NAT64-CGN)と、NAT64 server Front End (NAT64-FE)の紹介がされているほか、冗長構成のデザイン、留意点などが記述されています。検討時などにご参照されれば参考となるかもしれません。
JPNICでは現在、NAT64およびDNS64の試験環境構築についてのハンズオンの企画を行っております。
こちらもご興味などございましたら、ご意見やフィードバックをいただければ幸いです。
参考文献
- RFC6052 “IPv6 Addressing of IPv4/IPv6 Translators”
- https://tools.ietf.org/html/rfc6052
- RFC6144 “Framework for IPv4/IPv6 Translation”
- https://tools.ietf.org/html/rfc6144
- RFC6146 “Stateful NAT64: Network Address and Protocol Translation from IPv6 Clients to IPv4 Servers”
- https://tools.ietf.org/html/rfc6146
- RFC7269 “NAT64 Deployment Options and Experience”
- https://tools.ietf.org/html/rfc7269
- Jool
- https://www.jool.mx/en/index.html
- Apple社のアナウンスメント
- https://developer.apple.com/news/?id=05042016a
- Google社 Public DNS64
- https://developers.google.com/speed/public-dns/docs/dns64