キャリア・グレードNATは,収容するエンドユーザーの通信をできるだけ阻害しないようにする必要があります。つまり,NAT制御に高い“透過性”が求められます。ここでいう透過性とは,エンドユーザーが送受信するパケットを,通信事業者の装置でなるべく形を変えずに通過させることです。NATにはさまざまな手法が存在しますが,キャリア・グレードNATではそれらを通信の内容や通信する端末・アプリケーションによって使い分けていくことになるでしょう。今回は,キャリア・グレードNATで使われるNATの手法をいくつかご紹介します。
NATの手法は,「NATセッション・マッピング」と「フィルタリング制限」の二つの処理の内容の違いによって4種類に分けられます。この4種類とは,「フルコーンNAT」,「制限付きコーンNAT」,「ポート制限付きコーンNAT」,「シンメトリックNAT」です(表1)。NATセッション・マッピングは,NAT配下の端末とキャリア・グレードNAT装置の通信,そしてキャリア・グレードNAT装置とインターネット側にある端末の通信を関係付けるために使われます。フィルタリング制限は,通信先を限定する設定です。
種類の名前 | NATが割り当てたポートにアクセスできる インターネット側の端末の制限 |
利用制限の厳しさ |
---|---|---|
フルコーンNAT | どの端末でもアクセス可能 | 緩やか |
制限付きコーンNAT | NAT配下の端末がアクセスした端末からアクセス可能 | 厳しめ |
ポート制限付きコーンNAT | NAT配下の端末がアクセスした端末とポート番号からだけアクセス可能 | 制限付きコーンNATより厳しい |
シンメトリックNAT | 通信元の端末と通信先の端末が1対1の場合にしか使えない | かなり厳しい |
キャリア・グレードNATで主に使用されるのは,NAT制御の中で最も制約の少ないフルコーンNATです。フルコーンNATは,一度開いたセッション・ポートを誰からでもアクセス可能にします(図1)。制限付きコーンNATは,NAT配下の端末がアクセスした端末だけ,NATが割り当てたポートにアクセスできるようにします。一方,ポート制限付きコーンNATでは,NAT配下の端末がアクセスした端末とポート番号からだけ,NATが割り当てたポートにアクセス可能です。コーンNATは,配下の端末の送信元ポート番号とNATのインターネット向けの送信元ポート番号を1対1で割り当てます。NATのポート割り当てに規則性があります。
一方,シンメトリックNATは,配下の端末の送信元ポート番号とNATのインターネット向けのポートの割り当てはランダムです。シンメトリックNATは制約が多く,セッション・ポートは通信元の端末と通信先の端末が1対1の場合にしか使えません。
さらに,別々のNAT配下にいる端末同士が通信できるようにする「(TCP/UDP)ホール・パンチング」と呼ばれる機能も,インターネット・ドラフト(第1回でご紹介した「Common Functions of Large Scale NAT」)で言及されています。この機能は主にP2Pに代表されるアプリケーションにより利用されます。
キャリア・グレードNATには,「パススルー」という概念も存在します(図2)。これはキャリア・グレードNATを通過するすべてのパケットに対してNAT制御をするのではなく,特定のIPアドレス範囲もしくは特定ポート番号をNAT処理から除外してルーティングする機能です。キャリア・グレードNAT配下のクライアントから見て,特定のプライベート・アドレスあての通信はNATをかけずサーバー・セグメントに流すようにします。SIPサーバーとSIPクライアントの間など,NATを実施することによって正常に動作しなくなる可能性があるアプリケーションの通信の場合に,パススルーをかけるわけです。
キャリア・グレードNATの一部には,インターネット・ドラフトに記述されていない機能も実装されていくでしょう。そのひとつは「ポート・フォワード」機能です(図3)。特定の「グローバル・アドレスとポート番号」と「プライベート・アドレスとポート番号」を1対1で対応させます。この機能は,NAT配下にある端末がDHCPに対応していない場合などに使われます。旧来の組み込み系機器,ライブ・カメラなどNAT制御をすることによって起こる不具合から救済するために作られたものです。
このようにキャリア・グレードNATでは,従来の情報資産を最大限活用しつつ,今後も永続的な情報基盤を安定化させるために,さまざまな機能が規定されています。次回は,キャリア・グレードNATがエンドユーザーに与える影響について,具体例を交えて解説します。
ネットワークバリューコンポネンツ ニュービジネスチーム