3.4 仮想 HUB の機能

    目次
    1. 1. 3.4.1 仮想 HUB の作成
    2. 2. 3.4.2 オンラインおよびオフライン状態
    3. 3. 3.4.3 最大同時接続数
    4. 4. 3.4.4 接続モード
    5. 5. 3.4.5 セッション管理
      1. 5.1. セッション一覧の表示
      2. 5.2. アイコンによるセッションの種類の判別
      3. 5.3. セッションの詳細データの取得
      4. 5.4. セッションの強制切断
    6. 6. 3.4.6 MAC アドレステーブル
      1. 6.1. 仮想 HUB の MAC アドレステーブルの表示
      2. 6.2. 仮想 HUB の MAC アドレステーブルの削除
      3. 6.3. 特定のセッションに関連付けられている MAC アドレステーブルのみの一覧表示
    7. 7. 3.4.7 IP アドレステーブル
      1. 7.1. 仮想 HUB の IP アドレステーブルの表示
      2. 7.2. 仮想 HUB の IP アドレステーブルの削除
      3. 7.3. 特定のセッションに関連付けられている IP アドレステーブルのみの一覧表示
    8. 8. 3.4.8 IP アドレス存在確認ポーリングパケット
    9. 9. 3.4.9 ブリッジ / ルータモードセッション通信
    10. 10. 3.4.10 モニタリングモードセッション通信
    11. 11. 3.4.11 カスケード接続機能
      1. 11.1. カスケード接続について
      2. 11.2. カスケード接続の作成方法
      3. 11.3. カスケード接続のオンライン / オフライン状態
      4. 11.4. カスケード接続に関連付けるセキュリティポリシー
      5. 11.5. 作成できるカスケード接続の数
      6. 11.6. カスケード接続の状態
      7. 11.7. カスケード接続を行う場合の注意事項
      8. 11.8. vpncmd を使用したカスケード接続の作成、削除、設定変更および制御
    12. 12. 3.4.12 カスケード接続におけるサーバー認証
    13. 13. 3.4.13 ローカルブリッジについて
    14. 14. 3.4.14 Administrator ユーザーによる接続
    15. 15. 3.4.15 仮想 HUB の情報の取得
    16. 16. 3.4.16 その他の仮想 HUB のオプション

    SoftEther VPN Server では、複数の仮想 HUB を作成することができ、それぞれの仮想 HUB 間で管理、オブジェクト、および VPN セッションによるレイヤ 2 通信を分離することができます。仮想 HUB に関する解説は、「仮想 HUB の一般的な動作、および管理方法」についての解説と、「仮想 HUB の持つセキュリティ機能」の解説に分かれています。ここではまず、「仮想 HUB の一般的な動作、および管理方法」についての解説を行います。

    3.4.1 仮想 HUB の作成

    SoftEther VPN Server には、複数個の仮想 HUB を作成することができます。仮想 HUB を作成または削除することができるのは、VPN Server 全体の管理者のみです。VPN Server が仮想 HUB を作成すると、その仮想 HUB の管理権限を仮想 HUB 管理用のパスワードを担当者に伝えることによって、別の担当者に委譲することが可能です。

    新しい仮想 HUB を作成するには、「VPN サーバー管理マネージャ」で [仮想 HUB の作成] ボタンをクリックして、作成する仮想 HUB に関する必要な項目を入力してください。仮想 HUB 名には、「英数字および一部の記号」を使用することができます。仮想 HUB を作成するときに仮想 HUB の「管理用パスワード」を指定することができます (後から指定することもできます)。ここで管理パスワードを指定しなかった場合、リモートからその仮想 HUB に対して仮想 HUB 管理モードで管理接続することはできません。

    「vpncmd」では、「HubCreate」コマンドを使用します。ただし、クラスタリング機能 (「3.9 クラスタリング」 をご参照ください) を使用している場合は、「HubCreateDynamic」コマンドまたは「HubCreateStatic」コマンドのいずれかを使用します。

    3-4-1.png

    仮想 HUB の新規作成画面

    一旦仮想 HUB を作成した後は、その仮想 HUB を選択して管理画面を表示して管理を行います。「VPN サーバー管理マネージャ」では仮想 HUB 名をダブルクリックすると、その仮想 HUB を管理するための新しいウインドウが開きます。「vpncmd」では「Hub」コマンドで仮想 HUB を選択することができます。ここから先の仮想 HUB に関する解説は、すべて仮想 HUB の管理画面が開かれているか、Hub コマンドで管理する仮想 HUB が選択されている状態を仮定して行います。

    3-4-1-2.png

    仮想 HUB 一覧の表示

    3.4.2 オンラインおよびオフライン状態

    仮想 HUB には「オンライン状態」と「オフライン状態」があります。通常は仮想 HUB はオンライン状態ですが、一時的にその仮想 HUB の機能を停止させたい場合は、オフライン状態に設定してください。

    状態名 説明
    オンライン 仮想 HUB に対して VPN クライアントコンピュータから VPN 接続することが可能な状態です。また、仮想 HUB 内に「カスケード接続設定」がある場合や「SecureNAT」設定がある場合は、これらの機能が動作します。仮想 HUB に関連付けられている「仮想レイヤ 3 スイッチ」および「ローカルブリッジ接続」も動作します。
    オフライン
    仮想 HUB に対して VPN クライアントコンピュータから VPN 接続することが不可能な状態です。オフライン状態の仮想 HUB に対して VPN 接続しようとするとエラーが発生します。また、仮想 HUB 内のすべての「カスケード接続」は停止し、「SecureNAT 設定」も停止します。仮想 HUB に関連付けられている「仮想レイヤ 3 スイッチ」および「ローカルブリッジ接続」も停止します。

    仮想 HUB の状態を、オンライン状態からオフライン状態に変更する際は、まずその仮想 HUB に接続されているすべての VPN セッションが切断されてから、状態が変化します。状態の変化には時間がかかる場合がありますが、状態の変化中はその仮想 HUB に対する VPN 接続は行われません。

    なお、オフライン状態の仮想 HUB は、一切の VPN 通信が行えませんが、その仮想 HUB に対する管理は支障なく行うことができます。

    仮想 HUB の状態を変更するには、「VPN サーバー管理マネージャ」の [仮想 HUB のプロパティ] 画面で、[仮想 HUB の状態] を [オンライン] または [オフライン] のいずれかから選択してください。「vpncmd」では、「Online」コマンドまたは「 Offline」コマンドが使用可能です。

    3.4.3 最大同時接続数

    仮想 HUB に、同時に接続することができる「最大のセッション数」を設定することができます。この値が設定されている場合は、その仮想 HUB には指定した数を越える VPN セッションは接続できなくなります (後から接続しようとしたセッションの接続が拒否されます)。

    「最大同時接続数」には、「ローカルブリッジセッション」「カスケード接続セッション (カスケードする側に生成される仮想のセッション)」「SecureNAT セッション」および、「仮想レイヤ 3 セッション」の数は含まれません。つまり、その仮想 HUB に対して接続してきた「VPN Server / VPN Bridge / VPN Client からのカスケード接続」または「通常の VPN 接続」の最大数が制限されることになります。

    最大同時接続数を設定するには、「VPN サーバー管理マネージャ」の [仮想 HUB のプロパティ] 画面で、[最大同時接続セッション数を制限する] チェックボックスを有効にし、[最大同時接続セッション数] に設定したい値を数値で入力してください。「vpncmd」では、「SetMaxSession」コマンドで設定することができます。

    3-4-3.png

    仮想 HUB への最大同時接続セッション数の設定画面

    なお、仮想 HUB オプションの最大同時接続数を設定した場合または設定していない場合においても、常に仮想 HUB 管理オプションの max_sessions オプション、max_sessions_client オプションおよび max_sessions_bridge オプションが設定されている場合は、それらのオプションの値が適用されます。詳細は 「3.5 仮想 HUB のセキュリティ」 を参照してください。

    3.4.4 接続モード

    仮想 HUB に対して、VPN 接続元コンピュータから接続されたセッションの種類には、「1.6 VPN 通信の詳細」 で解説したように「クライアントモードセッション」および「ブリッジ / ルータモードセッション」の 2 種類があります。

    3.4.5 セッション管理

    仮想 HUB に対して現在接続中の VPN セッションの一覧を表示したり、それぞれのセッションに関する詳しい情報を表示したり、またそのセッションを強制切断したりすることができます。

    セッション一覧の表示

    仮想 HUB に接続している VPN セッション、および内部的に生成されたセッションの一覧を表示することができます。「VPN サーバー管理マネージャ」では、[セッションの管理] ボタンをクリックするだけでセッションの一覧が表示されます。「vpncmd」コマンドでは、「 SessionList」コマンドを使用することによってセッション一覧を取得することが可能です。

    なお、クラスタリングを使用している場合で、クラスタコントローラに対して接続を行った場合は、[セッション一覧] で表示されるセッションは、すべてのクラスタメンバサーバーのセッションを含んだものとなっています。

    3-4-4.png

    セッション管理画面

    セッションを一覧表示した場合は、下記のような情報が表示されています。

    項目名 説明
    セッション名 セッションを仮想 HUB 内で一意に識別するための ID です。セッション名は "SID-" の後に、「ユーザー名」を示す文字列が入り、その後に連番で数字が入ります。
    場所 クラスタリングを使用していない場合は、[ローカルセッション] と表示されます。クラスタリングを使用している場合は、そのセッションが、どのクラスタコントローラのセッションであるかが表示されます。
    ユーザー名
    セッションに関連付けられているユーザー名です。つまり、そのセッションとして VPN 接続を行った際に、ユーザー認証に成功した際の「ユーザー名」が表示されます。なお、「2.2 ユーザー認証」 で解説されているように、アスタリスクユーザー ('*' ユーザー) を使用している場合は、ここには実際にユーザー認証を行い、 Radius サーバーまたは NT ドメインコントローラなどでのユーザー認証に成功した「ユーザー名」が表示されます。ユーザーデータベース上の名前と、ユーザー認証に使用した名前が別の場合は、ユーザー認証を使用した名前が表示されます。

    ユーザー名が下記の文字列である場合は、そのセッションは通常の VPN 接続セッションではなく、VPN Server 内部で生成される特殊なセッションであることを意味します。

    • Local Bridge
      「ローカルブリッジセッション」であることを意味します。
    • Cascade
      「カスケードセッション (カスケード接続をする側のセッション) 」であることを意味します。
    • SecureNAT
      「SecureNAT セッション」であることを意味します。
    • L3SW
      「仮想レイヤ 3 スイッチセッション」であることを意味します。
    接続元ホスト名 VPN セッションが、通常の VPN 接続を受けたことによって生成されたセッションである場合は、VPN 接続元のコンピュータの「ホスト名」が表示されます。もし DNS による逆引きに失敗した場合は、「IP アドレス」が表示されます。
    TCP コネクション数 VPN セッションが、通常の VPN 接続を受けたことによって生成されたセッションである場合は、その VPN セッションの通信に使用している「TCP/IP コネクションの本数」が表示されます。TCP/IP コネクション数については、「2.1 VPN 通信プロトコル」 を参照してください。
    転送バイト数 VPN セッションにおいて、現在までに転送された「仮想 Ethernet フレームの合計データサイズ」が表示されます。
    転送パケット数 VPN セッションにおいて、現在までに転送された「仮想 Ethernet フレームの合計フレーム数」が表示されます。

    アイコンによるセッションの種類の判別

    セッション一覧表示におけるセッションの種類は、一般的に[ユーザー名] を見るか、またはセッション情報を取得することによって判別することができます。また、「VPN サーバー管理マネージャ」を使用している場合は、セッション名と共に表示される小さなアイコンの種類によって、そのセッションの種類を見分けることができます。

    セッション一覧として表示されるアイコンの種類には下記の 7 種類があります。

    アイコン 対応するセッションの種類
    3-4.ht1.gif 通常の「一般的な VPN セッション」 (通常の VPN 接続を受けたことによって生成されたセッションであって、ブリッジ / ルータモードでもモニタリングモードでもないもの) であることを示します。.
    3-4.ht2.gif 「ブリッジ / ルータモード」であることを示します。
    3-4.ht3.gif 「モニタリングモード」であることを示します。
    3-4.ht4.GIF 「ローカルブリッジセッション」であることを示します。
    3-4.ht5.GIF 「カスケード接続セッション」であることを示します。
    3-4.ht6.GIF 「SecureNAT セッション」であることを示します。
    3-4.ht7.GIF 「仮想レイヤ 3 スイッチセッション」であることを示します。

    セッションの詳細データの取得

    「VPN サーバー管理マネージャ」では、セッションリストから「セッション名」をダブルクリックして、そのセッションに関する情報を表示することができます。「vpncmd」では「SessionGet」コマンドで同等の情報を取得することができます。

    この操作によって、各セッションの詳細な情報や、接続元コンピュータに関する情報 (VPN ソフトウェアのバージョンやオペレーティングシステムの種類など) が識別可能です。

    3-4-5.png

    セッション詳細データ表示画面

    セッションの詳細データのうち、重要なものは下記のとおりです。

    項目名 説明
    接続元 IP アドレス VPN セッションの接続元の IP アドレスを表示します。
    接続元ホスト名 接続元 IP アドレスを逆引きして取得したホスト名を表示します。逆引きに失敗した場合は、[接続元 IP アドレス] と同じ文字列が表示されます。
    ユーザー名 (認証)

    その VPN セッションの接続ユーザーを示します。なお、「2.2 ユーザー認証」 で解説されているようにアスタリスクユーザー ('*' ユーザー) を使用している場合は、ここには実際にユーザー認証を行い Radius サーバーまたは NT ドメインコントローラなどでのユーザー認証に成功したユーザー名が表示されます。また、ユーザーデータベース上の名前とユーザー認証に使用した名前が別の場合は、ユーザー認証を使用した名前が表示されます。

    ユーザー名 (データベース) VPN セッションの接続ユーザーを示します。なお、アスタリスクユーザー ('*' ユーザー) を使用している場合やユーザーデータベース上の名前とユーザー認証に使用した名前が別の場合は、ユーザーデータベース上の名前が表示されます。また、ユーザーデータベース上の名前とユーザー認証に使用した名前が別の場合は、ユーザー認証を使用した名前が表示されます。
    サーバー製品名 セッションを受け付けた SoftEther VPN Server の「製品名」が表示されます。
    サーバーバージョン セッションを受け付けた SoftEther VPN Server の「バージョン番号」が表示されます。
    サーバービルド番号 セッションを受け付けた SoftEther VPN Server の「ビルド番号」が表示されます。
    接続開始時刻 VPN セッションの、接続処理が開始された時刻が表示されます。ただし、VPN Server 側では [初回セッションの確立時刻] および [現在のセッションの確立時刻] の表示と同一です。
    半二重 TCP コネクションモード VPN セッションにおける SoftEther VPN プロトコルの通信モードが、「半二重コネクションモード」であるかどうかを表示します。
    VoIP / QoS 対応機能 VoIP / QoS 対応機能 (詳細は 「1.9 VoIP / QoS 対応機能」 を参照してください) がこのセッションで有効になっているかどうかを表示します。
    TCP コネクション数 VPN セッションを構成する「現在の TCP/IP コネクション数」が表示されます。
    TCP コネクション数最大値 VPN セッションを構成するために使用できる「最大の TCP/IP コネクション数」が表示されます。
    暗号化の使用 VPN セッションが、「暗号化」および「電子署名」によって保護されているかどうかが表示されます。
    圧縮の使用 VPN セッションにおいて、データ圧縮アルゴリズムによって圧縮された通信が使用されているかどうかが表示されます。
    セッション名 セッションを識別するための ID が表示されます。
    セッションキー (160bit) VPN Server によって生成されるセッションを一意に識別するための、内部管理 ID が表示されます。
    ブリッジ / ルータモード セッションの種類が「ブリッジ / ルータモード」であるかどうかが表示されます。
    モニタリングモード セッションの種類が「モニタリングモード」であるかどうかが表示されます。
    送信データサイズ SoftEther VPN プロトコル上で「VPN 接続元から VPN Server に対して送信されたデータのバイト数」 (おおよそ実際に物理的な IP ネットワークを流れたパケット量) を表示します。
    受信データサイズ SoftEther VPN プロトコル上で「VPN Server から VPN 接続元に対して送信されたデータのバイト数」 (おおよそ実際に物理的な IP ネットワークを流れたパケット量) を表示します。
    統計情報 送受信した仮想 Ethernet フレームの「種類」「パケット数」および「合計データサイズ」を表示します (リアルタイムで更新されます)。
    クライアント製品名 VPN 接続元ソフトウェアの「製品名」を表示します。
    クライアントバージョン VPN 接続元ソフトウェアの「バージョン番号」を表示します。
    クライアント OS 名 / バージョン VPN 接続元ソフトウェアが動作している「オペレーティングシステム名」および「バージョン」を表示します。
    クライアントホスト名 VPN 接続元ソフトウェアが自己申告するクライアントコンピュータの「ホスト名」を表示します。
    クライアントポート番号 VPN 接続元ソフトウェアが自己申告するクライアント側の「TCP/IP ポート番号」を表示します。
    サーバーホスト名 VPN 接続元ソフトウェアが接続しようとして指定された「サーバー名」が表示されます。
    サーバー IP アドレス VPN 接続元ソフトウェアが接続しようとして指定されたサーバー名を正引きした結果の「IP アドレス」が表示されます。
    サーバーポート番号 VPN 接続元ソフトウェアが接続しようとして指定さたサーバーの「ポート番号」が表示されます。
    経由プロキシホスト名 VPN 接続元ソフトウェアが VPN 接続するためにプロキシサーバーを経由している場合は、経由している「プロキシサーバーのホスト名」が表示されます。
    経由プロキシ IP アドレス VPN 接続元ソフトウェアが VPN 接続するためにプロキシサーバーを経由している場合は、経由している「プロキシサーバーの IP アドレス」が表示されます。
    経由プロキシポート番号 VPN 接続元ソフトウェアが VPN 接続するためにプロキシサーバーを経由している場合は、経由している「プロキシサーバーの TCP/IP ポート番号」が表示されます。

    セッションの強制切断

    仮想 HUB の管理者は、接続されているセッションを強制的に切断することができます。セッションを切断するためには、「VPN サーバー管理マネージャ」で、切断したいセッションを選択して [切断] ボタンをクリックしてください。「vpncmd」では、「SessionDisconnect」コマンドが使用できます。

    3.4.6 MAC アドレステーブル

    1.6 VPN 通信の詳細」 で解説されているように、仮想 HUB は、自動的に MAC アドレスの一覧を学習し、接続している各セッションと関連付けることによって、セッション間での仮想 Ethernet フレームの交換をサポートしています。仮想 HUB の管理者は、最新の仮想 HUB の MAC アドレステーブルの内容を表示することができます。

    仮想 HUB の MAC アドレステーブルの表示

    「VPN サーバー管理マネージャ」の [セッションの管理] 画面で、[MAC アドレステーブル一覧] ボタンをクリックすると、MAC アドレステーブルの一覧が表示されます。「vpncmd」では、「MacTable」コマンドを使用して取得することができます。

    なお、クラスタ環境で、クラスタコントローラに対して MAC アドレステーブルを要求した場合、クラスタコントローラはすべてのクラスタメンバサーバー上の MAC アドレステーブルを合わせて応答します。

    3-4-6.png

    MAC アドレステーブル管理画面

    MAC アドレステーブルの各レコード (MAC アドレスエントリ) に対する項目名は以下のとおりです。

    項目名
    説明
    セッション名 MAC アドレスエントリが関連付けられているセッション名を示します。
    MAC アドレス MAC アドレスエントリが示す「MAC アドレス」本体です。
    作成時刻 MAC アドレステーブルにエントリが作成された「日時」が表示されます。
    更新時刻 仮想 HUB が、最後に対応するセッション上で当該 MAC アドレスを持つネットワークノードが存在していることを確認した「日時」が表示されます。[更新時刻] から 600 秒が経過した MAC アドレスエントリは次回のエージング時にテーブルから削除されます。
    場所 クラスタ内で実際にその MAC アドレステーブルが存在する VPN Server の「ホスト名」を示します。

    仮想 HUB の MAC アドレステーブルの削除

    通常は必要ありませんが、仮想 HUB の管理者は任意の MAC アドレステーブルエントリを削除することができます。MAC アドレステーブルエントリを削除するには、「VPN サーバー管理マネージャ」で MAC アドレスエントリを選択し、[選択したエントリを削除] ボタンをクリックしてください。「vpncmd」では「MacDelete」コマンドを使って削除することができます。

    特定のセッションに関連付けられている MAC アドレステーブルのみの一覧表示

    VPN サーバー管理マネージャの [セッションの管理] 画面で、特定のセッションを選択してから [このセッションの MAC テーブル] ボタンをクリックすると、選択したセッションに関連付けられている MAC アドレステーブルエントリの一覧のみが表示されます。セッションを指定して、そのセッションの VPN クライアントコンピュータ側でどのような MAC アドレスが使用されているのかを知ることができます。「vpncmd」では、「MacTable」 コマンドにセッション名を引数として付けることで同様の操作が可能です。

    3-4-7.png

    特定のセッションに関連付けられている MAC アドレステーブルのみの一覧表示

    3.4.7 IP アドレステーブル

    仮想 HUB は、自動的に MAC アドレステーブルを生成し管理していますが、同時に VPN 内で通信している仮想 Ethernet フレームが「IP パケット」の場合は、その IP パケットのヘッダ部を読み取ることによって、MAC アドレスだけではなく IP アドレスについても自動的に学習し、各セッションと関連付けを行っています。このための内部テーブルが、「IP アドレステーブル」と呼ばれるデータベースです。

    「IP アドレステーブル」は、セッション間の仮想 Ethernet フレームのスイッチングには使用されませんが、どのセッションがこれまでにどの IP アドレスを送信元としたパケットを送信したかというデータをリアルタイムで保持することにより、ユーザー毎のセキュリティポリシーを厳密に適用させることができます。

    仮想 HUB の管理者は、最新の仮想 HUB の MAC アドレステーブルの内容を表示することができます。これにより、どの VPN セッションのコンピュータが、どのような IP アドレスを用いて通信を行っているのかをいつでも把握することができます。

    仮想 HUB の IP アドレステーブルの表示

    「VPN サーバー管理マネージャ」の [セッションの管理] 画面で、[IP アドレステーブル一覧] ボタンをクリックすると、IP アドレステーブルの一覧が表示されます。「vpncmd」では、「IpTable」コマンドを使用して取得することができます。

    なお、クラスタ環境でクラスタコントローラに対して IP アドレステーブルを要求した場合、クラスタコントローラはすべてのクラスタメンバサーバー上の IP アドレステーブルを合わせて応答します。

    3-4-8.png

    IP アドレステーブル管理画面

    IP アドレステーブルの各レコード (IP アドレスエントリ) に対する項目名は以下のとおりです。

    項目名 説明
    セッション名 IP アドレスエントリが関連付けられている「セッション名」を示します。
    IP アドレス
    IP アドレスエントリが示す「IP アドレス」の本体です。

    なお、IP アドレスの後の部分に "(DHCP)" と表示される場合があります。これは、その IP アドレスが、VPN 内の DHCP サーバーによって割り当てられた IP アドレスであることを示します。

    作成時刻 IP アドレステーブルに、エントリが作成された「日時」が表示されます。
    更新時刻 仮想 HUB が、最後に対応するセッション上で当該 IP アドレスを持つネットワークノードが存在していることを確認した日時が表示されます。[更新時刻] から 60 秒が経過した IP アドレスエントリは、次回のエージング時にテーブルから削除されます。
    場所 クラスタ内で、実際にその IP アドレステーブルが存在する VPN Server の「ホスト名」を示します。

    仮想 HUB の IP アドレステーブルの削除

    通常は必要ありませんが、仮想 HUB の管理者は任意の IP アドレステーブルエントリを削除することができます。IP アドレステーブルエントリを削除するには、「VPN サーバー管理マネージャ」で IP アドレステーブル一覧から IP アドレスエントリを選択し、[選択したエントリを削除] ボタンをクリックしてください。「vpncmd」では「IpDelete」コマンドで削除することができます。

    特定のセッションに関連付けられている IP アドレステーブルのみの一覧表示

    「VPN サーバー管理マネージャ」の [セッションの管理] 画面で特定のセッションを選択してから、[このセッションの IP テーブル] ボタンをクリックすると、選択したセッションに関連付けられている IP アドレステーブルエントリの一覧のみが表示されます。これにより、セッションを指定して、そのセッションの IP クライアントコンピュータ側で、どのような IP アドレスが使用されているのかを簡単に知ることができます。「vpncmd」では、「IpTable」コマンドに「セッション名」を引数として付けることで同様の操作が可能です。

    ただし、セッションの先でルータなどが接続されている VPN セッションの場合は、ルータの向こう側 (インターネットなど) から届いたパケットの送信元 IP アドレスがすべて関連付けられている場合があります。なぜならば、レイヤ 2 で動作する仮想 HUB には、それぞれの IP アドレスがルータ経由でルーティングされてきたものなのか、それともレイヤ 2 で直接接続されているノードから発信されたものなのかを、見分ける方法が存在しないからです。

    3-4-9.png

    特定のセッションに関連付けられている IP アドレステーブルのみの一覧表示

    3.4.8 IP アドレス存在確認ポーリングパケット

    仮想 HUB は 3.4.7 で説明したような IP アドレステーブルデータベースを持ち、常にどのセッションがどの IP アドレスを使用して通信を行なっているかを管理しています。また、IP アドレステーブルデータベースに登録された IP アドレスが実際に仮想 HUB が所属しているレイヤ 2 ローカルセグメント上に存在しているかどうかを調査するために、一定時間ごとに IP アドレス存在確認用のポーリングパケット (調査パケット) を ARP プロトコルを用いて送出し、応答があった IP アドレスのテーブルエントリの有効期限を更新し、応答がなかった IP アドレステーブルエントリについては一定時間後 (60 秒後) に IP アドレステーブルデータベースから削除することにより、IP アドレス存在確認をできる限り高い精度で行っています。

    この時、仮想 HUB は IP アドレステーブルエントリを元に、既知の IP アドレスに対する ARP 要求パケットを、対応するセッションに対してユニキャスト送信します。この ARP 要求パケットは、送信元 IP アドレスが "172.31.0.0/16" で、宛先 IP アドレスが調査対象の IP アドレスになります。

    通常の場合は、この動作によってレイヤ 2 セグメント上の IP アドレスの一覧が常に検査されますが、一部のオペレーティングシステム (FreeBSD など) は、送信元が "172.31.0.0/16" の ARP 要求パケットを受け取ると、それに対して応答しないばかりか、そのオペレーティングシステムの「syslog」などに「送信元が "172.31.0.0/16" の不正な ARP 要求パケットを受け取った」という警告メッセージを残してしまいます。

    通常はこの警告メッセージは無視しても問題ありませんが、同一セグメント上に多くの FreeBSD で動作するコンピュータが存在し、管理者から苦情が来るような場合は、IP アドレス存在確認ポーリングパケットを停止することが可能です。仮想 HUB で IP アドレス存在確認ポーリングパケットを停止するためには、VPN Server のコンフィグレーションファイルを、次のように書き換えてください。

    コンフィグレーションファイル内の [VirtualHUB] [仮想 HUB 名] [Option] ノード内の、「NoArpPolling」がデフォルトで「false」になっているので、これを「true」に書き換えます。

    	declare Option
    	{
    		uint MaxSession 0
    		bool NoArpPolling true
    		bool NoEnum false
    	}

    上記のように設定を変更することにより、仮想 HUB は ARP プロトコルによる定期的なポーリングパケットを、ユニキャスト配信しないようになります。

    なお「NoArpPolling」を「true」に設定した場合は、仮想 HUB が管理している IP アドレスデータベースの内容が最新状態である保証がなくなります。したがって、ユーザーやグループ毎のセキュリティポリシー項目のうち、下記の項目が正しく適用されなくなる可能性があります。したがって、「NoArpPolling」を「true」にして仮想 HUB を使用する場合は、以下のセキュリティポリシー項目は使用しないでください。

    セキュリティポリシー項目については、「3.5 仮想 HUB のセキュリティ」 をお読みください。

    • [DHCP が割り当てた IP アドレスを強制] ポリシー
    • [MAC アドレスの重複を禁止] ポリシー
    • [IP アドレスの重複を禁止] ポリシー
    • [IP アドレスの上限数] ポリシー

    3.4.9 ブリッジ / ルータモードセッション通信

    1.6 VPN 通信の詳細」 で解説されているように、「クライアントモードセッション」で VPN Client が接続しているセッションについては、ブリッジおよびルーティングが禁止されます。したがって、VPN Client がインストールされているコンピュータ側で、VPN セッションに接続している仮想 LAN カードと物理的な LAN カードとの間を、勝手にブリッジ接続したりルーティングしたりするような行為を防ぐことができます。

    VPN Client が、接続設定の [高度な通信設定] 項目内で [ブリッジ / ルータモード] を有効にした場合、または VPN Server / VPN Bridge からのカスケード接続の場合は、セッションは「ブリッジ / ルータモード」で接続されます。ブリッジ / ルータモードで接続されたセッションは、そのセッションの先 (接続元の側) で、どれだけ大きなレイヤ 2 ネットワークにブリッジされていたり、インターネットに対してルーティングされている場合、さらには別の仮想 HUB にカスケード接続されている場合でも、基本的にすべての通信が許可されます。

    VPN Client をブリッジ / ルータモードで仮想 HUB に接続するための具体的な方法については、「4.4 VPN Server への接続方法」 を参照してください。

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

    1.6 VPN 通信の詳細」 で解説されている「モニタリングモード」のセッションが仮想 HUB に接続されている場合、仮想 HUB 内を流れるすべての仮想 Ethernet フレームは自動的にコピーされ、モニタリングモードセッションに対してそのコピーが配信されます。したがって、モニタリングモードセッションで仮想 HUB に接続すると、仮想 HUB 内を流れるすべての仮想 Ethernet フレームを傍受することが可能です。これは、ネットワーク管理者によるトラブルシューティングおよび IDS の設置などに役に立つことがあります。

    モニタリングモードセッションは、仮想 HUB 内のすべての通信を受け取ることができますが、逆に仮想 HUB に対して通信を発信することはできません。

    VPN Client を「モニタリングモード」で仮想 HUB に接続するための具体的な方法については、「4.4 VPN Server への接続方法」 を参照してください。

    仮想 HUB 内を流れる仮想 Ethernet フレームの数が、コンピュータや周辺デバイスの処理能力を超えているような場合や、フレームバッファの空き容量が不足してしまった場合は、SoftEther VPN ソフトウェアはそのフレームを破棄してシステム全体の安定性を保とうとする場合があります。したがって、状況によってはすべてのフレームを受信できない場合があります。

    3.4.11 カスケード接続機能

    カスケード接続について

    「カスケード接続」の仕組みと作成方法は、SoftEther VPN を用いて拠点間を接続する VPN を作成する上で非常に重要です。

    カスケード接続機能を使用すると、VPN Server 内の仮想 HUB を、同一または別のコンピュータ上で動作している仮想 HUB に対してカスケード接続することができます。

    別のコンピュータ上で動作している 2 つの仮想 HUB や、同一のコンピュータであっても 2 つの仮想 HUB が動作している場合は、それらの仮想 HUB 同士はもともと何の繋がりもないため、レイヤ 2 のネットワーク的には完全に分離された 2 つのセグメントです。しかし、2 つの仮想 HUB を、インターネットなどの公共の IP ネットワークを経由して 1 つのセグメントとして運用したいような場合が多くあります。たとえば「拠点間接続 VPN」(「1.4 VPN の動作原理と通信方法」 を参照してください) を構築するような場合に「カスケード接続」は必須です。カスケード接続を使用すると、2 つ以上の仮想 HUB の間をあたかも非常に長い LAN ケーブルで接続したかのような動作が可能となります。

    遠隔地にある仮想 HUB「A」と、仮想 HUB「B」をカスケード接続すると、A に接続していた仮想 LAN カードや A とローカルブリッジ接続していたネットワーク上のコンピュータと、B に接続していた仮想 LAN カードや B とローカルブリッジ接続していたネットワーク上のコンピュータとの間は、「レイヤ 2 (Ethernet レベル)」で自由に通信することができるようになります。つまり、お互いの仮想 HUB に接続しているコンピュータ同士は、それが VPN Client による仮想的なものであるとか、または物理的な LAN カードの先が仮想 HUB にローカルブリッジしていて、その仮想 HUB がカスケード接続され、さらに別の仮想 HUB を経由して目的のコンピュータに到達しているといったような、実際のネットワークトポロジを意識せずにレイヤ 2 レベルで自由に通信することができるようになるのです。

    3-4-10.png

    仮想 HUB 間のカスケード接続

    カスケード接続を行うには、当然のことながら「カスケード接続を行う側の仮想 HUB」と、「カスケード接続を受ける側の仮想 HUB」の 2 つの仮想 HUB が存在することになりますが、ここでカスケード接続を受ける側の仮想 HUB から見ると、カスケード接続を行う側からのカスケード接続は一般的な VPN セッションの接続 (ブリッジ / ルータモードセッション) として処理されます。その際、VPN Client によって仮想 HUB への VPN 接続が行われる場合と同様にユーザー認証が必要となります。

    3-4-11.png

    カスケード接続を行う側と受ける側

    カスケード接続の作成方法

    仮想 HUB に、別の仮想 HUB への「カスケード接続」を作成するには、「VPN サーバー管理マネージャ」で [カスケード接続の管理] ボタンをクリックします。すると、["仮想 HUB 名" 上のカスケード接続] というウインドウが表示されます。ここで [新規作成] をクリックして、カスケード接続先の VPN サーバーの「ホスト名」や「仮想 HUB」、およびユーザー認証などに関する必要事項を入力します。カスケード接続を行う際には、直接 TCP/IP 接続を使用する他、HTTP プロキシサーバーや SOCKS プロキシサーバーを経由して VPN 接続を行うこともできます。

    新しいカスケード接続を作成する際に入力する各種項目は、VPN Client で新しい接続設定を作成して入力する必要がある項目とほぼ同じですので、それぞれの項目の意味については、「4.4 VPN Server への接続方法」 を参照してください。

    カスケード接続では、「スマートカード認証」を除いたすべての方法のユーザー認証が利用可能です。

    「カスケード接続」の設定は、カスケード接続を行う側の仮想 HUB で作成します。カスケード接続を受ける側の仮想 HUB には、カスケード接続を作成する必要がありません。したがって、2 台の VPN Server 内の仮想 HUB 同士をカスケード接続する場合は、カスケード接続を受ける側と行う側について、それぞれをどちらにするか選択してからカスケード接続の構成を行ってください。
    VPN Server の仮想 HUB と VPN Bridge とをカスケード接続する場合は、必ず VPN Server の仮想 HUB 側がカスケード接続を受ける側となり、VPN Bridge の "BRIDGE" という名前の仮想 HUB が、カスケード接続を行う側となります。これは、VPN Bridge はカスケード接続を含む VPN 接続を受け付けることができないためです。
    カスケード接続を受ける側の仮想 HUB では、カスケード接続を受けるために必ず事前にカスケード接続用の「ユーザー」を作成しておいてください。カスケード接続を行う側の仮想 HUB では、新しいカスケード接続を作成する際にその「ユーザー名」と「認証情報」を指定することになります。
     

    3-4-12.png

    カスケード接続の作成・編集画面

    カスケード接続のオンライン / オフライン状態

    仮想 HUB に新しいカスケード接続を作成すると、そのカスケード接続は「オフライン」状態となります。オフライン状態のカスケード接続は、そのままでは通信を行いません。カスケード接続を用いた通信を開始するには、「VPN サーバー管理マネージャ」の ["仮想 HUB 名" 上のカスケード接続] 画面でカスケード接続を選択し、[オンライン] ボタンをクリックしてください。

    カスケード接続がオンライン状態になると、そのカスケード接続の接続設定にしたがって、仮想 HUB はカスケード接続をできる限り接続状態にしようと試みます。カスケード接続先の VPN Server の仮想 HUB への接続が確立すると、カスケード接続が成功したことになり、[状態] に [オンライン (接続済み)] と表示されます。何らかのエラーが発生した場合は、[状態] にエラーコードが表示されます。エラーの原因が、作成したカスケード接続の設定内容の入力ミスなどである場合は、カスケード接続を一旦オフラインにしてから [編集] ボタンをクリックして接続設定の内容を修正して、再度 [オンライン] ボタンをクリックしてみてください。

    2.1 VPN 通信プロトコル」 において「VPN 接続に失敗したり VPN 通信中に接続が切断された場合の再接続設定 」で説明されているように、カスケード接続中の VPN セッションで、接続に失敗したり、VPN セッションが切断された場合は、10 秒間に 1 回接続を再試行します。この動作により、仮想 HUB は設定されたカスケード接続先の仮想 HUB に対して、ネットワークが良好な限り常時接続状態を保つように努力します。

    なお、カスケード接続の接続状況が変化した場合は、その記録が VPN Server の「サーバーログ」および仮想 HUB の「セキュリティログ」に記録されます。これらのログを定期的にチェックすると、カスケード接続が接続に成功したり失敗したりした記録を知ることができ、回線状態を把握することができます。VPN Serverの「サーバーログ」および仮想HUBの「セキュリティログ」の閲覧方法については、「3.10 ロギングサービス」 を参照してください。

    3-4-13.png

    カスケード接続一覧管理画面

    カスケード接続に関連付けるセキュリティポリシー

    カスケード接続を受ける側の仮想 HUB で、そのカスケード接続を経由して入ってくる仮想 Ethernet フレームに対してセキュリティポリシーを適用したい場合は、そのカスケード接続のために使用する「ユーザー」に対して希望するセキュリティポリシーの設定を行ってください。

    カスケード接続を行う側の仮想 HUB で、そのカスケード接続を経由して入ってくる仮想 Ethernet フレームに対してセキュリティポリシーを適用したい場合は、そのカスケード接続の接続設定画面で [セキュリティポリシー] ボタンをクリックしてセキュリティポリシーを設定してください。

    3-4-14.png

    カスケード接続に関連付けるセキュリティポリシーの編集画面

    作成できるカスケード接続の数

    仮想 HUB 内に、「最大 128 個」までカスケード接続を作成することができます。ただし、現実的には大量のカスケード接続を 1 つの仮想 HUB から接続する必要はありません。

    カスケード接続の状態

    カスケード接続を行った側は、そのカスケード接続の接続状態をいつでも取得することができます。「VPN サーバー管理マネージャ」の ["仮想 HUB 名" 上のカスケード接続] 画面でカスケード接続を選択し、[状態] ボタンをクリックすると、そのカスケード接続セッションの通信状況がリアルタイムで表示されます。ここで表示される通信状況は、VPN Client の VPN 接続マネージャで表示される接続設定の通信状況で表示される内容とほぼ同一です。詳しくは、「4.5 VPN Server への接続」 を参照してください。

    カスケード接続を受けた側は、そのカスケード接続は「ブリッジ / ルータモード」のセッションとして認識されます。つまり仮想 HUB のセッション一覧に表示されます。決してカスケード接続を受けた側の [カスケード接続] 一覧に自動的に表示されることはありませんので、注意してください。詳しくは、3.4.5  を参照してください。

    カスケード接続を行う場合の注意事項

    カスケード接続は大変便利で役に立つ機能であり、カスケード接続がなければ SoftEther VPN の価値は半減してしまいます。しかし、カスケード接続を正しく使用するためにはいくつかの注意事項を守る必要があります。

    • カスケード接続を作成する際は、事前に構成する VPN のネットワークトポロジを入念に設計し、メモを取っておくなどして、適切な方法でカスケード接続を使用してください。たとえば 3 つの仮想 HUB が各拠点にあり、それらの拠点それぞれで、物理的な LAN との間がローカルブリッジされている場合、それぞれの仮想 HUB 同士をカスケード接続してしまうと、レイヤ 2 のネットワークトポロジがループしてしまい、通信が麻痺したりブロードキャストストームが発生する原因になったりします。カスケード接続を使用する場合はレイヤ 2 でループを作成するようなことは絶対に避けてください。
    • カスケード接続機能において、SoftEther VPN Server は「スパニングツリープロトコル」をサポートしていません
    • カスケード接続を行う側の仮想 HUB には、カスケード接続設定を作成してそれを「オンライン」にする必要があります。カスケード接続を受ける側の仮想 HUB には、そのカスケード接続を受けるための「ユーザー」を事前に定義しておく必要があります。
    • カスケード接続を行う側では、カスケード接続は、VPN Client による VPN 接続であるのと同等に取り扱われます。そのため、カスケード接続を作成する際の設定は VPN Client で新しい接続設定を作成する際の設定と類似しています。

    vpncmd を使用したカスケード接続の作成、削除、設定変更および制御

    「vpncmd」を使用してカスケード接続の制御を行うには、"Cascade" で始まるコマンドを使用します。これらのコマンドを用いることにより、VPN サーバー管理マネージャの GUI で行う設定と同じ操作を「vpncmd」から行うことができます。「vpncmd」を使用してカスケード接続の制御を行う方法については、「6.4 VPN Server / VPN Bridge の管理コマンドリファレンス (仮想 HUB 編)」 を参照してください。

    3.4.12 カスケード接続におけるサーバー認証

    カスケード接続においても、「2.3 サーバー認証」 で解説されている「サーバー証明書」の検証によるサーバー認証処理は VPN Client による接続時と同様にサポートされており、カスケード接続先の VPN Server が正しい証明書を持っているかどうかを接続時にチェックすることができます。

    この場合、接続先 VPN Server の「固有証明書」を登録する場合は、カスケード接続設定編集画面の [固有証明書の登録] ボタンから、任意の X.509 証明書を選択することによって固有証明書の登録は完了します。「署名済み証明書認証」を使用する場合は、カスケード接続を行う側の仮想 HUB の [信頼する証明機関の証明書] に信頼するルート証明書 (または中間証明書) を登録してください。

    SoftEther VPN Bridge の仮想 HUB ("BRIDGE" という名前で固定されています) から、SoftEther VPN Server に対してカスケード接続する場合は、サーバー認証方式のうち「署名済み証明書認証」を使用することはできません。これは SoftEther VPN Bridge の制限事項です。

    3.4.13 ローカルブリッジについて

    1.4 VPN の動作原理と通信方法」 で解説されているローカルブリッジ機能の設定は、SoftEther VPN Server 全体の管理者のみが行うことができます。したがって、各仮想 HUB の管理者権限では、その仮想 HUB と VPN Server が動作しているコンピュータの物理的な LAN カードとの間のブリッジ接続を行うことはできません。ローカルブリッジの作成や削除の方法については、「3.6 ローカルブリッジ」 を参照してください。

    3.4.14 Administrator ユーザーによる接続

    仮想 HUB には、複数のユーザーやグループを追加することができます (具体的な管理方法については 3.5.4 を参照してください)。通常、仮想 HUB に対して、リモートから VPN 接続を行う場合は、仮想 HUB の管理者によって仮想 HUB に事前に登録されたユーザー名を指定して接続を行うことになります。

    例外として、仮想 HUB の管理者が、リモートコンピュータからその仮想 HUB に対して、ユーザー名を「 Administrator」、パスワードを「その仮想 HUB の管理パスワード」に指定して VPN 接続することが可能です。この VPN 接続は、仮想 HUB にユーザーが 1 人も存在しない場合でも、常に接続することが可能です。仮想 HUB 管理者は、この機能を用いていつでも自分が管理する仮想 HUB に対して VPN 接続を行うことができます (VPN Client からの接続だけではなく、VPN Server / VPN Bridge からのカスケード接続も可能です)。

    なお、「Administrator」というユーザーは特殊であり、この名前のユーザーを手動で仮想 HUB に追加することはできません。

    「Administrator」として仮想 HUB に VPN 接続した場合は、下記のようなセキュリティポリシーが適用されます。

    • [ブロードキャスト数を制限しない] が有効
    • [モニタリングモードを許可] が有効

    上記以外のセキュリティポリシー内のポリシーは、すべてデフォルトのセキュリティポリシー (「3.5 仮想 HUB のセキュリティ」 を参照してください) であると見なされます。

    したがって、「Administrators」として仮想 HUB に VPN 接続する際は、常に最も制限の小さい設定で接続が完了します。また、[モニタリングモード] を有効にして VPN 接続することが可能です。

    3.4.15 仮想 HUB の情報の取得

    仮想 HUB の管理者は、仮想 HUB に関する最新情報を取得することができます。仮想 HUB に関する情報を取得するには、仮想 HUB の管理画面の [この仮想 HUB の現在の状況] を参照してください。ここで [最新の状態に更新] ボタンをクリックすると、仮想 HUB の状況がリアルタイムに変化する様子が分かります。

    「vpncmd」では「StatusGet」コマンドを使って、仮想 HUB の状態を取得することができます。

    3-4-15.png

    仮想 HUB の情報の表示画面

    3.4.16 その他の仮想 HUB のオプション

    仮想 HUB のオプションのうち、VPN Server の設定ファイルを直接書き換えることによって変更することができるオプションのうち、これまでの本マニュアル内では説明していない項目として、以下のようなものがあります。これらの項目は、ネットワークやコンピュータシステムに関するとても詳しい知識を持った方のためのものです。

    これらの項目は、デフォルトでは false になっています。true に設定するためには、VPN Server サービスを停止させてから、VPN Server の設定ファイルである vpn_server.config 内の [VirtualHUB] [仮想 HUB 名] [Option] ノード内の項目を書き換えてください。

    項目名 説明
    NoIpTable この項目が true のとき、IP アドレステーブルを仮想 HUB 内において内部的に作成・管理しません。仮想 HUB における IP レイヤのパケット解釈が実行されなくなるため、通信速度が若干向上します。
    ManageOnlyPrivateIP この項目が true のとき、IP アドレステーブルにはプライベート IP アドレスに該当するアドレスのみを登録します。それ以外の IP アドレスは IP アドレステーブルに登録されません。
    FilterPPPoE この項目が true のとき、仮想 HUB は流れるすべての PPPoE (PPP over Ethernet) パケットを破棄します。
    FilterOSPF この項目が true のとき、仮想 HUB は流れるすべての OSPF (Open Shortest Path First) パケットを破棄します。
    YieldAfterStorePacket この項目が true のとき、仮想 HUB が内部的処理において宛先のセッション宛のパケット送信キューにパケットをストアした後、その処理を行ったスレッドをイールドに設定し、他のスレッドに CPU 時間を譲ります。一部のハードウェアやオペレーティングシステムでは、この項目を true に設定することにより通信速度が向上する場合があります。