>お楽しみコーナー>Linux>softether サイトマップ 最終更新日:2005/07/22

センリュウのホームページへ ようこそ!

 SoftEtherとteleponによるテレビ電話  SoftEther 

 LINUX版のSoftEther(いまのところ仮想HUBのみ)が出たので使ってみることにしました。
 SoftEtherは、レイヤ2(データリング層)でのVPN(Virtual Private Network)を可能にするもので、インターネットなどのIP網上(デフォルトではTCPの443または7777ポート回線を使うということらしい)に仮想的なレイヤ2ネットワークを構成することができます。linuxサーバーには仮想スイッチングHUB(最大256台。HUB IDでセグメントを分割可能)をインストールし、クライアントには仮想LANカード(いまのところwindows版しかありません。)をインストールします。
 レイヤ2でのネットワークなので、仮想といえどもかなり自由なことが可能となります。ここではteleponというテレビ電話を動かしてみることにします。遠く離れたクライアントでも、仮想ネットワーク上でファイアウォールなども関係なくやりとりできることが確認できます。

Linux・仮想HUBサーバー

●インストール (RedHat8.0なら安定して使えた。FedoraCoreなどはうまく動かなかった。)
・http://www.softether.com/jp/よりダウンロード。 se_100_linux.zip。
・解凍
 適当なディレクトリ、ここでは/SoftEtherで解凍。
 # unzip se_100_linux.zip
・ビルド
 # gcc libse_hub.a -lpthread -lssl -lcrypt -o se_hub

●起動と終了
nohupコマンドを使うと、バックグラウンドで動作するデーモンサービスのようにシステムに常駐させておくことができる(ターミナルを閉じても、ログアウトしてもOK)。
# nohup ./se_hub &  (/SoftEtherに移動して、起動)

終了させるにはkillコマンドを用いるが、se_hubはpthreadを使用しているのでpsコマンドの出力は複数のse_hubプロセスがあるように見える。このうち終了させなければならないのはベースとなるse_hubプロセスなので、fオプションをつけて見るとよい。
# ps auxf
# kill -KILL ******

●設定、管理
telnetでサーバーのポート8023に接続してやる。ただし、xinetdでtelnetサービスを開始しておかなくてはならない。
# telnet localhost 8023
最初に管理用のパスワードを設定する。(再入力が求められる。次回からはこのパスワードを入力する。)

@ユーザーの作成
1-User Administration→2-Create User
ユーザー名とパスワード。(ユーザーは1つだけ用意しておけば、このユーザーを全員で使用すればよい。)
HUB IDの入力。(同一のものを入力すると同一セグメント内として通信できるようになる。ここでは0を指定。)
このあと、ユーザーのセキュリティオプションの設定になるが、少人数で使う場合は設定をする必要はないのでそのままリターンキーを押してゆけばよい。ここではE、Fはyにした。
表示されているセキュリティオプションを有効にするには、yまたは1。
無効にするには、nまたは0。
Enterキーは、変更なし。
@接続拒否(デフォルトは無効)
Aセッション再接続禁止(デフォルトは無効)
BDHCPサーバーが割り当てたIPアドレスを強制(デフォルトは無効)
CIPアドレスを1つに制限(デフォルトは無効)
DMACアドレスを1つに制限(デフォルトは無効)
EIPアドレスの重複禁止(デフォルトは無効)
FMACアドレスの重複禁止(デフォルトは無効)
Gブロードキャストパケットの禁止(デフォルトは無効)
HDHCPサーバーの動作禁止(デフォルトは無効)
IDHCPパケットのフィルタリング(デフォルトは無効)


Aポートの設定
SoftEtherは、デフォルトでプロトコル待ち受けポートとしてTCPの7777と443を使用している。ところが他のプロセスがこのポートを使用している場合は使えないので、このようなときは次のようにして、ポートを変更してやる必要がある。
3-Protocol Administration→0-TCP/IP Direct Connection(ポート7777)または1-HTTP Proxy Connection(ポート443)のポート番号を変更
また、クライアント側も変更する必要があるので注意。

Bse_hubプロセスの再起動。
設定は、softhub.cfg(バイナリデータファイル)に保存される。

●ログファイル
se_hubの動作ログは、softhub_debuglog.logファイル。
アクセスログなどは、/SoftEther/hub_logディレクトリ。

●サーバー証明書
SSLで暗号化しているが、サーバー証明書はca.crt、秘密キーはca.keyファイル(デフォルトで作成されている)。これらは、opensslコマンドを用いて自分専用のファイルを作成することができる。
@まず、秘密キーを生成する。# openssl genrsa -out ca.key -des3 1024
途中でpass phraseを聞いてくるので、「softether」と指定する必要がある(再入力あり)。
A続いて証明書ファイルを生成する。
# openssl req -new -x509 -key ca.key -out ca.crt
途中でca.keyのpass phraseを聞いてくるので「softether」を入力。
さらに、国名「JP」、県名、市名、組織名、部署名、氏名、メールを適宜入力していく。
Bse_hubプロセスの再起動。

●さいごに、サーバーマシンのファイアウォールなどで、SoftEtherの使用ポート(tcpの443と7777)を開けておくのを忘れないように!

クライアント・仮想LANカード

仮想LANカードはいまのところwindows版しかないので、windowsマシンにインストールする。win2000、win XPに対応(win98には未対応)

●インストール
http://www.softether.com/jp/よりダウンロード
解凍して、setup.exe。
仮想HUBはインストールしない。仮想LANカードのみインストール。

●設定
@SoftEther接続マネージャ→ウィンドウで右クリック→新規作成
接続名:適当な名称
プロトコル:直接TCP/IP接続
「接続設定」を開いて、仮想HUBサーバーのIPアドレスを入力。
ユーザー名とパスワードは、linuxで設定したものを入力。
あとの項目はそのまま=チェックをしたままにしておく。

A仮想 LANカードの設定
マイネットワークのプロパティ→「SoftEther 仮想 LAN 接続」のプロパティ→インターネットプロトコルTCP/IPのプロパティ  ここで仮想 LANカードのIPアドレスの設定をしておく。(192.168.2.12などプライベートアドレスにしておくとよい。別のカードと重ならないようにする)。

●テスト
互いにSoftEther接続マネージャで仮想HUBに接続して、
・アクセサリの「コマンドプロンプト」を起動して、ping  192.168.2.10 などとして相手の仮想IPアドレスをpingしてみる。
・うまくいったら、「ファイル名を指定して実行」で、\\192.168.2.10 などで相手とのネットワークが繋がるかどうか。

SoftEtherとteleponでテレビ電話をやってみる

teleponは、http://www2.lint.ne.jp/~lrc/in_video.htmよりダウンロード。
teleponは、動作が軽いし、呼び出し音が鳴るなど扱いやすいので採用してみました。

【使用】
まず、SoftEther接続マネージャで仮想HUBに接続しておく。
teleponは、左下の窓に相手のアドレス(仮想LANカードのアドレス)を入れて、電話ボタンを押すだけ。


履歴 2004/05 作成