IPv4アドレス枯渇問題への対応策の一つに取り上げられるのが,NAT(network address translation)をプロバイダ側で実施する「キャリア・グレードNAT」(関連Q&A)です。ブロードバンド・ルーターなどで実施する“普通の”NATと,どのような違いがあるのでしょうか。“キャリア・グレードNAT製品”が持つ機能で見ていくことにしましょう。

 ここでは,NVC(ネットワークバリューコンポネンツ)が発売したキャリア・グレードNAT製品「HydraPort」(社内コード)を例に説明します。まず,キャリア・グレードNAT製品は,かなり高いスペックの動作環境が必要になります。HydraPortはミドルウエア製品ですが,これを動かせるのはLinuxの64ビットOSだけです。32ビットOSで動作しない理由は,最大で36Gバイトという大規模なNATテーブルを扱うためです。このサイズのNATテーブルを扱うには,48Gバイトのメモリーが必要となり,このメモリー・サイズを32ビットOSで扱うのは難しいため,64ビットOSが必要になっているのです。

 NAT処理のログを取れることが必須である点も,通常のNATと違うところでしょう。キャリア・グレードNATはプロバイダがサービス用の設備として運用するので,いわゆる「プロバイダ責任法」の定めにより,ログを一定期間保管しておかなくてはなりません。NVCによると,このログを取る処理にも大量のメモリーを消費するそうです。

 キャリア・グレードNAT製品は,動作環境のほかにNATに関するさまざまな機能が求められます。その中には,普通のNATとは異なる機能も多くあります。以下にHydraPortが搭載している機能をいくつか紹介します。

●フルコーンNATとホール・パンチング
 キャリア・グレードNAT配下にある端末の送信元IPアドレス「プライベート・アドレス:ポート番号」と,それをNAT変換したあとの送信元IPアドレス「グローバル・アドレス:ポート番号」について,そのポート番号同士を対応付けるしくみです。インターネット側からキャリア・グレードNATを実施する装置に「グローバル・アドレス:ポート番号」でアクセスすると,前もってなされた対応付けによって,キャリア・グレードNAT配下にいる目的の端末と通信できるようになります。

 この対応付けにはタイマーを設定でき,タイマーが有効になっている(=外部からポートを指定してNAT配下の端末にアクセスできる)ことを「ホール・パンチング」といいます。

●ヘアピニング
 キャリア・グレードNATを実施する装置が,配下の端末が通信しようとしているあて先のグローバルIPアドレスがやはり自身の配下にある端末のものだった場合に,パケットをインターネット側に出さずに装置の中で“折り返す”機能です。いったんグローバルIPアドレスに変換したあと,装置内で折り返して再度NATを実施し,あて先の端末にパケットを届けます。

●ポート制限
 NAT配下にいる個々の端末が利用できるTCP/UDPポートの数を制限します。いろいろな運用方法が考えられており,必ずしも設定値の上限を超えるポートを使うとアプリケーションが通信できなくなるとは限りません。

●パス・スルー
 NAT装置が,配下の端末の送信元IPアドレスを書き換えずにパケットを通してしまうことです。NAT配下の端末が,グローバルIPアドレスを持つSIPサーバーと通信するといった場面で使うことを想定しています。

●ポート・フォワード
 「グローバルIPアドレス:ポート」と「固定のプライベートIPアドレス:ポート」を対応させて,両者をリザーブしておき,インターネット側から前者にアクセスすると後者にフォワードする機能です。この機能は,家庭向けブロードバンド・ルーターのNAT機能でも見られるものです。ネットワークにつながる組み込み機器やWebカメラなどで使うことを想定しています。