BindAddr に '0.0.0.0:2425' と指定する事で 0.2 以前のバージョンと同じように IP アドレスを指定しないで動作させる事も可能です。しかし推奨しません。
0.0.0.0 ( INADDR_ANY ) を
BindAddr に指定して起動すると、以下のデメリットがあります。
- 自分でブロードキャストしたメッセージを自分で受信してしまう
0.0.0.0 で起動した場合自分で送信したメッセージを受信した場合、自分からのメッセージか他のエージェントからのメッセージかどうか区別がつかないため、Exchange Server が Exchange Server に対してホストリストを送信してしまいます。
実害はありませんが、無駄な動きです。
- どのネットワークインターフェイス ( IP アドレス ) でメッセージを送信するか分からない
192.168.0.128 と 192.168.1.128 両方のネットワークインターフェイスがある場合に 0.0.0.0 で起動すると、どちらのインターフェイス ( socket ) でメッセージが送信されるか分かりません。
エージェント側では Exchange Server の IP アドレスが、192.168.0.128 の場合もあれば 192.168.1.128 の場合もある事になってしまいます。
バージョン 0.2 以降の Exchange Server はマルチポートに対応しておりますので、
BindAddr を複数個設定する事で一つのサーバプロセスで十分動作します。しかし別のポート番号で複数起動する場合は、
1. ipmsgex.conf を別のファイル名でコピーする
2. コピーしたファイルのポート番号を書き換える
3. コピーしたファイルで Exchange Server を起動する。( -c オプション参照 )
で複数のサーバを起動することができます。
0.2 以降のバージョンでは複数のネットワークインターフェイスを
BindAddr で指定する事で同時に使用する事ができます。
複数のネットワークインターフェイスがある場合は、使用したい IP アドレスのインターフェイスを
BindAddr で
全て指定して下さい。
※
BindAddr に '0.0.0.0:2425' と指定する事で 0.2 以前のバージョンと同じように IP アドレスを指定しないで動作させる事も可能です。しかし推奨しません。
参照
BindAddr で IP アドレスを指定しなければなりませんか?
Linux などの OS の場合は、起動スクリプト rc.local に
とすれば OS 起動時にバックグラウンドで実行されると思います。
FireDaemon (
http://www.firedaemon.com/ ) を利用する事で Win32 版をサービスとして起動する事が出来ます。
Windows2000 上で Ver. 0.09 で確認を行ないました。
WindowsXP の場合は FireDaemon の Ver.1.5 BRC2 を使用すれば WindowsXP でサービスとして使用できるようです。
( むなかたさまありがとうございます。 )
まず Exchange Server を単体で起動させて、正常に動作している事を確認して下さい。次に FireDaemon をダウンロードしてインストールを行なって下さい。( 私は v0.09c + UI v1.0R3 をダウンロードしました。 )
設定方法は GUI の方を使用すると簡単です ( FireDaemonUI v1.0R3 )。FireDaemon Serviceを起動したら、それぞれ項目をセットしてください。
| 項目名
| 設定値
|
| Service Name
| IP Messenger Exchange Server
|
| Service Description
| IP Messenger Exchange Server
|
| Startup Type
| Auto
|
| Application Working Directory
| Exchange Server をインストールしたディレクトリ
|
| Application Executable
| ipmsgex.exe のフルパス
|
| Application Options
| 必要に応じて設定
|
あとは必要に応じて設定して下さい。OK ボタンを押すとサービス一覧に IP Messenger Exchange Server が追加されていると思います。
開始させて正常に開始すれば大丈夫です。
以下が Verbose モードで起動した時に表示されるメッセージの例です。
- 1行目
送受信区別、送受信時間
- 2行目
送受信元 IP アドレス・ポート番号、送受信元 IP アドレス・ポート番号、プロトコルコマンド番号、プロトコルオプション番号、メッセージサイズ
- 3行目
送受信したメッセージの内容
- 4行目
メッセージ破棄通知 ( プロトコル的に違反のメッセージを受信した場合に表示 )
recv : Sun Sep 21 01:06:40 2003
192.168.0.2:2426 => 192.168.0.2:2500 : 4 : 6356992 : 52 bytes
1:1064106413:Mikio Fukushima:MIKIO:6356996:mikio2426
REJECT : IPMSG_RECVMSG
recv : Sun Sep 21 01:06:45 2003
192.168.0.2:2426 => 192.168.0.2:2500 : 1 : 6356992 : 52 bytes
1:1064106415:Mikio Fukushima:MIKIO:6356993:mikio2426
send : Sun Sep 21 01:06:45 2003
192.168.0.2:2500 => 192.168.0.2:2426 : 3 : 0 : 58 bytes
1:1064074003:admin:Exchange Server:3:Exchange Server:IPMsg
recv : Sun Sep 21 01:15:59 2003
192.168.0.2:2428 => 192.168.0.2:2500 : 33 : 0 : 17 bytes
1:33:mikio:PC:33:
REJECT : IPMSG_RECVMSG
以下のコマンドとオプションフラグには未対応です。詳しくは IP Messenger のソースにある Protocol.txt をご覧ください。
基本的にファイル添付と暗号化が未対応です。
| オプション
| 説明
|
| コマンド
|
|
| IPMSG_DELMSG
| 封書破棄通知
|
|
|
| IPMSG_GETFILEDATA
| 添付ファイル通知(TCP で使用)
|
| IPMSG_RELEASEFILES
| 添付ファイル破棄
|
| IPMSG_GETDIRFILES
| 添付階層ファイル要求
|
|
|
| IPMSG_GETPUBKEY
| RSA 公開鍵取得
|
| IPMSG_ANSPUBKEY
| RSA 公開鍵応答
|
|
|
| オプションフラグ
|
|
| IPMSG_SERVEROPT
| サーバー(予約)
|
|
|
| IPMSG_PASSWORDOPT
| 錠前
|
| IPMSG_BROADCASTOPT
| ブロードキャスト(同報)
|
| IPMSG_MULTICASTOPT
| マルチキャスト(複数選択)
|
| IPMSG_NEWMUTIOPT
| ニューバージョンマルチキャスト(予約)
|
| IPMSG_NOLOGOPT
| ログに残さない(ことを推奨)
|
|
|
| IPMSG_FILEATTACHOPT
| ファイル添付
|
| IPMSG_ENCRYPTOPT
| 暗号
|
|
|
| IPMSG_RETRYOPT
| 再送フラグ(HOSTLIST取得時に使用)
|
|
|
| 暗号拡張部用フラグ
|
|
| IPMSG_RSA_512
| 拡張部に組み合わせを hex 表現で使用
|
| IPMSG_RSA_1024
| 拡張部に組み合わせを hex 表現で使用
|
| IPMSG_RSA_2048
| 拡張部に組み合わせを hex 表現で使用
|
| IPMSG_RC2_40
| 拡張部に組み合わせを hex 表現で使用
|
| IPMSG_RC2_128
| 拡張部に組み合わせを hex 表現で使用
|
| IPMSG_RC2_256
| 拡張部に組み合わせを hex 表現で使用
|
| IPMSG_BLOWFISH_128
| 拡張部に組み合わせを hex 表現で使用
|
| IPMSG_BLOWFISH_256
| 拡張部に組み合わせを hex 表現で使用
|
| IPMSG_SIGN_MD5
| 拡張部に組み合わせを hex 表現で使用
|
|
|
| 添付ファイル拡張用ファイル種類
|
|
| IPMSG_FILE_REGULAR
| fileattr下位8bit
|
| IPMSG_FILE_DIR
| fileattr下位8bit
|
| IPMSG_FILE_RETPARENT
| fileattr下位8bit
|
| IPMSG_FILE_SYMLINK
| fileattr下位8bit
|
| IPMSG_FILE_CDEV
| fileattr下位8bit
|
| IPMSG_FILE_BDEV
| fileattr下位8bit
|
| IPMSG_FILE_FIFO
| fileattr下位8bit
|
| IPMSG_FILE_RESFORK
| fileattr下位8bit
|
|
|
| 添付ファイル拡張用ファイル属性
|
|
| IPMSG_FILE_RONLYOPT
| fileattr上位24bit
|
| IPMSG_FILE_HIDDENOPT
| fileattr上位24bit
|
| IPMSG_FILE_EXHIDDENOPT
| fileattr上位24bit
|
| IPMSG_FILE_ARCHIVEOPT
| fileattr上位24bit
|
| IPMSG_FILE_SYSTEMOPT
| fileattr上位24bit
|
|
|
| 添付ファイル拡張用ファイル属性
|
|
| IPMSG_FILE_UID
|
|
| IPMSG_FILE_USERNAME
|
|
| IPMSG_FILE_GID
|
|
| IPMSG_FILE_GROUPNAME
|
|
| IPMSG_FILE_PERM
|
|
| IPMSG_FILE_MAJORNO
|
|
| IPMSG_FILE_MINORNO
|
|
| IPMSG_FILE_CTIME
|
|
| IPMSG_FILE_MTIME
|
|
| IPMSG_FILE_ATIME
|
|
| IPMSG_FILE_CREATETIME
|
|
|
|
| IPMSG_FILE_CREATOR
|
|
| IPMSG_FILE_FILETYPE
|
|
| IPMSG_FILE_FINDERINFO
|
|
|
|
| IPMSG_FILE_ACL
|
|
| IPMSG_FILE_ALIASFNAME
|
|
| IPMSG_FILE_UNICODEFNAME
|
|
エージェントの設定でも書きましたが、
エージェントの設定で DialUp 接続のチェックをいれるとホストリストが動的に更新されます。
たとえばエージェント1台あたりの情報量として、名前やニックネーム・IP アドレス等の情報が 60Bytes とすると 300台で約 18KBytes の情報をサーバがエージェントに送信する事になります。
128Kbps ( 16KBytes/sec ) だとすると1秒で、1台のホストに対してしかホストリストの送信が出来ません。
どの位の帯域が必要なのかは、環境やセグメントごとの所属エージェント数で変わってきてしまうので明確な数字を出すことは出来ませんので上記の数字を参考をみて考えてみてください。
IP Messenger for Win32 の場合、入場してからホストリストを受け取るまでのタイムアウトがデフォルトでは 3秒に設定されています。もしこの 128Kbps のネットワーク環境ですと 3台のエージェントにしかホストリストを送ることが出来なくなってしまいます。
「
ホストリストが届きません。もしくは一部だけしか届きません」を参照してください。
エージェントと Exchange Server の間などに NAT ルータなどが入っていませんか?
NAT ルータが入っているとホストリストを受信することは出来ますが、エージェント同士のメッセージ送信が出来ない事があります。
つまり NAT ルータなどが間に入っていると、NAT ルータがメッセージを一度受け取ったあと適当なポートで相手に転送するので毎回ポート番号が変わってしまいます。
StaticPort 機能を使うと解消されるかもしれません。
正常です。通常は何も表示されません。
IP Messenger を起動して Exchange Server の動作を確認してください。
起動オプションで -v を付けて起動するとメッセージの送受信状況を見る事が出来ます。
まったくホストリストが届かない場合は、ルータや PC のパーソナルファイアウォール等で UDP 2425 が塞がれていませんか。エージェントを使用している PC にインストールされているソフトを確認してみてください。
また
起動オプションで -v を付けて起動させ、Exchange Server がホストリストを送信している事を確認して下さい。
一部だけしか届かない場合は、フラグメントが原因の場合があります。
送信するホストリストのサイズが大きいと、フラグメントを起こしルータや PC のパーソナルファイアウォール等で、ホストリストが切断、もしくは破棄されてしまう事があります。
ルータやファイアウォール・VPN 装置などで、フラグメントを起こしたパケットを破棄しないように設定してみてください。
またネットワーク帯域が細いのでエージェントがタイムアウトをしてしまう事があります。この場合は Exchange Server を複数台用意して運用するか、エージェントのタイムアウト時間を伸ばす必要があります。
※IP Messenger for Win32 の場合タイムアウトはレジストリ \HKEY_CURRENT_USER\Software\HSTools\IPMsg\ListGetMSec に設定されているます。( 単位 msec )