◆ トンネリングプロトコルについて
インターネット上のIPネットワークで使用されている「IP」には、PPPのような認証機能はありません。
一方、「PPP」はWANのシリアル回線のように、2点間がポイントツーポイント接続されている回線
でしか利用できません。ではどのようにFlet's IP網で、PPPoEのPPP認証を行っているのでしょうか。
それは、PPPフレームをIPデータグラムに埋め込み、「カプセル化」して送信を行い、認証サーバーの
受信側でカプセル化解除を行うことにより実現しています。このようにある通信プロトコル上で異なる
通信プロトコルを透過的に伝送することをトンネリングと言います。PPPはL2のデータリンク層である
ことから、この場合はレイヤ2トンネリングと言われます。L2トンネリングの種類には以下があります。
L2トンネリング
プロトコル |
L2トンネリングプロトコルの開発元 |
L2のカプセル化対象 |
暗号化サポート |
PPTP |
Microsoft, 3Com, Lucentの開発したプロトコル |
PPP |
MPPE |
L2F |
Ciscoの開発したプロトコル |
PPP |
× |
L2TP |
IETF標準化(RFC2661)- PPTPとL2Fの統合 |
PPP |
× |
L2F、L2TPなどのL2トンネリングプロトコルには暗号化機能がないことから、暗号化をさせるために
L3トンネリングプロトコルである「IPsec」を併用します。また、L2Fにおけるカプセル化にはL2Fの
ヘッダーを使用しますし、L2TPにおけるカプセル化にはL2TPヘッダーを使用しますが、PPTPの場合
ややこしいことに、カプセル化にGREヘッダーを使用します。以降で詳細を分かりやすく説明します。
※ Flet's IP網では「L2TP」が使用されているのですが、違いが分かるように「PPTP」「L2F」についても解説していきます。
◆ PPTP(Point to Point Tunneling Protocol)
PPTPでは、発信元のVPN機器をPAC(PPTP Access Concentrator)と定義して、受信側のVPN機器を
PNS(PPTP Network Server)と定義しています。PPTPでは、このPACとPNSとの間で、セッション
及びトンネルを確立して通信を開始することになります。PPTPの実装 = Microsoftネットワーキングと
位置づけられていることもあり、PACとなる実際のVPN機器はユーザが使用するWindows OS等であり
PNSとなる実際のVPN機器はWindows Serverが該当します。
PPTPにおけるPACとPNSの通信手順(Windowsの場合) |
1. PPP or PPPoE 接続 |
PPP(ダイヤルアップ、ISDN接続)またはPPPoE(ADSL/FTTH)接続により
グローバルIPを取得しインターネット接続を行う。= PNSへのIP到達性の確立
|
2. トンネルの確立 1 |
PACからPNSへ制御コネクションを確立する。コネクション確立のために
TCPを使用してPAC(送信元ポート番号任意)からPNS(宛先ポート番号1723)
|
3. トンネルの確立 2 |
先に確立したTCPコネクションを使いPPPフレームを送受信するための
PPTPトンネルを確立する。このPPTPトンネルはGREによるカプセル化を意味する。
|
4. セッションの確立 |
PPTPトンネルの確立後、PPPセッションを開始してユーザ認証、IPの付与を受ける。
|
5. 実際の通信
(IPデータグラム送受信)
|
PACであるWindowsクライアントと、PNS配下の社内ネットワークとで通信開始。
|
※ PPTPのカプセル化のレイヤ2の対象はあくまでも「PPP」であり、PPTPはPPPの拡張にすぎません。
※ L2F、L2TPなどは暗号化機能はありませんが、PPTPについては、MS-CHAPv2とMPPEによる暗号化機能があります。
◆ L2F(Layer 2 Forwarding)
L2FはPPTPと同様に、PPPヘッダーまでがカプセル化の対象となりレイヤー2で動作するプロトコルです。
PPTPはトンネル確立のための制御コネクションにTCP、PPPフレームのカプセル化にGREを使用しますが
L2Fはトンネル確立のための制御コネクションとカプセル化の両方にUDP(port 1701)を使用します。
現在ではL2Fが使用されることはほぼなく、L2FとPPTPを組み合わせたL2TPを使用するのが一般的です。
◆ L2TP(Layer 2 Tunneling Protocol)
L2TPはPPTPとL2Fのトンネリングプロトコルの仕様を統合してIETFにより標準化されたプロトコルです。
L2TPはPPTPのトンネル制御とL2Fのフレーム構造に似た方式を採用しています。PPTPでVPNトンネルを
構築する際に定義していた発信側となるPACは、L2TPではLAC(L2TP Access Concentrator)と定義し
受信側となるPNSは、L2TPではLNS(L2TP Network Server)と定義しており、このLACとLNSとの間で
VPNトンネルを構築します。トンネルとセッションの確立のためにL2F同様にUDP(1701)を使用します。
また、PPTPでは1つのVPNトンネルで1つのユーザセッションしかやり取りできませんでしたがL2TPでは
1つのVPNトンネルで複数のユーザセッションをやりとりできることからFlet's網などで採用されています。
LACとLNSがパスワードを共有(Shared Secret)していれば、L2TPではVPNトンネルの認証もできます。
◆ Layer2トンネリングプロトコル比較表
L2トンネリングプロトコル |
カプセル化 |
VPNトンネルの
発信側/受信側 |
トンネル認証 |
1つのVPN
トンネル |
PPTP |
GREを使用 |
PAC/PNS |
× |
1つのセッション |
L2F |
L2F/UDP(1701)を使用 |
NAS/HG |
× |
複数のセッション |
L2TP |
L2TP/UDP(1701)を使用 |
LAC/LNS |
○ |
複数のセッション |
※ L2TPで使用されるカプセル化は、UDP(ポート番号1701)だけでなく、L2TP/IP、L2TP/ATMでも可能です。
◆ 主なVPNプロトコルの比較表
VPN
プロトコル |
何のプロトコル上で
伝送できるか |
何のプロトコルを
伝送できるか |
マルチキャスト
伝送は可能か |
データ暗号化
完全性保障 |
ポピュラーな
ソリューション |
IPsec |
IP |
L3(IP) |
× |
○
IPsecのみでOK |
IPユニキャストの
トンネリング |
GRE |
IP |
L3(IP、IPX、etc) |
○ |
×
代替案:GRE/IPsec |
ルーティングプロトコル
のトンネリング |
L2TP |
UDP/IP、IP、ATM |
L2(PPP)
L3(IP、IPX、etc) |
○ |
×
代替案:L2TP/IPsec |
PPPの延長とした
認証ネットワーキング |
|