次のページへインターネットVPNで利用されるプロトコルインターネットVPNの大まかな概念はお分かりいただけたことと思う。次は、VPNの中心をなす仮想トンネルのしくみと、これを実現するプロトコルについて説明しよう。Protocol)プロトコルは通信相手を認証する機能を持っていない。Protocol)がある。ところが、PPPはシリアル回線のように、送信側と受信側が1対1で接続されているような回線でしか利用できない。そこで、PPPのフレームをIPのデータグラムに埋め込んで送信し、受信側で元のPPPフレームに戻す(元のPPPフレームを取り出す)仕組みが考案された。このように、ある通信プロトコルをほかの通信プロトコルのパケットでくるんで送ることを「カプセル化」という。PPPのフレームをIPでカプセル化することで、IPネットワークであるインターネットを介したPPP接続が可能になる。これにより、PPPの持つ、ユーザー認証機能や、使用するプロトコル/アドレス/圧縮やエラー訂正の方法などをネゴシエートする機能を利用する2点間接続が実現される。このように、ある通信プロトコルの環境の上に、異なる通信プロトコルを透過的に流すことを「トンネリング」という。2つの地点間を直接結ぶ(仮想的な)トンネルを作るような技術なので、こう呼ばれている。インターネットVPNでは、VPN装置によってパケットをカプセル化して仮想トンネルを構築する。カプセル化の手順を定めておかないと、正しく通信できない。「PPPをカプセル化」して仮想トンネルを構築するために、PPTP、L2F、L2TPといったプロトコルが作られ、利用されている。それぞれの概要は後述するが、これらのように、データリンク層をトンネリングするプロトコルを「レイヤ2トンネリング・プロトコル」という。ネットワーク層をトンネリングする「レイヤ3トンネリング・プロトコル」としてIPSecがある。検出機能を持たせたプロトコルである。2000/XPでは、PPTP、L2TP、IPSecが標準でサポートされている。以下では、これらのプロトコルについて詳しく見ていくことにする。PPTP、L2F、L2TPそれでは、データリンク層をトンネリングする各プロトコルについて簡単に説明しよう。2637で仕様が公開されている(RFCはインターネット技術に関する仕様などをまとめた技術文書)。Server)という2つのVPN装置の間で仮想トンネルを構築する。4.0/2000/XPはPACとなるための機能を標準で持っているため、Windowsマシン自身がPACとなる(PPTPの呼び出し元となる)使い方が一般的だ。2003はPNSになる機能(PPTPの着信を受け付ける)を備えている。このため、Windows環境ではPPTPで手軽にVPNを構築できる。リモートのWindowsマシンをPACとした場合、PPTPによる通信は次のような手順で行われる。PPTPにおいて、リモートWindowsマシンがPACになる場合の通信手順(1)WindowsマシンをPPP(ダイヤルアップ接続)やPPPoE(ADSLやFTTH)でインターネット・プロバイダに接続。PPPやPPPoEの接続が確立し、TCP/IPによるインターネット通信が可能になる。(2)PACからPNSへ、トンネルの制御を行うための制御コネクションを確立する。制御コネクションはTCPを使って通信する。このときのあて先ポート番号は1723、送信元ポート番号は任意である。(3)制御コネクションを使い、PPPフレームを送受信するためのPPTPトンネルを生成する。Encapsulation)というプロトコル(プロトコル番号47)を拡張したものを使用する。(4)PPTPトンネルの中でPPPセッションを開始する。PPPの機能を使い、ユーザー認証、IPアドレスなどの付与、圧縮や暗号の利用などをネゴシエートする。(5)リモートのWindowsマシンとサイト内のネットワークの間でIP通信が可能になる。PPTPを使うとIPデータグラムは次のような形で送信先のマシンに到達する。元となる送信データグラム(IPヘッダ+データ)に対して、PPPヘッダ(ポイント・ツー・ポイントでの通信用)とGREヘッダ(トンネル通信用)を付加し、それをさらにIPパケットでカプセル化して送信している。元となる送信データグラム(IPヘッダ+データ)に対して、PPPヘッダ(ポイント・ツー・ポイントでの通信用)とGREヘッダ(トンネル通信用)を付加し、それをさらにIPパケットでカプセル化して送信する。(1)送信される元のIPデータグラム。(2)PAC内でPPTP用のPPPフレームを付加。(3)引き続きPACが拡張GREヘッダとIPヘッダを付加(IPでカプセル化)。(4)IPデータグラムとしてインターネットを流れる。(5)PNSがIPヘッダと拡張GREヘッダを除去してPPPフレームを取り出して処理する。(6)元のIPデータグラムが取り出されてサイト内のLANに流される。本来、PPTPは暗号化の機能を持たない。そのため、暗号化が必要な場合は、PPTP以外のプロトコルで暗号化を行う必要がある。データの暗号化を実装している。MPPEは、鍵長が40bit、56bitまたは128bitのRC4を暗号化に用いている。WindowsのPPTPは、IPプロトコル以外にNetWareで使われるIPXプロトコルのトンネリングもサポートする。Serverに付属のネットワーク・モニタでキャプチャして解析した例。IPパケットの上にGREとPPPの各プロトコルがカプセル化されていることが分かる。(1)解析の対象となるパケット。(2)一番下はイーサネットのフレーム。(3)次はIPパケット。これにより、PPTPのサーバとクライアント間での通信が行われる。GREのプロトコル番号は47番なので、IPパケット中のプロトコル番号フィールドは47となっている。ちなみに、ICMPは1番、TCPは6番、UDPは17番。(4)GREパケット。カプセル化されたパケットを運ぶためにGREプロトコルが使われている。(5)GREの上位にある(カプセル化されている)のがPPPプロトコル。(6)GREプロトコルのヘッダ・データ。Networks)などによって開発されたレイヤ2トンネリング・プロトコルである。Protocol)に統合されている。PPTPでは、制御コネクションにTCPプロトコルを、トンネルに拡張GREプロトコルをそれぞれ使用するのに対し、L2Fでは制御チャンネルとトンネルの両方にUDP(ポート1701)を使用する。2661として仕様が公開されている。PPTPのトンネル制御部分とL2Fのフレーム構造を組み合わせたようなプロトコルで、PPTP、L2Fそれぞれの持つ機能を内包するように作られている。Server)の間に仮想トンネルを構築する。制御チャンネルとトンネルは、L2Fと同様にUDP(ポート1701)を使う。PPTPは、IPネットワーク上でのみ利用可能だが、L2TPはATMやフレーム・リレー上での利用も可能だ。PPTPはトンネルを構築する際の認証手段を持たないが、L2TPはこの機能を持つ。L2TPでは1つの仮想トンネルで複数のユーザー・セッションをやりとりできる。L2TPはPPTPと同様に通信データを暗号化する機能を持たないため、PPPの機能を使って暗号化を行うか、次に解説するレイヤ3トンネリング・プロトコルのIPSecが持つ暗号化機能を利用することが多い。2000/XPはL2TPとIPSecを組み合わせたVPN機能を標準で提供する。メールマガジンをご購読ください。申し込みページへITmediaはアイティメディア株式会社の登録商標です。