ローカルブリッジ接続機能
ローカルブリッジ接続機能は、PacketiX VPN による VPN
を接続する上でよく使用する機能です。ローカルブリッジ接続を用いて、仮想的なネットワークと物理的なネットワークを Ethernet
のレベルで接続してください。ここではローカルブリッジの概念、設定方法および注意事項について解説します。
ローカルブリッジとは
ローカルブリッジ接続機能 (以下「ローカルブリッジ」) を使用すると、VPN Server または VPN Bridge
内で動作している仮想 HUB と、そのサーバーコンピュータ上に接続されている物理的な LAN カードとの間をレイヤ 2 で接続し、元々別々の
Ethernet セグメントとして動作していた 2 つのセグメントを 1 つのセグメントに結合することができます。
ローカルブリッジにより、仮想 HUB に接続しているコンピュータと物理的な LAN
に接続しているコンピュータの間で、互いに相手が物理的には別のネットワークに接続されているにもかかわらず、論理的には同一の Ethernet
セグメントに接続されていることになり、Ethernet のレベルで自由に通信することができるようになります。
ローカルブリッジを使用すると、リモートアクセス型 VPN および拠点間接続型の VPN
を簡単に構築することができます。詳しくは、「10.4 一般的なリモートアクセス VPN の構築」、「10.5 拠点間接続 VPN の構築 (ブリッジ接続を使用)」 および
「10.6 拠点間接続 VPN の構築 (IP ルーティングを使用)」 をお読みください。
ローカルブリッジ機能 |
ローカルブリッジの設定と動作
ローカルブリッジを作成するために必要な権限
ローカルブリッジは VPN Server または VPN Bridge に物理的に接続されている LAN カード (Ethernet
アダプタ) と仮想 HUB
の組み合わせを指定して定義します。ローカルブリッジを新しく作成したり既存のローカルブリッジを削除したりすることができるのは、VPN Server
全体の管理者に限られます。仮想 HUB の管理者はその仮想 HUB に対してのローカルブリッジであっても任意に作成することはできません。
ローカルブリッジの動作
ローカルブリッジを定義すると、指定した仮想 HUB と物理的な LAN カードとの間で Ethernet
パケットを送受信することができるようになります。ローカルブリッジで指定されている仮想 HUB 名が存在しなかったり、または物理的な LAN
カードが存在しないかオペレーティングシステムによって無効化されてしまっている場合は、そのローカルブリッジ機能は自動的に停止します。ただし、停止する要因になっている状態が解消されることによって自動的に再開します。
新しいローカルブリッジの作成
ローカルブリッジを新規に定義するには、VPN サーバー管理マネージャの [ローカルブリッジ設定] ボタンをクリックします。すると
[ローカルブリッジ設定] というダイアログボックスが表示されるので、[仮想 HUB] でローカルブリッジしたい仮想 HUB を選択し、[LAN
カード] でその仮想 HUB とブリッジしたい LAN カード名を選択して [ローカルブリッジを追加] ボタンをクリックしてください。
vpncmd では、BridgeDeviceList コマンドおよび BridgeCreate
コマンドで同様の操作が可能です。
なお、新しいローカルブリッジを作成する際に仮想 HUB 名を指定しますが、存在しない仮想 HUB 名やオフラインになっている仮想 HUB
名を指定してもエラーにはならずに、ローカルブリッジとして正しく登録されます。ただし、その名前の仮想 HUB
の動作が開始するまではローカルブリッジの状態は [オフライン] になります。
ローカルブリッジは複数作成することができます。ただし、同一の仮想 HUB と物理的な LAN
カードとの組み合わせを複数登録することはできません。
ローカルブリッジ設定画面 |
ローカルブリッジの状態
ローカルブリッジの状態は以下の 3 種類があります。
- 動作中
ローカルブリッジは正しく動作しており、仮想 HUB と物理的な LAN カードの間で Ethernet
フレームを送受信しています。
- エラー発生
オペレーティングシステムに対して物理的な LAN
カードにアクセスするように要求した結果、そのデバイスが存在しないなどのエラーが発生しています。
- オフライン
ローカルブリッジとして指定されている仮想 HUB が存在しないかオフラインです。
仮想 LAN カードとのローカルブリッジ
もし VPN Server または VPN Bridge をインストールしているコンピュータに VPN Client
がインストールされており仮想 LAN カードがシステムに登録されている場合は、物理的な LAN カード一覧に仮想 LAN
カードも表示されます。この場合、技術的には仮想 HUB と仮想 LAN
カードの間でローカルブリッジを構成することは可能ですが、実際にはそのような構成を行うメリットはほとんどありません。
ローカルブリッジ用の LAN カードの準備
ローカルブリッジ用に新しい物理的な LAN カードを増設する
仮想 HUB と物理的な LAN カードとの間でローカルブリッジ接続を行うことによって、仮想 HUB および仮想 HUB
にリモート接続した VPN Client や他の仮想 HUB
がローカルブリッジ先の物理的なネットワークと同一セグメントとして直接通信することができるようになります。
この場合、ローカルブリッジ接続先として指定したい物理的な LAN が、その VPN Server または VPN Bridge
が通常の通信 (つまり他の VPN ソフトウェアとの VPN 通信) に使用している LAN と同一である場合が多くあります。たとえば社内
LAN などの内部に VPN Bridge を設置し、別の場所にある LAN とインターネット経由で拠点間接続を行いたい場合、その VPN
Bridge がインターネットにアクセスするために使用する LAN とブリッジ接続の対象となる LAN は同一の LAN であることになります。
このような場合は、物理的な LAN に対してローカルブリッジを行う際に使用する物理的な LAN カードとして、その VPN Server
または VPN Bridge が VPN 通信のための物理的な通信を行う LAN
カード自身を指定することも可能ですが、この場合は下記のような問題が発生します。
- VPN Server または VPN Bridge が別の VPN Server とのカスケード接続などのための VPN
通信に使用しているフレームと、ローカルブリッジの対象となるフレームとを分離する作業が必要になり、このため CPU
時間が消費され、通信速度が低速になります。
- 物理的な LAN カードに対して入力された Ethernet フレームを、オペレーティングシステム内で TCP/IP
プロトコルスタックへのフレームバッファとローカルブリッジを行うために入力する際に必要となるフレームバッファの 2
つに複製しなければならないので、CPU 時間およびメモリ負荷が発生し、通信速度が低速になります。
したがって、物理的な LAN とローカルブリッジ接続を行う場合は、可能であれば VPN Server または VPN Bridge
を動作させるコンピュータに物理的に新しい LAN カードを増設し、その LAN
カードをローカルブリッジ専用として使用するべきです。ただし、コンピュータに空きの PCI スロットが 1
つも無いような場合や組み込みハードウェアで Ethernet ポートが物理的に増設できない場合は、この限りではありません。
ローカルブリッジ用 LAN カードの準備 |
ローカルブリッジ用の LAN カードではプロトコルスタックを使用しない
ローカルブリッジ用にコンピュータに用意したローカルブリッジ専用 LAN カードがある場合には、パフォーマンスを向上させるため、その LAN
カードには TCP/IP プロトコルや他のプロトコルスタックなどを無効にすることを推奨します。ローカルブリッジ用の LAN カードの役割は仮想
HUB と物理的な LAN との間の Ethernet フレームの公開であり、仮想 HUB
を動作させているオペレーティングシステムのプロトコルスタックがその LAN カードに対して介入する必要は全く無いからです。
Windows の場合は、TCP/IP プロトコルやその他のネットワークプロトコル、Microsoft
ネットワーククライアントなどのファイル共有サービスなど、すべてのプロトコルやサービスなどをローカルブリッジ用の LAN
カードから解除することができます。この設定を行うには、Windows の [ネットワーク接続] プロパティなどで LAN
カードのプロパティを開き、すべてのプロトコルとサービスのチェックボックスを解除してください。
ローカルブリッジ用 LAN カードからプロトコルスタックのバインドを解除 |
なお、技術的な都合によってローカルブリッジ用 LAN カードのプロトコルスタックを無効化することができないような場合でも、TCP/IP
プロトコルの設定を変更し、その LAN カードが DHCP サーバーから IP
アドレスを取得するようなことがないように設定してください。この設定を行わなければ、ローカルブリッジ用の LAN カードが DHCP サーバーから
1 つの IP アドレスの割り当てを自動的に受けてしまったり、その結果ルーティングテーブルが崩れて VPN
通信が不安定になるなどの問題が発生することになります。
ローカルブリッジ用 LAN カードへ固定 IP アドレスを設定 |
Linux の場合は、ローカルブリッジ用 LAN カードに対して ifconfig コマンドなどで IP アドレス 0.0.0.0
を割り当てるなどの方法で同等の効果を得ることができます。
ローカルブリッジセッション
仮想 HUB にローカルブリッジが関連付けられている場合、その仮想 HUB のセッション一覧を表示するとローカルブリッジセッション
(ユーザー名が "Local Bridge" のセッション) が存在していることがわかります。ローカルブリッジセッションは VPN Server
が仮想 HUB と物理的な LAN カードとの間を接続するために仮想 HUB に対して自動的に作成する仮想的なセッションです。
ローカルブリッジセッションの状態表示画面 |
対応する LAN カードの種類
ローカルブリッジに使用する LAN カードの必要条件
ローカルブリッジ機能は、下記の条件を満たした LAN カードに対応しています。
- オペレーティングシステムが Ethernet (IEEE802.3)
デバイスとして認識することができるデバイスドライバを持ったネットワークアダプタ。
- MTU (Ethernet ヘッダを含まない) として、1,500 バイトまでの送受信が問題なく行えるもの。
- プロミスキャスモードで動作することが可能なもの。
- ハードウェアおよびデバイスドライバの性能や FIFO
バッファの容量が十分にあり、高負荷をかけてもソフトウェアまたはハードウェアがクラッシュしたり発熱などによって動作が不安定にならないもの。
推奨する LAN カード
ソフトイーサ株式会社では、社内での検証の結果、下記の LAN カードの性能が非常に高いことを認め、これらの LAN
カードの使用を推奨しています。ただし、その他の LAN
カードであっても一般的にローカルブリッジ対象として使用することは問題はありません。もしお使いの LAN
カードが性能不足でローカルブリッジ時に十分なパフォーマンスを得ることができないような場合は、下記の LAN カードへの交換を検討してください。
製造元 |
製品シリーズ |
通信規格 |
Intel |
Intel PRO シリーズ |
100Base-TX
1000Base-T
1000Base-SX
1000Base-LX |
Broadcom |
Broadcom NetXtreme シリーズ |
100Base-TX
1000Base-T |
3Com |
3Com シリーズ |
100Base-TX
1000Base-T |
プロミスキャスモードに対応していない LAN カードの使用
プロミスキャスモードに対応していない LAN カード
一部の LAN カードや LAN カードドライバは、プロミスキャスモードに対応していない場合があります。VPN Server / VPN
Bridge ではプロミスキャスモードに対応していない LAN カードを原則としてローカルブリッジのために使用することはできません。
なお、ほとんどの物理的な LAN カードはプロミスキャスモードに対応しているため、問題なく使用できます。
プロミスキャスモードに対応していない LAN カードには、代表的なものとして下記のようなものがあります。
- 無線 LAN (IEEE802.11) 用の LAN カード。
- その他プロミスキャスモードに移行することができないデバイスドライバを持った LAN カード。
プロミスキャスモード非対応 LAN カードを強制的に使用する方法
プロミスキャスモードに対応していない LAN
カードを強制的に使用することが可能です。ただし、多くの制限事項が発生するためこの方法はお勧めできません。この方法は通常は使用せず、どうしてもプロミスキャスモードに対応していない
LAN カードをローカルブリッジのために使用したい場合に適用してください。
この設定を行うためには、ローカルブリッジを定義したあと、VPN Server のコンフィグレーションファイルの
LocalBridgeList ノード内の LocalBridge0 などの名前で定義される目的の LAN
カード名が指定されているローカルブリッジ定義エントリ内の NoPromiscuousMode を true
に書き換えてください。具体例は、下記のとおりです。
declare LocalBridgeList
{
declare LocalBridge0
{
string DeviceName Intel(R)$20PRO/1000$20MT
bool FullBroadcastMode false
string HubName SoftEther$20Network
bool MonitorMode false
bool NoPromiscuousMode true
}
}
|
タグ付き VLAN フレーム
PacketiX VPN ではタグ付き VLAN フレームの使用に対応している場合があります。ただし、対応状況はローカルブリッジに使用する
LAN カードの種類やデバイスドライバの特性に依存します。また、タグ付き VLAN
フレームを正しく扱うことができるかどうかについて、ソフトイーサ株式会社は保証していませんのでご注意ください。タグ付き VLAN
フレームが流れているネットワークを仮想 HUB にブリッジ接続する場合は下記のようになります。
ローカルブリッジ用 LAN カードがタグ付き VLAN フレームに対応している場合
LAN カードのデバイスドライバなどの設定を行い、タグ付き VLAN に関する設定を行ってください。設定方法は LAN
カードのハードウェアマニュアルなどを参照してください。
ローカルブリッジ用 LAN カードがタグ付き VLAN フレームに対応していない場合
LAN カードのハードウェアがタグ付き VLAN フレームに対応していない場合は、もしタグ付き VLAN フレームが LAN
カードから入力された場合でも、タグ部分は通常の Ethernet
フレームの一部としてソフトウェア的に読み取ることができます。このような場合は、PacketiX VPN はそのフレームが物理的に流れる
Ethernet フレームをそのまま仮想化・カプセル化して VPN に流します。ただし、タグ付き VLAN フレームを含めてすべてのフレームは
MAC ヘッダを含めて 1,514 バイトを超えることはできません。
仮想 HUB 内の通信内容を LAN カードにすべて出力するモード
ローカルブリッジをモニタモードに設定する方法
「3.4.10 モニタリングモードセッション通信」 で解説されているような機能を使用すると、仮想 HUB に VPN 接続したユーザーはその仮想 HUB
内を流れるすべての仮想 Ethernet フレームを受信 (傍受) することができます。これと同様の動作をローカルブリッジしている仮想 LAN
カードに対して行うことができます。
ローカルブリッジ接続の定義で「モニタモード」を有効にすると、ローカルブリッジ接続している LAN カードからは、その仮想 HUB
内を流れるすべての Ethernet
フレームが出力されます。ローカルブリッジ接続をモニタモードに設定する操作は通常は使用せず、またセキュリティ上危険なため VPN
サーバー管理マネージャや vpncmd
コマンドからは直接行うことができないようになっています。ローカルブリッジ接続をモニタモードに設定するには、ローカルブリッジを定義したあと、VPN
Server のコンフィグレーションファイルの LocalBridgeList ノード内の LocalBridge0
などの名前で定義される目的の LAN カード名が指定されているローカルブリッジ定義エントリ内の MonitorMode を
true に書き換えてください。具体例は、下記のとおりです。
declare LocalBridgeList
{
declare LocalBridge0
{
string DeviceName Intel(R)$20PRO/1000$20MT
bool FullBroadcastMode false
string HubName SoftEther$20Network
bool MonitorMode true
bool NoPromiscuousMode false
}
}
|
モニタモードに設定した LAN カードの LAN ポートに別の機器を接続し、その機器で仮想 HUB
を流れるすべてのパケットを傍受することができます。なお、モニタリングモード (「3.4.10 モニタリングモードセッション通信」 を参照してください)
と同様に、パケットを発信することはできません。
モニタモードに設定した LAN カードの使用方法
仮想 HUB に対してモニタモードで設定してローカルブリッジ接続している LAN カードに、ネットワークを流れるすべての Ethernet
フレームをキャプチャしてログとして保存する外付けハードウェアや IDS または IDP などのセキュリティ装置を接続することにより、仮想 HUB
内を流れるすべての通信内容をモニタリングすることができます。
この図は通常のモニタモードで接続した VPN セッションの図であるが、「モニタモード」に設定した LAN
カードはこの図の「システム管理者」と同等に仮想 HUB 内のすべての Ethernet フレームを物理的に受け取れる |
仮想 HUB 内を流れる仮想 Ethernet
フレームの数がコンピュータや周辺デバイスの処理能力を超えているような場合やフレームバッファの空き容量が不足してしまった場合は、PacketiX
VPN
ソフトウェアはそのフレームを破棄してシステム全体の安定性を保とうとする場合があります。したがって、状況によってはすべてのフレームを受信できない場合があります。 |
tap デバイスの使用
Linux 版 VPN Server / VPN Bridge
を使用している場合は、ローカルブリッジ先のネットワークデバイスとして、既存の物理的な LAN カードを指定するのではなく、新しい tap
デバイスを作成してその tap デバイスに対してブリッジ処理を行うことが可能です。この場合、Universal TUN/TAP
デバイスがカーネルに組み込まれており、/dev/net/tun ファイルとしてアクセスすることが可能である必要があります。
この機能によって生成された tap デバイスは、仮想 HUB に直接接続した仮想 LAN カードのように振舞います。tap
デバイスは仮想ネットワークに関して十分高度な知識をお持ちの場合にのみ使用してください。
登録された tap デバイスの表示および IP アドレスなどの設定を行いたい場合は、ifconfig コマンドを使用します。tap
デバイス名は Linux カーネルにおいて "tap_" という名前で始まるネットワークインターフェイスとして認識されます。
# ifconfig
tap_test Link encap:Ethernet HWaddr 00:AC:11:9F:E2:8F
inet6 addr: fe80::2ac:11ff:fe9f:e28f/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:4 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:500
RX bytes:0 (0.0 b) TX bytes:308 (308.0 b)
|
Windows におけるローカルブリッジの注意事項
Windows オペレーティングシステムでローカルブリッジ機能を使用する場合の注意事項は下記のとおりです。
- ローカルブリッジ機能を使用するには、VPN Server / VPN Bridge
をサービスモードとして動作させる必要があります (またはユーザーモードで起動する際は Administrators 権限が必要です)。
- 一般ユーザー権限で VPN Server / VPN Bridge を起動している場合はローカルブリッジ機能は無効になります。
- 古いバージョンの Windows (Windows 98 / Windows 98 Second Edition /
Windows Millennium Edition / Windows NT 4.0 Workstation / Windows NT
4.0 Server / Windows NT 4.0 Server, Enterprise Edition)
を使用している場合は、ローカルブリッジ接続を行う際に WinPcap ソフトウェアをインストールしなければなりません。VPN
サーバー管理マネージャを使用している場合は、自動的に WinPcap のインストーラが起動してインストール処理が行われます。
- Windows 2000 以降の新しい Windows では、WinPcap のインストールは不要です。PacketiX VPN
はローカルブリッジ用のプログラムをカーネル内でその都度動作させてローカルブリッジに必要な処理を行います。
- ハードウェアオフローディング処理をサポートしている LAN
カードなどをローカルブリッジ接続に使用する場合は、ローカルブリッジ接続を構成してから一度コンピュータを再起動することを推奨します。再起動しない場合でもローカルブリッジは動作しますが、通信が不安定になる場合があります。このような場合は、コンピュータを再起動してください。再起動時にハードウェアオフローディング処理を無効化する設定が適用され、再起動後に安定して動作するようになります。
- ローカルブリッジ先の LAN
カード一覧として指定することができるデバイス名は、そのデバイスのハードウェアデバイスドライバが報告した名前が表示されます。なお、同一の種類のデバイスが
2 枚以上接続されている場合は、2 枚目以降のデバイス名の末尾に (2)、(3) などの名前が付き区別されます。この場合、どの LAN
カード名が物理的のどの LAN
カードに対応しているかは一般的に未定義ですが、一度正しく設定を行った後は通常はコンピュータを再起動してもデバイス順序が変わることはありません。
Linux におけるローカルブリッジの注意事項
Linux オペレティングシステムでローカルブリッジ機能を使用する場合の注意事項は下記のとおりです。
- ローカルブリッジ機能を使用するには、VPN Server / VPN Bridge
をサービスモードとして動作させる必要があります (またはユーザーモードで起動する際は root 権限が必要です)。
- 一般ユーザー権限で VPN Server / VPN Bridge を起動している場合はローカルブリッジ機能は無効になります。
- Linux カーネルにネットワークアダプタへの低レベルアクセス用のソケットインターフェイス (Packet Socket
と呼ばれる場合もあります) が組み込まれていない場合は、組み込む必要があります。なお、最近のほとんどの Linux
カーネルでは問題ありません。
- ハードウェアオフローディング処理をサポートしている LAN
カードなどをローカルブリッジ接続に使用する場合で通信が不安定な場合は、ハードウェアオフローディング処理を無効にしてください。詳しくはハードウェアのマニュアルを参照してください。
- Linux オペレーティングシステム内部での制限事項により、VPN 側 (仮想 HUB 側) からローカルブリッジしている
LAN カードに割り当てられる IP アドレスに対して通信を行うことはできません。この制限は PacketiX VPN
が原因ではなく、Linux の内部構造に原因があります。したがって、もし VPN 側 (仮想 HUB 側) から Linux
でローカルブリッジに使用しているコンピュータ本体と何らかの通信を行いたい場合 (たとえば VPN Server / VPN Bridge
サービスと HTTP サーバーサービスを両方動作させており、VPN 側からもサーバーサービスにアクセスさせたい場合)
はローカルブリッジ用の LAN カードを用意して接続し、その LAN カードと既存の LAN
カードの両方を物理的に同じセグメントに接続してください (この他の場合においても
「3.6.3 ローカルブリッジ用の LAN カードの準備」 で解説したように、ローカルブリッジに使用する LAN カードはそのための単独のものを用意することが推奨されています)。
- Windows ではすべての LAN カードの名前としてデバイス名を指定することができますが、Linux では
eth0、eth1 などのネットワークデバイス名を指定します。これらのデバイス名については、ifconfig -a
コマンドで取得することができます。
|