IPv4の大規模なアドレス共有技術の最古参としてCGN/LSNがあります。CGN/LSNでは、ISPがIPv4グローバルアドレスを直接配布する代わりにNAT変換した後のプライベートアドレスを配布することで、IPv4グローバルアドレスの消費を最小限に押さえます。CGN/LSNの利用モデルとして、IPv4のアクセス網を利用する「NAT444」、IPv6のアクセス網を利用する「DS-Lite」が標準として合意されつつあります。
これらCGN/LSN系列の技術に対して、「ステートレス方式」と呼ばれるアプローチが多数提案され、定期的に話題になっています。ステートフル対ステートレスという大雑把な区分については、耳にしたことがある方も多いと思います。「ステートレス方式」は現在多数の提案が存在し、標準化の行方はまだ見えない状況ですが、何らかの標準が合意されることは間違いなさそうです。
本稿では、IIR Vol.13でご紹介したSEILシリーズでの4rd試験実装の経験から、CGN/LSNのような「ステートフル方式」と、4rdのような「ステートレス方式」にどのような特徴があるのかを概観し、ルータ開発者の視点からIPv4アドレス共有技術の現状をご紹介します。
■各方式を比較する試み
各IPv4アドレス共有技術の比較検討をする際、ステートフル方式とステートレス方式という区分がよく使われます。この区分は技術の詳細を比較する上では必ずしも十分とは言えません。そのため、詳細に技術を比較する際には、以下の軸を加えて議論されることが多いようです。
===
▼図-1 NAT装置の配置
NAT装置の配置(図-1)は、ステートレス方式、ステートフル方式という区分にもっとも近い尺度です。選択肢としては、ISPに配置するか、顧客ネットワークに配置するか、その両方か、の3つがあります。ISP側にNAT装置を配置する場合、ISPは巨大な共有資源をとめて管理する必要がありますが、細かな制御が可能となります。顧客ネットワークにNAT装置を配置する場合、ISPでの資源管理は簡略化できますが、その分柔軟性は低くなります。
===
不正アクセスを検知したような場合に、問題となる通信主体がログから識別できるかどうかはISPやサーバの運用管理者にとって重要な問題です。アドレス共有が行われる場合には、IPアドレスの記録からだけでは通信主体は識別できないため、ポート番号を誰が使っていたのか追跡する仕組みが必要になります。
ステートフル方式ではこの作業にNATセッションの情報が必要となり、ステートレス方式では静的な割り当てルールがあれば十分であることが、両者の大きな違いの一つと言われています。
顧客同士がどのように通信できるかは、IP電話のようなP2P通信において特に重要となります。P2P通信は本質的にNATとは相性が悪い技術ですが、現在では様々なNAT超え技術により実用的に利用されています。この既存のNAT超え技術が引き続き利用できるのであれば、通信の効率化が期待できます。遠隔会議アプリケーションがP2P通信モードで動作するか、中継サーバ経由で動作するかでは、ネットワークの利用効率もユーザの快適性も大きく変わってくるでしょう。
パケットフォーマットは、大まかにはIPv4パケットをそのままIPv4ネットワークで転送するか、IPv6にトランスレートしてIPv6ネットワークで転送するか、IPv6でカプセル化してIPv6ネットワークで転送するか、という選択肢が考えられます。IPv6を利用すると、IPv4アドレスが重複していたとしても、IPv6のアドレス情報をヒントに適切なネットワークに配送することが可能となります。これによりNAT装置の設置場所を柔軟に選択できます。
文・末永 洋樹(IIJ SEIL事業部 製品開発部 製品技術課 テクニカルマネージャ)
おすすめ記事と編集部のお知らせをお送りします。(毎週月曜日配信)
登録はこちら