1.6 VPN 通信の詳細

    ここでは、SoftEther VPN を用いた VPN 通信における各種事項の基本概念を紹介し、SoftEther VPN による VPN を構築する際に必要となるいくつかの重要な知識について解説します。

    1.6.1 VPN セッションについて

    SoftEther VPN では、VPN 接続を受け付ける VPN Server に対して、VPN 接続元のコンピュータから VPN 接続を行い、VPN 通信を開始します。これにより確立された VPN 通信の単位を「VPN セッション」と呼びます。

    1.4 VPN の動作原理と通信方法」 では、SoftEther VPN は通常の Ethernet スイッチング HUB を仮想化すると共に、通常のスイッチング HUB における物理的な接続ポートと同様に、VPN 接続元からの接続を受け付けが可能であるという説明を行いました。

    物理的な LAN カードやスイッチング HUB 同士は、LAN ケーブルによって接続されますが、SoftEther VPN の場合は、仮想 HUB に別のコンピュータからの仮想 LAN カードや仮想 HUB が接続する際は、通信内容はトンネリングされ TCP/IP ベースの「SoftEther VPN プロトコル」として物理的なネットワーク上を流れます。したがって、この SoftEther VPN プロトコルの接続の 1 つ 1 つが、物理的な Ethernet における LAN ケーブルと同等の性質を持ち、Ethernet における接続単位であると表現することができます。

    SoftEther VPN では、VPN Client から VPN Server に VPN 接続を行うときや、仮想 HUB 間でカスケード接続を行うときなど、VPN 通信のための伝送路を確立して、その中でカプセル化された Ethernet フレームを伝送するような場合に、VPN 接続元と VPN Server との間で VPN セッションを必ず確立します。また、他にも、実際には物理的に存在しないが、ソフトウェア的に仮想 HUB に接続していることになっている仮想のホストやルータ、DHCP サーバーなどについても、内部的に VPN セッションが生成されています。

    VPN セッションについては、この章の後述の部分および 「3.4 仮想 HUB の機能」 などをお読みください。

    1-6-1.png

    仮想 HUB から見た各 VPN セッションの種類一覧

    この後でも解説しますが、SoftEther VPN におけるセッションの種類には、下記の 7 種類があります。それぞれのセッションについては、一部特殊な取り扱いを行う以外は、仮想 HUB はすべて同じような仕組みで取り扱います。

    分類 セッション名 生成者
    通常のセッション クライアントモードセッション VPN Client からの通常の VPN 接続
    ブリッジ / ルータモードセッション
    VPN Client からの通常の VPN 接続
    VPN Server からのカスケード接続
    VPN Bridge からのカスケード接続
    モニタリングモードセッション VPN Client からの通常の VPN 接続
    特殊なセッション ローカルブリッジセッション VPN Server 内のローカルブリッジ機能
    カスケード接続セッション
    VPN Server 内のカスケード接続機能
    (カスケード接続を行う側に生成される)
    SecureNAT セッション
    VPN Server / VPN Bridge 内の
    SecureNAT 機能
    仮想レイヤ 3 スイッチセッション VPN Server 内の仮想レイヤ 3スイッチ機能

    1.6.2 VPN Server による接続の受け付け

    SoftEther VPN Server は、別のコンピュータ上で動作している SoftEther VPN Client、SoftEther VPN Server および SoftEther VPN Bridge からの VPN 接続セッションを受け付けることができる唯一のソフトウェアです。

    SoftEther VPN Server は VPN 接続元のコンピュータからの VPN 接続を受け付けるためのポート番号として、複数の TCP/IP ポートを開いた状態で接続を待機しています。その際に使用するポート番号の一覧は、VPN Server の管理者が自由に設定したり変更したりすることができます。

    このように、他のコンピュータからの VPN 接続を待機するために開かれている TCP/IP ポート番号を「リスナーポート」と呼びます。リスナーポートには、デフォルトでは下記の 3 つの TCP/IP ポートが割り当てられています。

    • 5555 番ポート(このポート番号は SoftEther VPN が独自に使用しており、覚えやすいように「5555」という数字になっています)
    • 443 番ポート(このポート番号は「HTTPS プロトコル」と同一のポート番号であり、VPN セッションのための TCP/IP コネクションを HTTPS プロトコルとして通信させているように中継機器に認識させたい場合に便利です。)
    • 992 番ポート
      (このポート番号は「TELNETS プロトコル」という現在はほとんど使用されていないプロトコルと同一のポート番号であり、VPN セッションのための TCP/IP コネクションを TELNETS プロトコルとして通信させているように中継機器に認識させたい場合に便利です。

    SoftEther VPN Server は、複数の TCP/IP ポートを開くことによって、その VPN Server に接続しようとする別のコンピュータは、ネットワーク環境や途中のプロキシサーバーおよびファイアウォールなどの制限などに応じて、最も接続がしやすいポート番号に対して接続を行うことができます。どの TCP/IP ポートに対して接続を行っても、VPN セッションが確立された後の機能や性能は同一です。SoftEther VPN Server は各 TCP/IP リスナーポートを対等に扱い処理します。

    リスナーポートについては、「3.3 VPN Server 管理」 をお読みください。

    1-6-2.png

    VPN Server の TCP/IP リスナーポート

    1.6.3 仮想 HUB への接続

    1.4 VPN の動作原理と通信方法」 で解説されているように、SoftEther VPN Server は、1 つのサーバープロセス内で複数の仮想 HUB を動作させることができます。

    VPN Server に VPN 接続しようとするコンピュータは、その VPN Server 内で動作している仮想 HUB のうち 1 つを指定して、その仮想 HUB に対して接続を行います。

    仮想 HUB へ接続をしようとするときは、「1.5 セキュリティの強化」 で解説されているようなユーザー認証を行う必要があります。ユーザー情報は仮想 HUB 単位で管理されており、SoftEther VPN Server の管理者または各仮想 HUB の管理者が、事前に設定しておく必要があります。仮想 HUB 単位に存在するセキュリティアカウントデータベースのユーザー情報に従ってユーザー認証が行われた結果、VPN Server がその VPN 接続を正当なものであると認めた場合は、VPN Server の仮想 HUB への VPN 接続が受け入れられ、新しい「VPN セッション」が確立され、VPN 通信が開始されます。

    したがって、仮想 HUB への接続が完了するまでの間は VPN の接続元コンピュータと VPN Server との間では一切 VPN のデータ通信 (Ethernet フレームの送受信) は行われず、ユーザー認証処理が完了した後でのみ、VPN データ通信が行われます。SoftEther VPN プロトコルにおいては、ユーザー認証が完了する前の仮想 HUB への接続処理中の処理を「ネゴシエーション中」、実際に VPN 接続が完了してセッションが確立され、VPN 通信が利用できるようになった状態を「VPN 通信中」というように表現しています。

    1-6-3.png

    仮想 HUB への接続とセッション確立時の VPN プロトコルのシーケンスと状態遷移

    1.6.4 セッションデータの TCP/IP 通信

    SoftEther VPN プロトコルでは、SoftEther VPN Server と VPN 接続元コンピュータとの間の通信 (VPN セッション) のための、実際の物理的なネットワーク上を流れるパケットは、「TCP/IP パケット」としてカプセル化され送信元によって生成されます。また受信側では受け取った TCP/IP パケットをカプセル化解除します。すべての TCP/IP 通信は「SSL (Secure Socket Layer)」によって暗号化、および電子署名を付加することが可能です。

    SoftEther VPN Server と VPN 接続元のコンピュータとの間での通信においては、1 つの VPN セッションについて、1 本の TCP/IP コネクションによって通信を行わせることができますが、ユーザーが希望する場合は複数の TCP/IP コネクションを確立し、それらの複数本の TCP/IP コネクションの間で通信データを負荷分散したり、遅延を管理して自動的に送信順位を調整したりして、よりネットワーク回線を効率的に利用してスループットおよび応答性を高めることが可能です。さらに、それぞれの TCP/IP コネクションについて、データの伝送方向 (全二重か半二重か)や、切断するまでの寿命などを設定することもできます。詳しくは、「2.1 VPN 通信プロトコル」 および 「4.4 VPN Server への接続方法」 などをお読みください。

    SoftEther VPN プロトコルのデータ伝送においては、すべてのデータ内容を SSL によって暗号化するとともに、データ圧縮アルゴリズムによって圧縮することもできます。データ圧縮は、モデムや ISDN、PHS などの低速な回線を使用する際に、論理的に多くの量のデータを流す場合に、有効に機能する場合があります。圧縮は暗号化と同時に使用することも可能です。データ圧縮については、「2.1 VPN 通信プロトコル」 および 「4.4 VPN Server への接続方法」 をお読みください。

    1-6-4.png

    VPN セッション内における仮想 Ethernet フレームの伝送

    1.6.5 MAC アドレスとの関連付け

    仮想 HUB は、VPN クライアント接続元からの複数の VPN セッションを管理し、それらのセッションから仮想 HUB に対して送られる仮想の Ethernet フレームを受け取って、各フレームの宛先 MAC アドレスを識別して適切な別の VPN セッションに対して送り出します。この処理は、物理的なスイッチング HUB の内部で行われている、レイヤ 2 の Ethernet フレームスイッチング処理 (パケット交換) と同等です。

    仮想 HUB は物理的なスイッチング HUB と同様に、自動的に MAC アドレス学習を行い、学習した各 MAC アドレスを対応した VPN セッションに対して関連付けを行います。これにより、処理すべき Ethernet フレームが到着したとき、その Ethernet フレームの宛先 MAC アドレスを読み取って、対応する適切な相手先 VPN セッションに対してスイッチングすることができます。この仮想 Ethernet フレームのスイッチング処理が仮想 HUB の最も重要な役割であり、SoftEther VPN による VPN 通信における最も本質的な部分です。

    仮想 HUB が管理する MAC アドレステーブルは自動的に更新され、常に可能な限り、実際のネットワークの状態を反映したものになっています。また仮想 HUB の管理者は、MAC アドレステーブルを表示したり、任意のエントリを自由に削除したりすることもできます。

    仮想 HUB が新しい MAC アドレスを学習したり、MAC アドレステーブルデータベースを書き換えたりする仕組みやタイミングは、物理的な Ethernet スイッチング HUB と同等です。

     

    1-6-5.png

    仮想 HUB による VPN セッションと MAC アドレスの関連付け

    1.6.6 別の VPN Server / VPN Client / VPN Bridge からのセッション

    SoftEther VPN Server は、他のコンピュータで動作している (localhost で動作している場合でも問題ありません) SoftEther VPN プロトコルに対応したソフトウェアからの接続を受け付けます。これらのソフトウェアには、SoftEther VPN Server、SoftEther VPN Client および SoftEther VPN Bridge の 3 種類があります (今後、SoftEther VPN プロトコルに対応した新たなソフトウェアや専用ハードウェアが、ソフトイーサ株式会社またはサードパーティによって開発され提供される可能性があります)。

    1-6-6.png

    別の VPN Server / VPN Client / VPN Bridge からのセッション

    3 種類のソフトウェアからの VPN 接続はすべて SoftEtherVPN プロトコルによって行われ、その通信内容や性質などはどのソフトウェアからのどのような目的である通信であるかを問わず同一です。

    SoftEther VPN Client からの接続

    SoftEther VPN Client からの接続は、一般的には仮想 HUB に接続しようとしている仮想 LAN カードからの接続である場合がほとんどです。つまり、VPN 通信を利用するエンドユーザーのクライアントコンピュータに VPN Client がインストールされており、その VPN Client の接続先として VPN Server を登録して接続を行った場合、そのコンピュータの仮想 LAN カードは VPN Server で動作している仮想 HUB に VPN 接続したことになり、たとえば物理的なスイッチング HUB に LAN ケーブルで LAN カードを接続した場合と同じように通信ができるようになります。

    また、特殊な利用方法としては、VPN クライアントコンピュータ側の仮想 LAN カードと、そのコンピュータに接続されている既存の物理的な LAN カードとの間を、レイヤ 2 でブリッジ接続することが可能です。これには、オペレーティングシステムの持つブリッジ機能を使用することになります。SoftEther 1.0 では、この方法で仮想 HUB と物理的な LAN との間のブリッジが行われることが多くありました。しかしながら、SoftEther VPN では、VPN Server または VPN Bridge のローカルブリッジ接続機能によってより簡単かつ高速にブリッジが可能になったため、この方法は頻繁には用いられなくなりました。

    SoftEther VPN Bridge からの接続

    遠隔地の拠点上で動作している SoftEther VPN Bridge から、SoftEther VPN Server にカスケード接続することが可能です。また VPN Server 側と VPN Bridge 側の 2 つの仮想 HUB それぞれを、両側の拠点の既存の物理的な LAN にローカルブリッジ接続することによって、2 つの拠点を VPN 接続することができます。この方法は、拠点間接続 VPN においてよく用いられます。

    SoftEther VPN Bridge については、「5. SoftEther VPN Bridge マニュアル」 をお読みください。

    SoftEther VPN Server からの接続

    SoftEther VPN Bridge は、SoftEther VPN Server の機能を一部制限しただけのソフトウェアであるため、上記の「SoftEther VPN Bridge からの接続」で解説したような接続方法は SoftEther VPN Server から別の SoftEther VPN Server へのカスケード接続の際も同様に機能し使用することが可能です。

    1.6.7 VPN セッションの接続モード

    前項 1.6.6 で解説したように、別のコンピュータ上で動作する VPN Client / VPN Server / VPN Bridge などから VPN Server に対して接続される VPN 接続は、すべて仮想 HUB に対する VPN セッションとして確立され、管理されます。

    VPN Server は、基本的にどのような SoftEther VPN プロトコルによる VPN セッションでも対等に取り扱い、VPN セッションの接続元の VPN ソフトウェアの種類や、VPN セッションの先のネットワークがどのようになっているかについて関心を持っている訳ではありません。

    しかし、SoftEther VPN Server の VPN ネットワークの管理上の都合により、VPN セッションの接続元コンピュータの接続種類を、その VPN セッションの目的に応じて 2 種類に分離し差別化したい場合があります。そこで、SoftEther VPN では通常の VPN セッションに「接続モード」という概念を導入し、2 種類の接続モードを定義しています。

    接続モードには「クライアントモード」と「ブリッジ / ルータモード」の 2 種類があります。

    1.6.8 クライアントモードセッション

    「クライアントモード」の VPN セッションは、主に VPN Client から VPN Server に対して接続される VPN セッションに対して適用されます。通常の VPN Client の使用方法は、エンドユーザーの遠隔地のクライアントコンピュータに VPN Client を導入し、仮想 HUB を作成してその仮想 HUB を VPN Server に対して接続するというもので、主に「リモートアクセス VPN における VPN クライアントとしての利用方法」です。

    したがって、通常の VPN Client から接続され確立された VPN セッションでは、VPN Client 側では 1 つの MAC アドレスを持った Ethernet デバイスのみが VPN に接続されている状態であるはずです。つまり、VPN Client で接続に使用している仮想 LAN カードデバイスドライバが、仮想 HUB に接続されているだけであり、その仮想 LAN カードに割り当てられた MAC アドレスが、当該 VPN セッションにおいてクライアント側に存在する唯一の LAN カードであるはずです。

    しかし、VPN Client をインストールしたコンピュータを実際に使用するユーザーが、クライアントコンピュータ側の LAN カードを勝手に別の物理的な LAN カードに、オペレーティングシステムの機能を使ってブリッジ接続したり、オペレーティングシステムの IP ルーティング機能を使って別の IP ネットワークに勝手に接続したりすることも可能となってしまいます。このような操作を VPN Client を持つユーザーが任意に行った場合、VPN 管理者の側では意図していないネットワークトポロジの変更がユーザーによって行われてしまい、VPN ネットワーク全体の統一性や管理性が損なわれてしまいます。

    そこで、「クライアントモードセッション」(つまり VPN Client から接続された VPN セッション) においては、セキュリティーポリシーの「ブリッジを禁止」「ルータ動作を禁止」が自動的に有効になり、その VPN セッションのクライアント側での「レイヤ 2 ブリッジ」や「レイヤ 3 ルーティング」は原則として禁止されます。これによって、SoftEther VPN Server に接続した VPN Client のユーザーが、勝手にクライアントコンピュータ側で仮想 LAN カードを別のネットワークに接続することができなくなります。つまり、ネットワークトポロジの変更や、管理者が意図していないコンピュータの VPN への接続が防止できるというわけです。

    ただし、VPN Client の接続設定の「高度な通信設定」において、接続モードとして「ブリッジ / ルータモード」を選択することにより、「クライアントモードセッション」の制限は解除され、VPN Client 側でのブリッジやルーティングが可能になります。詳しくは 「4.4 VPN Server への接続方法」 をお読みください。

    SoftEther VPN Server の仮想 HUB ごとに登録するユーザーの設定値において、「セキュリティポリシー」の「ブリッジを禁止」および「ルータ動作を禁止」を有効にしている場合、そのユーザーは接続モードを「ブリッジ / ルータモード」として VPN Server に接続することができなくなります (VPN 接続時にエラーが発生します)。セキュリティポリシーについては 「3.5 仮想 HUB のセキュリティ」 をお読みください。

    1-6-7.png

    クライアントモードセッションとブリッジ / ルータモードセッション

    1.6.9 ブリッジ / ルータモードセッション

    VPN セッションが「ブリッジ / ルータモードセッション」で接続している場合、「クライアントモードセッション」における VPN 接続元側での「レイヤ 2 ブリッジ」や「レイヤ 3 ルーティング」を禁止するという制限が解除され、原則としてどのような通信でも行うことができるようになります。

    SoftEther VPN Server または SoftEther VPN Bridge の仮想 HUB が別の仮想 HUB にカスケード接続する場合におけるセッションの接続モードは、自動的に「ブリッジ / ルータモード」となります。

    SoftEther VPN Client から「ブリッジ / ルータモード」で仮想 HUB に接続するには、VPN Client 側での設定が必要となります。詳しくは 「4.4 VPN Server への接続方法」 をお読みください。

    管理者が VPN Client で一般的な VPN 接続で利用するために作成したユーザーが、勝手に「ブリッジ / ルータモード」で仮想 HUB に接続できないようにするためには、セキュリティポリシーを設定する必要があります。セキュリティポリシーについては 「3.5 仮想 HUB のセキュリティ」 をお読みください。

    1.6.10 モニタリングモードセッション

    「モニタリングモード」は、VPN Client が VPN Server の仮想 HUB に接続する際に選択可能な接続モードです。

    モニタリングモードで接続された VPN セッションは、接続先の仮想 HUB 内を流れるすべての Ethernet フレームをそのまま受け取ることができます。このモードは、仮想 HUB 内を流れる Ethernet パケットを傍受して、パケットキャプチャソフトウェアによってキャプチャしたり IDS や IDP などのセキュリティソフトウェアで、すべてのパケットを検査したりするために利用することができます。なお、モニタリングモードで仮想 HUB に接続しているセッションは、仮想 HUB 内のすべての Ethernet フレームを受け取ることはできますが、逆に Ethernet フレームを仮想 HUB に対して発信することはできません。

    このモードを使用すると、一般的なレイヤ 2 インテリジェントスイッチング HUB に搭載されている「ポートミラーリング」や「ポートモニタリング」などの機能と同等のことを行えるようになります。

     

    1-6-8.png

    モニタリングモードセッション

    1.6.11 ローカルブリッジセッション

    「ローカルブリッジセッション」は、SoftEther VPN Server の仮想 HUB と、そのコンピュータの物理的な LAN カードとの間で「ローカルブリッジ接続」を作成した際に確立されます。VPN Client / VPN Server / VPN Bridge からの SoftEther VPN プロトコルによるネットワークを経由した VPN 接続によって確立される通常の VPN セッションと異なり、ローカルブリッジセッションは実際の通信先は VPN Server が動作しているコンピュータの別のモジュールであるという点で「特殊なセッション」として分類されます。

    ローカルブリッジ接続機能については、「3.6 ローカルブリッジ」 をお読みください。

    1.6.12 カスケード接続セッション

    「カスケード接続セッション」は、SoftEther VPN Server または SoftEther VPN Bridge の仮想 HUB が、別のコンピュータ上で動作している SoftEther VPN Server の仮想 HUB に対してカスケード接続を行った場合に、カスケード接続元の VPN Server または VPN Bridge の仮想 HUB 内で生成される「特殊なセッション」です。

    つまり、カスケード接続を行う場合、カスケード接続を受けた側の仮想 HUB に通常のセッションである「ブリッジ / ルータモード」のセッションが作成され、カスケード接続を行った側の仮想 HUB には特殊なセッションである「カスケード接続セッション」が作成されることになります。

    カスケード接続セッションについては、「3.4 仮想 HUB の機能」 をお読みください。

    1.6.13 SecureNAT セッション

    「SecureNAT セッション」は、SoftEther VPN Server または SoftEther VPN Bridge の仮想 HUB の機能の 1 つである「SecureNAT 機能」を有効にした場合に、内部で自動的に作成される「特殊なセッション」です。SecureNAT 機能については、「3.7 仮想 NAT および仮想 DHCP サーバー」 をお読みください。

    1.6.14 仮想レイヤ 3 スイッチセッション

    「仮想レイヤ 3 スイッチセッション」は、SoftEther VPN Server の機能である「仮想レイヤ 3 スイッチ機能」を使用した場合に、仮想レイヤ 3 スイッチと仮想 HUB との間の接続のために内部で自動的に作成される「特殊なセッション」です。仮想レイヤ 3 スイッチ機能については、「3.8 仮想レイヤ 3 スイッチ」 をお読みください。