traversalNAT越えの問題を解決する手法の一つ。NATトラバーサルに対応したVPN(仮想閉域網)ソフトウエアを使うと,暗号化したパケットをUDPでカプセル化する。NAPTに利用するポート番号を暗号化しないため,正常にアドレスを変換できる。使えるブロードバンド・ルーターに制約がなく,無線LANアクセス・サービスなどでも利用できる。NATトラバーサル対応のVPNクライアント・ソフトは,イスラエルのチェック・ポイント・ソフトウェア・テクノロジーズなどが出荷済み。ほとんどのソフトは同一メーカーのVPN機器としか接続を確認できていない。NATトラバーサルは現時点では標準化されていないため,各社独自で実装している。NAT越えの問題を解決するには,このほかに暗号化パケットのパススルー対応ブロードバンド・ルーターを導入する方法がある。パススルーとは,IPsecなどで暗号化したパケットを,NAPTをかけずに素通りさせる機能。ブロードバンド・ルーターは,受信した暗号化パケットを特定のプライベート・アドレスに転送する。ブロードバンド・ルーターの配下にある1台のクライアントしかVPNが使えない制約が残る。traversal(NAT通過)は、TCP/IPネットワークにおいてNAT機器を用いた上で、複数ホスト間のネットワーク接続を確立する際に生じる問題を解決するために設計されたアルゴリズムである。P2PやVoIPなどのホスト間通信を行うアプリケーションが、相手側のNAT機器を用いたプライベートネットワークに属するホストを直接指定できない、すなわち、NATを通過できないといった問題がある。通常は、IPsecVPNクライアントがESPパケットにNATの通過をさせるためにNAT-Tが用いられる。traversal技術には多くの種類がある。traversal技術は存在しない。traversal技術は、グローバルIPアドレスを持つパブリックサーバを必要とする。TURNなどは、サーバがすべてのデータを中継する方法であり、帯域コストを増やし、遅延を増加させることにより、VoIPアプリケーションに弊害をもたらす。STUNなどは、コネクションを確立するときにのみ、サーバを使用する方法である。Policies)を保ち難くする。traversalを可能にするような、NATとファイアウォールの両者が共存する技術を選ぶ。(MIDCOM)だといえる。(UPnP)は、小型ゲートウェイの製造業者によって幅広くサポートされているので、家庭やSOHOに容易に導入することができる。その一方で、最も古いNAT制御のためのプロトコルであるSOCKS?は、今も有効であり幅広く利用可能である。traversalとIPsecIPsecが、NATを通過し正常に機能するためには、以下がファイアウォール上で許可される必要がある。4500多くの家庭用ルータでは、IPsecパススルーを有効とすることによりこれらが実現される。会社や自宅のLANとインターネットをつなぐために,その境界にブロードバンド・ルーターを置くことは多い。LAN側のパソコンに割り当てたプライベートIPアドレスと,インターネットで通用するグローバルIPアドレスを相互に変換して,LAN側のパソコンがインターネットへアクセスできるようにするためだ。ブロードバンド・ルーターが備えるアドレス変換機能(NAT)は,IPsecパケットをうまく扱えない。この結果,IPsecパケットがブロードバンド・ルーターのところで止まってしまい,IPsecゲートウエイ同士の通信が途絶えてしまう。†ここで問題になるアドレス変換機能とは,IPマスカレードのことである。IPマスカレードが扱う対象は,TCPまたはUDPのパケットである。ところが,IPsecの通信用トンネルを流れるパケットは,TCPでもUDPでもない。ESPというIPsec専用のプロトコルである。ここに問題の原因がある。送信側のブロードバンド・ルーターは,LAN側から受け取ったパケットの送信元IPアドレスと同時に,送信元のポート番号を書き換えて,インターネットに転送する。同時に,書き換えた新旧の送信元ポート番号とIPアドレスの対応を覚えておく。インターネットを介して通信している相手の端末からパケットが返ってきたときには,IPアドレスとポート番号を元の値に書き換えて,LANにつながった端末に受信パケットを転送する。ところが,IPsecの通信用トンネルを通るパケットはESPを使うので,ポート番号が書かれていない。したがって,ブロードバンド・ルーターがポート番号部分を読み出してLAN側に転送できない。●IPsecパケットはブロードバンド・ルーターを越えられないブロードバンド・ルーターのIPマスカレード機能はTCPかUDPを使うのが前提。どちらでもないIPsecパケットは処理できない。パケット中でポート番号が書かれた位置だけを頼りに,ブロードバンド・ルーターがIPsecのパケットを読み取って勝手に書き換えて転送しても,受信側のIPsecゲートウエイは,改ざんされたとみなしてパケットを捨ててしまうだけである。制御用トンネルを通るパケットもIPマスカレードを越えられないのだ。制御用トンネルの通信に使うISAKMPは,UDPを使う。ISAKMPパケットはあて先と送信元の両方を500番ポートにすることが決まっている。IPマスカレードによって,UDPのポート番号が書き換わると,ゲートウエイが正しく認識できなくなってしまうのだ。†このような問題に対する対策は二つある。ブロードバンド・ルーターにIPsecのパケットを特別扱いさせる方法と,IPsecゲートウエイの機能を拡張してIPマスカレードを越えられるパケットを作ってやりとりする方法だ。ルーターで対応させる方法から見ていこう。これは,最近のブロードバンド・ルーターのカタログに「VPNパススルー(IPsec)」と書かれている機能である。この機能を備えているブロードバンド・ルーターは,中継するパケットにIPsecのパケットがないかを調べる。IPsecパケットを見つけたら,そのパケットを特別に扱うようにする。具体的に確認しておこう。ブロードバンド・ルーターは自身のLAN側インタフェースから流れ込むパケットにIPsecパケットがないかを常に監視している。監視するのは簡単で,IPヘッダーに書かれたプロトコル番号やポート番号を見るだけだ。このとき,LAN側からあて先と送信元のUDPポート番号が500になっているパケットを見つけると,それはIPsecの制御用トンネルの確立要求パケットだと判断して,VPNパスルーの処理に入る。このパケットの送信元ポート番号を変えずにインターネットに転送するとともに,LAN側の送信元IPアドレスを記憶しておくのである。この送信元IPアドレスがIPsecゲートウエイのIPアドレスになる。そのあとは,通信用トンネルを通るIPsecパケットをインターネットから受け取ると,ルーターは覚えていたIPアドレスあてにパケットを転送するようになる(図4a)。通信用トンネルを通るパケットは,IPヘッダーのプロトコル番号で判別できるから問題ない。これで,IPsecのパケットもルーターが中継できるようになる。●IPsecのNAT越え対策ルーターで対応する方法と,IPsec製品で対応する方法の2種類がある。IPsec製品で対応する方が制限は少ない。†IPsecゲートウエイ側で対応する解決策は,「NATトラバーサル・UDPエンカプセレーション」と呼ばれる。比較的新しい技術だが,最近では多くのIPsec製品が対応している。こちらは,ESPパケットをUDPパケットに見せかけてブロードバンド・ルーターをだますようなやり方だ。NATトラバーサルを使うIPsecゲートウエイは,まずNATトラバーサルが必要かどうかを判定することになっている。そのためにIPsecゲートウエイは,最初に制御用トンネルの確立要求を受け取ったときに,そのパケットの送信元UDPポート番号を調べる。500番以外の番号に書き換わっていたら,途中にブロードバンド・ルーターがあり,IPマスカレードによってポート番号が書き換えられたと判断するのだ。このことを反対側のIPsecゲートウエイにも伝える。あとは,通信用トンネルでやりとりするパケットのIPヘッダーとESPヘッダーの間にUDPヘッダーを挿入し,IPヘッダーのプロトコル番号を記述する領域にUDPを表す17番を指定する(図4b)。すれば,ブロードバンド・ルーターにはIPsecのパケットもUDPパケットに見えるので,普通にパケットが転送される。送信側ゲートウエイがUDPヘッダーを付加し,受信側で取り外すだけである。このNATトラバーサルは,標準化作業が進行中の規格である。今販売されている対応機器は,標準化を先取りしたものである。メーカー間の違いは,付加するUDPヘッダーに書き込むポート番号くらいで,設定を少し変えれば,ほとんどの製品の間で相互に通信できる。http://itpro.nikkeibp.co.jp/members/NIT/ITARTICLE/20020605/1/●NATやNAPTを利用する環境では用途によって通信できなくなるインスタント・メッセージやネットワーク・ゲームなど,リアルタイム通信系のアプリケーションではNAT/NAPT(NAPTはいわゆるIPマスカレード)を通過させられない場合がある。IPSecクライアント・ソフトを使ったVPNトラフィックも,NAPTを通れない。NATトラバーサルはこうした問題点の解決策。