2.1 VPN 通信プロトコル
PacketiX VPN では、VPN 通信に使用されるプロトコルとして、セキュリティ業界標準の「SSL」(Secure Sockey
Layer) のバージョン 3 を使用しています。PacketiX VPN では SSL による VPN
通信の高速化およびセキュリティの向上のため、いくつかの技術的な工夫を行っています。
ここでは、PacketiX VPN
プロトコルに関する詳しい情報を解説します。なお、PacketiX VPN プロトコルに関する情報については、「1.6 VPN 通信の詳細」 もお読みください。
2.1.1 通信速度
PacketiX VPN は、仮想 HUB において仮想の Ethernet フレームを交換し、VPN Client / VPN
Server / VPN Bridge 間で VPN 通信をすることによって成り立つ VPN システムです。「PacketiX VPN
プロトコル」は TCP/IP をベースとしたプロトコルであり、仮想の Ethernet フレームをカプセル化し、暗号化した上でそれを物理的な IP
ネットワークに流す役割を担っています。
通常、TCP/IP をベースとしたプロトコルは、通信効率がそれほど高くないという欠点があります。TCP/IP
はプロトコル自体で再送制御やフロー制御を行うため、実際に使用可能なネットワーク帯域に対して、ごく一部の帯域しか使用できない場合もあります。
ソフトイーサ株式会社が PacketiX VPN プロトコルを開発するにあたっては、VPN 通信を行うために確立する TCP/IP
コネクションを巧みに制御し最適化することによって、最大限の通信の効率化および最適化を行いました。その結果、PacketiX VPN
を十分な帯域幅のあるネットワークで使用した場合は、VPN 通信を使用するユーザーにとってそれが VPN
を経由して行われている通信であるのか、または物理的な IP
ネットワーク上を直接流れている通信であるのかが、体感速度としてそれほど差異がない程の高速化と低遅延化を実現することができました。
2.1.2 柔軟性
PacketiX VPN プロトコルは TCP/IP をベースとしており、すべてのデータは TCP/IP
コネクションに沿って流れます。したがって、PacketiX VPN によって VPN を構築する場合は TCP/IP
をサポートしているさまざまなネットワーク機器やサーバーを経由して VPN を構築することが可能です。
特に、旧来の PPTP や L2TP / IPSec などの代表的であった VPN プロトコルが苦手としていた、「プロキシサーバー」や「NAT」および「ファイアウォール」を通過して VPN を構築するということも簡単に実現することができます。
実際にプロキシサーバーやその他のファイアウォールを経由して、安定した VPN 通信を行う方法については、「4.4.11 高度な通信設定」
などをお読みください。
2.1.3 通信効率および安定性
PacketiX VPN プロトコルの高度な通信設定をユーザーが適切に行うことにより、下記のようなネットワークにおける「通信効率」(スループットや応答性) および「安定性」を向上させることができます。
- 帯域幅が広いにもかかわらず、遅延時間が大きいネットワーク。
- VPN 通信経路上にプロキシサーバー、NAT またはファイアウォールなどがあり、そこで遅延が発生してしまうようなネットワーク。
- VPN 通信経路上に帯域制御装置 (QoS 装置) などがあり、TCP/IP コネクション 1
本ずつの最大の通信速度を意図的に帯域制御しているようなネットワーク。
- VPN 通信経路上にプロキシサーバー、NAT
またはファイアウォールなどがあり、それらのネットワークゲートウェイ機器やサーバーなどが通過する TCP/IP
プロトコルについて特殊な処理を行ったり、TCP/IP
コネクションごとの有効期限が設定されていて、有効期限を過ぎたコネクションを切断するようになっていたり、HTTPS
プロトコルなどのパケットの送受信間隔や回数などを厳密に記録して HTTP プロトコルのデフォルトの基準に違反した場合にその TCP/IP
コネクションを強制的に切断したりするような特殊な処理が行われるネットワーク。
VPN 通信元のコンピュータは、PacketiX VPN Server との間の 1 つの VPN セッションに対して、複数本の
TCP/IP コネクションを同時に確立し、それぞれのコネクションを並列的に使用して通信データを「負荷分散」させることによって、PacketiX
VPN プロトコルにおける VPN 通信データをより高速かつ低遅延で送受信することができるようになっています。
図2-1-1 複数の TCP/IP コネクションによる VPN セッションの通信 |
VPN 通信を接続するコンピュータは、次のようなパラメータを指定して VPN 接続を開始することができます。
VPN 接続に失敗したり VPN 通信中に接続が切断された場合の再接続設定
PacketiX VPN Server に対する VPN 接続が、ネットワーク障害や接続先の VPN Server
が一時的に停止している場合などの原因で接続に失敗したり、通信中に切断されたりした場合は、その VPN Server
に対して接続が成功するまで再接続を試みます。再接続する最大の回数および再接続の間隔を指定することもできます (再接続間隔を 5
秒未満に設定することはできません)。
デフォルトでは再接続間隔は「15 秒」、再接続回数は「無限」になっており、ネットワークが機能しており接続先の VPN Server
が動作している場合は、常時接続状態にすることができます。
「カスケード接続」においては、常に接続先の PacketiX VPN
Server に対して接続を試み、接続が完了すると、できる限り接続状態を維持しようとする機能が働くため、再接続間隔は「10
秒」、再接続回数は「無限」で固定されています。この値はユーザーが変更することはできません。 |
VPN セッションの「種類」と「再接続間隔」および「再接続回数」の設定可能値およびデフォルト値は下記のとおりです。
セッションの種類 |
再接続間隔 |
再接続回数 |
VPN Client
によって開始される通常の VPN セッション |
5 秒間以上
(デフォルトは 15 秒間) |
0 回 ~ 無限
(デフォルトは無限) |
VPN Server / VPN
Bridge によって開始されるカスケード接続の VPN セッション |
10 秒間
(固定) |
無限
(固定) |
VPN 通信に使用する TCP/IP のコネクションの本数
PacketiX VPN Server との間の VPN セッション中に複数本の TCP/IP コネクションを同時に確立し、データ転送にそれぞれの TCP/IP
コネクションを並列的に利用することによって、スループットを向上させ遅延を短くすることができます。また、確立している TCP/IP
コネクションのうち一部が切断された場合や、一定時間通信ができない場合は、それによって不足する TCP/IP
コネクション分について、指定した本数までの TCP/IP コネクションを新しく作成して VPN セッションに追加し、可能な限り指定した本数の
TCP/IP コネクションでの通信を維持しようとします。
図2-1-2 複数本 TCP/IP コネクション使用時のコネクションが切断された場合の自動再接続処理 |
TCP/IP コネクションの本数は、「1 本以上 32 本以下」で、ユーザーが指定することができます。
- 「PacketiX VPN Client」で、新しい接続設定を作成した場合のデフォルト設定は「1 本」です。
- 「PacketiX VPN Server / PacketiX VPN Bridge」で、新しい「カスケード接続」を作成した場合のデフォルト設定は「8 本」です。
TCP/IP コネクション本数は、単純に増加させれば VPN
通信のスループットが向上するというものではありません。実際に使用する物理的な IP ネットワークで VPN Server
との間の通信経路における帯域幅が大きい場合は本数を増やすとスループットが向上し、また通信が安定化する場合が多いようです。逆に、電話回線、ISDN
および PHS などの帯域幅が数十~数百 kbps しかないような低速回線の場合は、各 TCP/IP コネクションの制御データや
Keep-Alive メッセージのために帯域が消費されるため、本数が少ないほうが安定し通信速度も向上する場合が多いようです。
さらに、VPN セッション内で使用する通信プロトコルの種類やデータ量によっても、最適な TCP/IP
コネクション本数は変化します。実際に VPN を構築した後で、「スループット測定ツール」を使用しながら適切な設定を選択することをお勧めします。スループット測定ツールについての詳細は「4.8 実効スループットの測定」 をお読みください。 |
各 TCP/IP コネクションの確立間隔
2 本以上の TCP/IP コネクションを確立して VPN 通信を行う場合において、2 本目以降の TCP/IP コネクションを、1
つ前の TCP/IP コネクションが確立された後、何秒後に確立するかどうかを指定することができます。デフォルト値は「1 秒」であり、1
秒以上の値を指定することができます。
この値は通常は 1 秒のままで問題ありませんが、多くの本数 (32 本など) の TCP/IP
コネクションを確立しようとする場合で連続的に TCP/IP 接続を行うと、物理的な IP ネットワークの経路上のファイアウォールや IDS
などの装置が「DoS アタック」や「攻撃」などと誤って見なしてしまい、その TCP/IP コネクションを切断してしまって正しく VPN
コネクションの確立が行えないような場合に、接続間隔を長くして誤検知を回避することができます。
図2-1-3 各 TCP/IP コネクションの確立間隔 |
各 TCP/IP コネクションの寿命
2 本以上の TCP/IP コネクションを確立して VPN 通信を行う場合において、それぞれの TCP/IP
コネクションが接続元コンピュータと VPN Server との間での接続を確立した後、指定された秒数が経過するとその TCP/IP
コネクションを切断するとともに、それによって不足した分の TCP/IP
コネクションを新たに確立し直すようにすることができます。デフォルトではこの機能は「使用しない」ようになっています。
この機能は、物理的な IP ネットワークの経路上のファイアウォールや IDS
などの装置やプロキシサーバーなどのネットワークゲートウェイ機器またはサーバーの設定で、1 本の TCP/IP
コネクションが長時間接続しているとその接続を切断してしまったり、「DoS
アタック」や「攻撃」などと誤って見なしてしまうような安定性の低いネットワークにおいて、PacketiX VPN プロトコルによる VPN
通信を安定化させるために使用します。
半二重モードの使用
半二重モードは 2 本以上の TCP/IP コネクションを確立して VPN 通信を行う場合において、VPN 接続元と PacketiX
VPN サーバーとの間の各 TCP/IP コネクションについて、約半数の TCP/IP コネクションを「送信方向専用」、残りの約半分の
TCP/IP コネクションを「受信方向専用」に設定する機能です。この機能を有効にすると、PacketiX VPN
プロトコルの一部として確立された TCP/IP コネクションそれぞれを流れるデータの伝送方向は、「VPN Server
からクライアントへの方向(ダウンロード)」と「クライアントから VPN サーバーの方向
(アップロード)」のどちらか一方のみに限定されます。すべての TCP/IP コネクションを総合すると、双方向のデータの同時通信 (全二重通信)
が可能ですが、それぞれの TCP/IP コネクションは片方向のデータ転送しか担わないため「半二重モード」という名称が付いています。
この機能は、物理的な IP ネットワークの経路上のファイアウォールや、IDS
などの装置やプロキシサーバーなどのネットワークゲートウェイ機器またはサーバーが特殊な方法で TCP/IP プロトコルを検査し、特に「HTTPS
などの SSL コネクションで双方向にデータが流れているものを検出して警告を発生したり強制的に切断したりしてしまう機能」などによって、PacketiX VPN
プロトコルによる正当な通信を「攻撃」や「バックドアソフトウェアなどによる通信」であると誤って見なしてしまうような安定性の低いネットワークにおいて、PacketiX
VPN プロトコルによる VPN 通信を安定化させるために使用します。
半二重モードを使用することにより、そのための制御処理のために若干のソフトウェア処理が発生し、CPU
時間を消費するため通信速度効率は低下しますが、それによるスループットの低下やユーザーが受ける影響は極めて小さく、通常は問題になりません。
図2-1-4 半二重モードでの VPN セッションの通信 |
本来の情報通信学における「半二重」とは、回線上において送信と受信を切り替えて行う必要があるような通信方式属性を示すものであり、厳密な意味で
PacketiX VPN プロトコルにおける「半二重モード」の性質とは異なります。 |
暗号化オプションの無効化
PacketiX VPN プロトコルは、デフォルトではすべての通信内容を SSL
によって暗号化し電子署名を付加しますが、下記のような場合には暗号化や電子署名を生成しないようにすることも可能です。
- VPN 通信を行う物理的な IP ネットワークが物理的に安全な LAN
などに限定され、悪意のある第三者が物理的な回線上のパケットを盗聴したり改ざんしたりすることが物理的に困難な場合。
- VPN
通信を通信事業者などが提供する専用線、フレームリレーまたは広域イーサネットなどの信頼性が高く他のユーザーによる盗聴が困難なネットワークの上で行い、かつそのサービスを提供する通信事業者が十分信頼できる場合。
- PacketiX VPN プロトコルを別のソフトウェア (SSH ポート転送ツールなど)
と共に組み合わせることによって、さらに下のレイヤにおいて暗号化を行う場合。
- VPN 接続元のソフトウェアと、PacketX VPN Server との間が同一のコンピュータで動作している場合 (localhost
に対して接続する場合)。特に同一の VPN Server の仮想 HUB
間における「カスケード接続」などを行う場合はこのような接続形態になります。
暗号化や電子署名を生成しないようにすることによって、PacketiX VPN プロトコルが物理的な IP
ネットワーク上を流れるデータは純粋に仮想 Ethernet
フレームにカプセル化のためのヘッダを付け足しただけになり、それに対する暗号化も電子署名による保護も施行されません。したがって、暗号化と電子署名の計算のための
CPU 時間を、より多くの仮想 Ethernet フレームのカプセル化や通信のために使用することができ、通信スループットが向上します。
なお、暗号化を無効にしている場合であっても、ユーザー認証などの重要な処理は SSL で暗号化されます。
データ圧縮の使用
PacketiX VPN プロトコルは、内部で送受信される仮想 Ethernet
フレームをすべて圧縮して伝送することが可能です。データ圧縮アルゴリズムとしては、「Jean-loup Gailly」および「Mark Adler」が開発した「deflate」アルゴリズムが使用されており、圧縮パラメータとしては処理速度が最も高速になるように指定しています。
VPN 通信においてデータ圧縮を利用することにより、通信量を最大 80% 程度削減することができます
(使用するプロトコルによります)。ただし、圧縮を行うと、クライアントおよびサーバーの両方で CPU
負荷が高くなります。それぞれのハードウェア性能にもよりますが、おおよそ回線速度が 10 Mbps
程度を超える場合はデータ圧縮を行わないほうが、通信速度が向上する場合が多いようです。
2.1.4 暗号化通信セキュリティ
PacketiX VPN プロトコルでは、SSL
を用いて暗号化と電子署名を実現しています。使用する暗号化および電子署名アルゴリズムとしては、下記のものが実装されています。
- RC4-MD5
- RC4-SHA
- AES128-SHA
- AES256-SHA
- DES-CBC-SHA
- DES-CBC3-SHA
なお、暗号化に使用するアルゴリズムは、PacketiX VPN Server の管理者が指定します
(接続元のコンピュータのユーザーが指定することはできません)。上記のうちいずれかの暗号化アルゴリズムを選択することができますが、デフォルトでは「RC4-MD5」が選択されています。
RC4-MD5
は最も高速かつ、ある程度の安全性を持ったアルゴリズムです。特に理由がない場合は、別のアルゴリズムを選択する必要はありません。ただし、より暗号化に積極的な管理者や、規則上
AES など特定のアルゴリズムしか使用できないような利用環境では、AES
などのより安全な暗号化アルゴリズムを使用することもできるようになっています。
2.1.5 VoIP / QoS への対応
PacketiX VPN プロトコルは、VPN 通信において QoS に対応しており、VoIP
パケットなどの優先順位の高いパケットのために優先的に帯域確保および伝送処理を行います。詳しくは 「1.9.4 VoIP / QoS 対応機能によって優先制御されるパケットの種類」 を参照してください。
|