10.9 大規模な仮想 HUB ホスティングサービスの構築 - SoftEther VPN プロジェクト

10.9 大規模な仮想 HUB ホスティングサービスの構築

    大企業の IT 部門やインターネットサービスプロバイダ (ISP) は、保有する高速なバックボーン回線および多くのサーバーコンピュータを使用して、大規模な仮想 HUB のホスティングサービスを「SoftEther VPN Server 3.0」を使用して構築し、顧客や社員に対して提供することが可能です。このような「大規模な仮想 HUB をホスティングするサービス」について、その実現方法について解説します。

    10.9.1 仮想 HUB ホスティングサービスの必要性

    仮想 HUB ホスティングサービスとは

    ここで述べられている「仮想 HUB ホスティングサービス」とは、データセンターなどの回線速度が高速な拠点に高性能なサーバーコンピュータを設置し、そのサーバーコンピュータに VPN Server をインストールしていくつもの仮想 HUB を VPN Server 内で動作させ、その仮想 HUB を使用する権利を、顧客や自社の部署などに対して提供するようなサービスのことです。

    仮想 HUB ホスティングサービスは「ホスティング型 VPN サービス」や「ASP 型 VPN サービス」などと呼ばれる場合もあります。

    仮想 HUB ホスティングサービスの概念は、VPN Server のクラスタシステムを設置し、その VPN Server 内に大量の仮想 HUB を作成して、その仮想 HUB の管理者権限を仮想 HUB を主に使用・管理する者に委譲することにより、仮想 HUB の管理を任せると共に、その仮想 HUB を使用する複数のユーザーは、その VPN Server に対して VPN 接続して VPN 通信を行うことができるという形態のサービスです。

     

    10-9-1.png

    図10-9-1 仮想 HUB ホスティングサービスの概要

    企業における仮想 HUB ホスティングサービスの用途

    大企業の IT 部門は、社内のサーバールームやデータセンターなどで VPN Server システムを一元管理し、その VPN Server 内に必要な数の仮想 HUB を作成し、その仮想 HUB の管理者権限を自社内の各部署の担当者に割り当てることによって、社内の各部署の担当者が VPN Server をインストールして VPN サーバーコンピュータを管理するといった難しい作業を行うことなく、IT 部門が提供する仮想 HUB を使用して色々な VPN を構築することができるようになります。

     

    10-9-2.png

    図10-9-2 企業における仮想 HUB ホスティングサービス

    ISP における仮想 HUB ホスティングサービスの用途

    インターネットサービスプロバイダ (ISP) は、保有するインターネットへの高速なバックボーン回線を活用して、ホスティング型 VPN サービスを顧客に対して提供することができます。ISP のデータセンター内に VPN Server システムを設置し、仮想 HUB ホスティングサービスの利用を申し込んだ顧客のためにその顧客専用の仮想 HUB を作成し、その管理者権限を顧客に委譲することで、各顧客はその仮想 HUB を借り切って自由にユーザーの追加やセッション管理などの管理を行うとともに、インターネットを経由して複数の場所からその仮想 HUB を使用して SoftEther VPN の機能を使用することができます。

    特に、このようなサービスは、自社や自宅などにグローバル IP アドレスを持っていなかったり、グローバル IP アドレスが固定でなかったりするようなオフィスや家庭などのユーザーが、安定した VPN Server 内の仮想 HUB をレンタルしたいと考えているような場合に需要があるものと考えられます。

    たとえば中小企業で、自社内 LAN に対するリモートアクセス VPN を構築したいが、自社がインターネットに接続する際の接続方法は、「変動型グローバル IP アドレス」(接続する度に IP アドレスが変化してしまう接続形態) であるような場合は、自社内に VPN Server を安定して設置することができません (「10.10.4 IP アドレスの割り当て方法と DDNS サービス」 で解説している DDNS サービスを用いると変動型グローバル IP アドレスでも VPN Server の設置は可能ですが、業務環境での安定性を重視する用途には推奨されていません)。もしくは自社に「固定グローバル IP アドレス」があったとしても、VPN Server を日々運用・管理するノウハウを持っていないような中小企業の場合もあります。これらの企業は、ISP が提供する仮想 HUB ホスティングサービスに申し込み、自社内に設置した VPN Bridge から ISP 側に用意された仮想 HUB に常時「カスケード接続」しておくことによって、「10.4 一般的なリモートアクセス VPN の構築」 で解説したような「リモートアクセス VPN」サービスを、VPN Server を自社内で持たない形で社員に対して提供することが可能です。このような接続方法は以下の図のようになり、リモートアクセス VPN を利用しようとする遠隔地の社員は、ISP 側の VPN Server に設置されている仮想 HUB に接続します。すると、ISP 側の VPN Server の仮想 HUB を経由して、社内のネットワークに設置された VPN Bridge のローカルブリッジ接続を通り、社内 LAN にリモートアクセスすることが可能になります。

    10-9-3.png

    図10-9-3 ISP における仮想 HUB ホスティングサービス

    また、この仕組みを応用すれば、それぞれ固定型グローバル IP アドレスを保有していない 2 拠点間を、ISP が提供する仮想 HUB ホスティングサービスを経由して接続することができます。これは 「10.5 拠点間接続 VPN の構築 (ブリッジ接続を使用)」 で解説した「拠点間接続 VPN」と同様の方法ですが、自社内に VPN Server を設置することなく実現することができます。

     

    10-9-4.png

    図10-9-4 ISP 型仮想 HUB ホスティングサービスを利用した拠点間接続 VPN

    仮想 HUB ホスティングサービスを提供する方法

    大企業や ISP が、顧客に対して大規模な仮想 HUB ホスティングサービスを提供するにあたっては、特にソフトイーサ株式会社による特別な資格や許可は不要です。通常の VPN Server の製品ライセンスと、接続ライセンスを必要なだけ購入することにより、仮想 HUB ホスティングサービスをとても簡単に、短期間で構築することが可能です。

    10.9.2 クラスタリングによるスケーラビリティの向上

    大規模な仮想 HUB ホスティングサービスを構築するにあたっては、当然のことながら VPN Server 上で動作する仮想 HUB の数は非常に多くなり、またそれぞれの仮想 HUB に接続する VPN セッション (VPN Client または VPN Bridge) の数は、合計すると極めて多数になることが予想されます。

    このような仮想 HUB ホスティングサービスを構築するためには、「10.8 大規模なリモートアクセス VPN サービスの構築」 と同様に「クラスタリング機能」を使用してください。クラスタリング機能を使用することにより、ダイナミック仮想 HUB を大量に作成しても全体のパフォーマンスは下がらず、また同時に大量の VPN 接続セッションが接続された場合でも、自動的にロードバランシングが行われ、各 VPN Server の負荷が調整されます。さらに、「フォールトトレランス機能」も自動的に働くため、稼働中の大量の台数の VPN Server マシンのうちの一部が、電源障害、ハードウェア交換、ソフトウェアアップデートおよびその他のメンテナンスのために停止した場合でも、その VPN Server に直前まで接続されていた VPN セッションはクラスタコントローラによって自動的に別の稼動している VPN Server にリダイレクトされます。このため、基本的に 24 時間 365 日無停止の大規模な仮想 HUB ホスティングサービスを構築することも可能です。

    なお、ここでは大規模な仮想 HUB ホスティングサービスを構築するために VPN Server のクラスタを構築する方法を説明していますが、小規模な仮想 HUB ホスティングサービスを構築する場合 (目安としては、仮想 HUB の数が合計 100 個以下程度、同時接続セッション数が 200 セッション以下程度) の場合は特にクラスタリング機能を使用する必要がない場合もあります。また、最初はクラスタリング機能を使用せずに仮想 HUB ホスティングサービスを構築しておき、後に同時接続セッション数や仮想 HUB 数が増えてきて 1 台の VPN Server では負荷が問題となってきた場合は、後からクラスタリング機能を使用し VPN Server の台数を増やすことも可能です。

    10.9.3 ダイナミック仮想 HUB の使用

    クラスタ内には 1 個以上の仮想 HUB を作成することができます。クラスタ環境での仮想 HUB には「スタティック仮想 HUB」と「ダイナミック仮想 HUB」の 2 種類があります。

    仮想 HUB ホスティングサービスの用途に最適な仮想 HUB は、「ダイナミック仮想 HUB」です(「3.9.8 ダイナミック仮想 HUB」 を参照)。

    10.9.4 ネットワーク構成

    ここでは、例として以下の図のようなネットワーク構成について解説します。

    10-9-5.png

    図10-9-5 ネットワーク構成

    この例では、データセンター内に 5 台のサーバーコンピュータを設置し、これにより 5 台の VPN Server クラスタを構築します。すべてのサーバーには、固定のグローバル IP アドレスが割り当てられていることを仮定します。

    なお、上記の例ではクラスタの台数は 5 台ですが、実際に運用を開始した後、各 VPN Server の負荷が予想以上に高くなった場合は、クラスタメンバサーバーの台数を増やすだけでクラスタ全体のスループットを向上させ、各 VPN Server の負荷を減らすことができます。

    10.9.6 クラスタコントローラの設置と設定

    複数台の VPN Server でクラスタを組む場合は、まず最初に 1 台目の VPN Server を「クラスタコントローラ」として設定します。用意した複数台の VPN Server 用のサーバーコンピュータに性能の違いがある場合は、最もメモリ容量が大きく、ハードウェア的に動作が安定したものをクラスタコントローラにすることをお勧めします。

    VPN Server をクラスタコントローラにする方法については、「3.9.2 クラスタコントローラ」 を参照してください。

    10.9.7 クラスタメンバサーバーの設置と設定

    2 台目以降の VPN Server は、1 台目のクラスタコントローラに対して接続する「クラスタメンバサーバー」として設定します。VPN Server をクラスタメンバサーバーにする方法については、「3.9.3 クラスタメンバサーバー」 を参照してください。

    10.9.8 ダイナミック仮想 HUB の作成

    運営している仮想 HUB ホスティングサービスにおいて、新しい仮想 HUB を作成する場合は、「ダイナミック仮想 HUB」として仮想 HUB を作成してください。たとえば、企業で新しい仮想 HUB の作成が必要になった場合や、ISP でサービスに新しい顧客が申し込んだ場合などは、新しい仮想 HUB を作成します。

    10.9.9 仮想 HUB の管理権限の委譲

    新しい仮想 HUB を作成したら、その仮想 HUB の管理権限を実際に仮想 HUB を管理するユーザーに対して委譲します。企業の場合は、仮想 HUB の作成を IT 部門に対して申請した担当者に対して権限を委譲することになります。ISP の場合は、新しくサービスを申し込んだ顧客に対して権限を委譲することになります。

    「権限の委譲」とは、仮想 HUB の管理パスワードをユーザーに対して通知する、あるいはユーザーが最初の登録時に希望する初期パスワードを仮想 HUB の管理パスワードとして登録するということです。仮想 HUB の権限委譲に関しての詳細は、「3.3.4 管理権限」 を参照してください。

    これにより、権限を委譲されたユーザーはその管理パスワードを使用してクラスタコントローラに自ら「VPN サーバー管理ツール」や「vpncmd」で接続することによって、その仮想 HUB を自由に管理することができるようになります。その仮想 HUB に新しいユーザーやグループを追加したり、アクセスリストやログの保存方法を変更したりするなどといった、仮想 HUB 管理者に許可されているすべての操作が可能です。なお、この操作内容のうち一部を禁止することも可能です。詳しくは 「10.9.13 仮想 HUB 管理オプションの設定による管理権限の限定」 を参照してください。

    10.9.10 クラスタ環境での VPN セッションの管理

    一度クラスタ環境を構築した後は、クラスタ内のクラスタメンバサーバーに対して直接管理接続を行い管理をする必要は基本的にはありません。ログファイルのダウンロード、ログ保存設定の書き込み、現在接続されているセッション一覧の表示、ユーザーの追加 / 削除 / 編集、使用する外部認証サーバーの設定、信頼する証明書の設定などの、ほぼすべての管理設定はクラスタコントローラに対してのみ行うことで、自動的にクラスタコントローラが各 VPN Server に対して設定の更新を通知し、クラスタ全体の状態は常に整合性が保たれた状態になります。

    特に、各仮想 HUB の管理者はクラスタコントローラに対してのみ管理接続を行うことができます。クラスタ内のクラスタコントローラ以外の各クラスタメンバサーバーに対して、直接管理接続を行うことはできませんのでご注意ください。

    10.9.11 大量の仮想 HUB やユーザーの作成・管理の自動化

    vpncmd による管理の自動化

    特に ISP などでは、仮想 HUB ホスティングサービスを運営するにあたって、たとえばオンラインサインアップ用のフォームで新しいユーザーが契約した際に、自動的にそのユーザーのための仮想 HUB を作成することが必要な場合があります。これにより、ISP の事務における、新しいダイナミック仮想 HUB の作成作業を自動化することができます。

    その他、ユーザーが退会したら、自動的に仮想 HUB をクラスタ上から削除したり、ユーザーが一定期間利用料金の支払いを怠っている場合は、その仮想 HUB を強制的にオフラインにするような、ISP のシステム側と連携したオートメーション管理システムを構築することができれば大変便利です。

    このような目的のシステム開発には、「SoftEther VPN コマンドライン管理インターフェイス (vpncmd)」を使用することができます。 「vpncmd」は、cgi や ASP、ASP.NET などのスクリプトやコンパイルされたプログラムなどから、コマンドライン引数を付けてバックグラウンドで呼び出すことができ、また呼び出し結果を、戻り値に格納されたエラーコードや出力された結果ファイルによって取得することができます。

    vpncmd については、「第6章 コマンドライン管理ユーティリティマニュアル」 を参照してください。ISP は仮想 HUB ホスティングサービスを提供するために vpncmd を自社の自動化されたシステムから呼び出すことによって VPN Server や仮想 HUB の制御を高度に自動化することが可能です。

    10.9.12 ユーザーの利用状況および課金

    VPN Server 全体の管理権限を使用して VPN Server に接続すると、その管理権限を持った管理セッションは、すべての仮想 HUB を管理したり、各仮想 HUB の通信量を取得したりすることができます。特に ISP では、ユーザー (仮想 HUB) ごとの課金を通信量によって行う必要がある場合もあります。このような場合は、VPN Server および各仮想 HUB が自動的に作成し管理している統計情報を取得することによって、必要なデータを収集することができます。また、クラスタコントローラに生成される vpn_server.config コンフィグレーションファイルの内部にもこれらの情報が構造化されて記録されていますので、このファイルを必要な際に読み取る方法によっても各ユーザーの通信量などを測定し課金することが可能です。なお、VPN Server および各仮想 HUB が自動的に作成し管理している統計情報に関しては 「3.3.10 統計情報の管理」 を参照してください。また、簡単なプログラムを作成して、これらの処理・記録・課金計算などを自動化することも可能です。

    10.9.13 仮想 HUB 管理オプションの設定による管理権限の限定

    VPN Server 全体の管理権限を持っている管理者 (つまり ISP や企業の IT 部門の管理者) は、管理権限を委譲した各仮想 HUB の管理者 (つまり顧客など) が行うことができる管理作業などの一部を、制限することが可能になっています。

    この機能は「仮想 HUB 管理オプション」と呼ばれ、VPN Server の標準機能として搭載されています。設定することができる項目の一覧など、詳しくは 「3.5.12 仮想 HUB 管理オプション」 を参照してください。

    この仮想 HUB 管理オプションを、特定の仮想 HUB に対して設定することによって、たとえば仮想 HUB に設定されている最大同時接続セッション数の値にかかわらず、その仮想 HUB に対して同時に接続することができる VPN セッション数の最大値を制限することができます。また、仮想 HUB に対して登録することができるユーザーやグループ、アクセスリストなどの数の最大値を設定することも可能です。これらの機能によって、特に ISP は、顧客に対していくつかの料金プランを提示し、顧客が選択した料金プランに応じたオプションサービスとして、同時に接続することができるユーザー数や最大の通信速度、アクセスリストなどの付加機能を使用可能または 使用不可にするといった「仮想 HUB ホスティングサービス」におけるビジネスモデルを使用することができます。