「仮想レイヤ 3 スイッチ機能」は、VPN Server 内の複数の仮想 HUB 間に IP ルーティングを行うことができる仮想のルータを追加し、管理者が定義したルーティングルールにしたがって IP ルーティングを行うことにより、仮想 HUB のセグメント間のレイヤ 3 での接続を実現することができる機能です。
3.8.1 仮想レイヤ 3 スイッチとは
仮想レイヤ 3 スイッチの概要
「3.4 仮想 HUB の機能」 で解説した「仮想 HUB」は、物理的な「レイヤ 2 スイッチ」(スイッチング HUB) を、仮想的にソフトウェアによって実現したオブジェクトであり、VPN Server 内に複数作成することができます。仮想 HUB はレイヤ 2 での Ethernet フレームの交換処理のみをサポートしており、レイヤ 3 でのルーティングをサポートしていません。
仮想レイヤ 3 スイッチは、複数の仮想 HUB 内のレイヤ 2 セグメント間で IP ルーティングを行いたいという要望に基づいて開発され搭載された機能です。仮想レイヤ 3 スイッチは、通常のオフィスなどにある「ルータ」や「レイヤ 3 スイッチ」などの通信機器の機能をそのままソフトウェアとして実装したものです。複数の仮想 HUB を作成してレイヤ 2 セグメントを分離し、それらのレイヤ 2 セグメント間を IP ルーティングすることによって、それぞれのネットワーク間での IP パケットの交換をサポートします。
仮想レイヤ 3 スイッチによる IP ネットワーク間の IP ルーティング
仮想レイヤ 3 スイッチ機能は、ネットワークおよび IP ルーティングに関する詳しい知識をお持ちの方やネットワーク管理者のための機能です。通常の VPN 機能を使用する場合は、仮想レイヤ 3 スイッチ機能を使用する必要はありません。仮想レイヤ 3 スイッチ機能を使用する場合は、IP ルーティングに関する十分な知識をお持ちの上で、ネットワークに与える影響を十分考慮してから設定してください。本マニュアルでは IP ルーティングに関する知識をお持ちであることを前提して解説が行われています。 |
仮想レイヤ 3 スイッチに関する権限
仮想 HUB を作成することができるのは VPN Server 全体の管理者のみですが、同様に仮想レイヤ 3 スイッチを「作成」「削除」または「設定」することができるのも「VPN Server 全体の管理者のみ」です。各仮想 HUB の管理者は、自分が管理している仮想 HUB が、どのように仮想レイヤ 3 スイッチと接続されているのかを知ることはできますが、既存のレイヤ 3 スイッチを操作して接続を編集したり、ルーティングテーブルを操作したりすることはできません。したがって、仮想レイヤ 3 スイッチ機能を使用するには VPN Server 管理者が設定を行う必要があります。
3.8.2 ブリッジと IP ルーティングの違い
レイヤ 2 ネットワーク同士を接続する「ブリッジ」や仮想 HUB 間の「カスケード接続」は、2 つの別々のネットワークセグメント同士を、1 つのネットワークセグメント化する仕組みです。1 つのネットワークセグメント内で「TCP/IP プロトコル」を使用する場合は、原則としてそのセグメント内のコンピュータは同一の IP ネットワークに所属している必要があります (同一のセグメントで複数の IP ネットワークを多重化して通信させることもできますが、そのネットワークに接続しているコンピュータ同士は、同一の IP ネットワークに所属しているものとしか直接通信できません)。
これと比較して、IP ルーティングは 2 つの別々のネットワークセグメント間で、IP レイヤでパケット交換を行う仕組みです。詳しくはルータの動作や IP ルーティングの仕組みに関するドキュメントをお読みください。
物理的なルータやレイヤ 3 スイッチは、ルーティングの対象となる各ネットワークセグメントに対して 1 つの IP アドレスを持ち、その IP アドレスを経由して通信しようとする IP パケットを、ルータ内部で保持しているルーティングテーブルによって他の適切なインターフェイスに転送します。
VPN Server で定義することができる仮想的なレイヤ 3 スイッチも同様の仕組みで動作します。VPN Server で仮想 HUB 間に仮想レイヤ 3 スイッチを置くと、その仮想レイヤ 3 スイッチが接続している仮想 HUB 間で IP ルーティングが可能になります。この場合、仮想レイヤ 3 スイッチは、インターフェイスを両側のセグメントに対して 1 つずつ持ちます。例として「192.168.1.0/24」と 「192.168.2.0/24」の 2 つの IP ネットワークが存在し、それらの間で仮想レイヤ 3 スイッチを用いてルーティングを行う場合は、両側のネットワークに対してインターフェイスを接続し、たとえば「192.168.1.254」と「192.168.2.254」という 2 つの IP アドレスを割り当てます。すると、 「192.168.1.0/24」に所属するコンピュータは、「192.168.2.0/24」ネットワークに対して IP パケットを送信したい場合は、 「192.168.1.254」をゲートウェイとしてその IP パケットを送信することができます。「192.168.1.254」と「192.168.2.254」の 2 つのインターフェイスを持ったルータは、このパケットを「192.168.2.0/24」のネットワークに対して送り出します。このような仕組みで IP ルーティングは機能します。なお、VPN Server では、仮想レイヤ 3 スイッチが仮想 HUB に接続するための論理上のインターフェイスのことを「仮想インターフェイス」と呼びます。仮想レイヤ 3 スイッチと仮想 HUB との間の接続は、実際にはソフトウェアの内部のメモリ上で行われるものであり、ユーザーの目に見えるわけではありません。ただし、仮想レイヤ 3 スイッチによる仮想インターフェイスが接続されている仮想 HUB には、「仮想レイヤ 3 スイッチセッション」という特殊な仮想セッションが登録されます。
3.8.3 仮想レイヤ 3 スイッチの定義
VPN Server は、デフォルトでは「仮想レイヤ 3 スイッチ」を 1 つも持っていません。仮想レイヤ 3 スイッチは、VPN Server の管理者が必要な時に必要な数だけ作成することができます。
すべての仮想レイヤ 3 スイッチには名前を付けることができ、その名前によって識別されます。名前には「英数字および一部の記号」を使用することができます。新しい仮想レイヤ 3 スイッチを定義するには、その仮想レイヤ 3 スイッチの「名前」を決定してください。一度作成した仮想レイヤ 3 スイッチの名前は、あとから変更することができないので注意してください。
仮想レイヤ 3 スイッチに関する設定を行うには、「VPN サーバー管理マネージャ」の [レイヤ 3 スイッチ設定] ボタンをクリックし、[仮想レイヤ 3 スイッチ設定] ダイアログボックスを表示してください。また、ここにすでに作成されている仮想レイヤ 3 スイッチが登録されている場合は、その仮想レイヤ 3 スイッチをダブルクリックして設定画面を開くことができます(以後、仮想レイヤ 3 スイッチの操作方法の説明では、この画面からの操作方法について解説します)。「vpncmd」では、"Router" で始まる名前のコマンドを使用してください。
仮想レイヤ 3 スイッチ管理画面
新しい仮想レイヤ 3 スイッチを作成するには、[新規作成] ボタンをクリックして、新しく作成する仮想レイヤ 3 スイッチの「名前」を指定します。仮想レイヤ 3 スイッチを作成しても、仮想インターフェイスを定義して [動作開始] ボタンをクリックしなければ、その仮想レイヤ 3 スイッチは動作しません。
新規仮想レイヤ 3 スイッチ作成画面
3.8.4 仮想 HUB へ接続する仮想インターフェイスの追加
仮想レイヤ 3 スイッチを作成しても、それだけでは何の役にも立ちません。物理的なルータやレイヤ 3 スイッチの製品を購入して、机の上に置いただけの状態と同様です。ルータと各接続先のネットワークの間を、物理的に LAN ケーブルなどで接続するのと同様に、仮想レイヤ 3 スイッチに、接続したい先の仮想 HUB への仮想インターフェイスを登録する必要があります。
新しい仮想インターフェイスを登録するには、[仮想インターフェイスの追加] ボタンをクリックします。[仮想インターフェイスの追加] ダイアログボックスが表示されますので、ここで「接続先の仮想 HUB」を選択します。また、その仮想インターフェイスが、仮想 HUB 内で持つ「IP アドレス」と所属する「サブネット空間」も指定します。
仮想インターフェイス追加画面
仮想レイヤ 3 スイッチには、複数の仮想インターフェイスを作成することができます。通常は 2 個以上の仮想インターフェイスを追加します (1 個だけの場合はほとんど役に立ちません)。仮想レイヤ 3 スイッチによってルーティングの対象にしたい仮想 HUB をすべて登録してください。
仮想レイヤ 3 スイッチが直接接続することができる仮想 HUB は、同一の VPN Server 上で動作する仮想 HUB のみです。別のコンピュータの VPN Server、または VPN Bridge 上で動作する仮想 HUB との間を仮想レイヤ 3 スイッチによって IP ルーティングさせたい場合は、まずローカル側に適当な名前の仮想 HUB を作成しておき、その仮想 HUB に対して仮想レイヤ 3 スイッチから接続して、次にその仮想 HUB と別のコンピュータの VPN Server または VPN Bridge 上で動作する仮想 HUB との間を「カスケード接続」してください。 この方法で、離れた拠点場所の仮想 HUB または物理的な LAN 同士を仮想レイヤ 3 スイッチによって接続し、IP ルーティングの仕組みをうまく取り入れた拠点間接続 VPN を構築することができます。 従来は、同様の接続方法を行う場合には、VPN だけでなく IP ルーティングするためのハードウェアを物理的に購入する必要がある場合がありました。SoftEther VPN では、遠隔地同士を IP ルーティングによって VPN 接続するために必要な機能がソフトウェアとしてまとめられているため、複雑なネットワーク設計でも簡単に実装することができます。 |
3.8.5 ルーティングテーブルの編集
仮想レイヤ 3 スイッチは、通常の物理的なルータやレイヤ 3 スイッチと同様に、「ルーティングテーブル」を持っています。仮想レイヤ 3 スイッチは、特に何も指定しなくても、仮想 HUB に対して接続している仮想インターフェイスがあれば、その仮想インターフェイスに設定されている IP アドレスとサブネットマスクによって決定される IP ネットワークへのルート情報を持っています。したがって、仮想レイヤ 3 スイッチに対して直接接続されているレイヤ 2 セグメントに対するルーティングテーブルは定義する必要はありません。
直接接続されているレイヤ 2 セグメントを経由して、それよりも先のセグメントにある IP ネットワークに対して IP ルーティングを行う必要がある場合は、仮想レイヤ 3 スイッチのルーティングテーブルを直接編集して、適切な「ルーティングテーブルエントリ」を追加する必要があります。
現在のルーティングテーブル一覧は、[仮想レイヤ3 スイッチの編集] ダイアログで表示されます。新しい仮想レイヤ 3 スイッチを作成した直後は、ルーティングテーブルは「空」です。新しいルーティングテーブルエントリを追加したい場合は、[ルーティングテーブルエントリ] ボタンをクリックしてください。
ルーティングテーブルエントリ追加画面
[ルーティングテーブルエントリの追加] 画面には、新しく登録したいルーティングテーブルエントリの内容を指定するボックスが表示されています。ここで登録する必要があるのは、一般的なルータやレイヤ 3 スイッチでスタティックルーティングテーブルにエントリを追加する際に指定するような情報と同一です。具体的には下記のような項目を指定します。
- ネットワークアドレス
このルーティングテーブルを用いてルーティングの対象とする宛先 IP アドレスを含む「ネットワークアドレス」を指定します。 - サブネットマスク
ネットワークアドレスと共に「サブネットマスク」を指定します。 - ゲートウェイアドレス
IP パケットを渡す先の「ルータの IP アドレス」を指定します (つまり、次のルータの IP アドレスです)。ここで指定することができる IP アドレスは、この仮想レイヤ 3 スイッチが持つ各仮想インターフェイスで定義されている IP アドレスとサブネットマスクによって定義される IP ネットワークのうち、いずれかに含まれている必要があります (万が一含まれていない場合も、エラーなく登録されてしまいますのでご注意ください)。もし別の仮想レイヤ 3 スイッチが隣接する仮想 HUB に接続されている場合は、その別の仮想レイヤ 3 スイッチの持つ仮想ネットワークインターフェイスの IP アドレスである場合もあります。 - メトリック値
ルーティングテーブルエントリの「メトリック値」を指定します。
デフォルトルートを指定する場合は、ネットワークアドレスを「0.0.0.0」、サブネットマスクを 「0.0.0.0」と指定してください。 |
3.8.6 仮想レイヤ 3 スイッチの開始と停止
開始と停止
仮想ネットワークインターフェイスを、1 つ以上登録した仮想レイヤ 3 スイッチは、動作を開始することができます。動作を開始するには、[動作開始] ボタンをクリックしてください。また、動作中の仮想レイヤ 3 スイッチは、いつでも [動作停止] ボタンをクリックすることによって動作を停止することができます。
なお、[停止] 状態以外の状態では、その仮想レイヤ 3 スイッチの仮想インターフェイス一覧またはルーティングテーブルを編集することはできません。これらのパラメータを編集するためには、一旦仮想レイヤ 3 スイッチを停止してください。
仮想レイヤ 3 スイッチの状態
仮想レイヤ 3 スイッチには、以下の「3 つ」の状態があります。各仮想レイヤ 3 スイッチの状態は、[仮想レイヤ 3 スイッチ設定] でリアルタイムに表示されます。
状態 | 説明 |
停止 | 仮想レイヤ 3 スイッチが「停止」している状態です。この状態でのみ、仮想レイヤ 3 スイッチのパラメータの設定を行うことができます。 |
開始 (動作中) | 仮想レイヤ 3 スイッチが「動作」しており、定義されているすべての仮想インターフェイスの接続先仮想 HUB すべてが、VPN Server 上に存在し「オンライン」状態にあるので、仮想レイヤ 3 スイッチが機能していることを示します。この状態でのみ、仮想レイヤ 3 スイッチは IP ルーティング処理を行います。また、この状態で、定義されている仮想インターフェイスの接続先仮想 HUB が、1 つでも VPN Server から削除されるか 「オフライン」状態になった場合は、自動的に [開始 (エラー)] 状態に遷移します。 |
開始 (エラー) | 仮想レイヤ 3 スイッチは「動作開始」状態に設定されているものの、定義されているすべての仮想インターフェイスの接続先仮想 HUB のうち、1 つ以上が VPN Server に存在しないか「オフライン」状態になっており、仮想レイヤ 3 スイッチが IP ルーティング処理を開始できない状態です。この状態で、定義されている仮想インターフェイスの接続先仮想 HUB すべてが VPN Server 上に存在し、かつ「オンライン」状態になると、自動的に [開始 (動作中)] 状態に遷移します。 |
3.8.7 制限事項
仮想レイヤ 3 スイッチ機能の「制限事項」には、次のようなものがあります。
- 「ダイナミックルーティングプロトコル」には、対応していません。
- IGMP には対応していません。
- 仮想レイヤ 3 スイッチの仮想インターフェイスに対して、1,472 バイトを超える ICMP Echo リクエストを送信すると、1,472 バイトの ICMP Echo 応答が返ってきます。
参考文献
- 3.4 仮想 HUB の機能
- 6.3.44 "RouterList": 仮想レイヤ 3 スイッチ一覧の取得
- 6.3.45 "RouterAdd": 新しい仮想レイヤ 3 スイッチの定義
- 6.3.46 "RouterDelete": 仮想レイヤ 3 スイッチの削除
- 6.3.47 "RouterStart": 仮想レイヤ 3 スイッチの動作の開始
- 6.3.48 "RouterStop": 仮想レイヤ 3 スイッチの動作の停止
- 6.3.49 "RouterIfList": 仮想レイヤ 3 スイッチに登録されているインタ ーフェイス一覧の取得
- 6.3.50 "RouterIfAdd": 仮想レイヤ 3 スイッチへの仮想インターフェイスの追加
- 6.3.51 "RouterIfDel": 仮想レイヤ 3 スイッチの仮想インターフェイスの削除
- 6.3.52 "RouterTableList": 仮想レイヤ 3 スイッチのルーティングテーブル一覧の取得
- 6.3.53 "RouterTableAdd": 仮想レイヤ 3 スイッチへのルーティングテーブルエントリの追加
- 6.3.54 "RouterTableDel": 仮想レイヤ 3 スイッチのルーティングテーブルエントリの削除