Proxyの使用 |
Dr.Web for UNIX mail serversに含まれているプロキシによって、コンピュータリソースの管理に関する目的を達成することが可能です。
drweb-maildコンポーネントはクラスタの導入には対応しておらず、相互間で内部データ(統計、隔離、データベース設定など)を共有出来ないので注意してください。その結果、各drweb-maildコンポーネントはそれぞれ独自の統計、隔離、および設定を持つことになります。 プロキシはdrweb-proxy-clientとdrweb-proxy-serverのコンポーネントで構成されています。
drweb-proxy-clientと drweb-proxy-serverコンポーネントはお互いに連携し、オリジナルのメールメッセージ及びそれらの変更されたものを、以降のプロセスの為に、異なるホスト上にあるDr.Web for UNIX mail serversの他のコンポーネントに送ることが出来ます。 drweb-notifier、drweb-monitor、およびdrweb-agentコンポーネントはそれぞれのホスト上で動作しています。
proxyを使った一般的な操作スキーマは次のようになります。 図16.proxy経由での操作図解 スキーマから分かる通りdrweb-proxy-clientとdrweb-proxy-serverはどちらも、異なるホスト上にある任意の数の補助コンポーネントと連携することが出来ます。これは特別なバランスシステムを使用することによって実行されます。
ProxyServersAddressesまたはProxyClientsAddressesパラメータ(それぞれ[ProxyClient]、[ProxyServer]セクション)の値で指定されたソケットアドレスにはそれぞれ重量が割り当てられます。したがって、アドレスは次の書式で指定されます。 ADDRESS1 [WEIGHT1], ADDRESS2 [WEIGHT2] ..
ADDRESSにはベーシックなアドレスが入ります。WEIGHTは0から100までのオプション数値で、このアドレスの重量を定義します。このWEIGHTはネットワーク内にある特定のホスト上の相対的ワークロードを定義します。値が大きいほどそのサーバーのロードが大きいことを意味します。
[ProxyClient]セクションのProxyServersAddressesパラメータは、drweb-proxy-server*コンポーネントがリクエストを受け取るのに使用するHOST2-*のアドレス(上記のスキーマ参照)を指定します。
[ProxyClient]セクションのProxyClientsAddressesパラメータは、drweb-proxy-client*コンポーネントがリクエストを受け取るのに使用するHOST1-*のアドレス(上記のスキーマ参照)を指定します。 例: ProxyServersAddresses = inet:8066@10.3.0.73 10, inet:8066@10.3.0.72 5
この場合、10.3.0.73ホストは10.3.0.72ホストの2倍のメールメッセージを受け取ります。WEIGHTが指定されていない場合は、デフォルトで1と見なされます。複数のアドレスが同じWEIGHTを持っている場合、それらは同等と見なされ同じ数のリクエストを受け取ります。
WEIGHTが0に設定されている場合、そのようなアドレスはバックアップアドレスと見なされます。1またはそれよりも大きいWEIGHTを持つ利用可能なアドレスが残っていない場合のみ、それらのアドレスにリクエストが送られます。一般的なアドレス選択アルゴリズムは以下のようになります。
WEIGHT値は、それぞれのサーバー上の利用可能なリソースに応じて選択し、 割り当ててください。
メッセージは検査の為にdrweb-maildモジュールに送られ、BeforeQueueのプラグインによって処理された後、全て送信元のクライアントに返されます。
メッセージがAfterQueueのプラグインによって処理された場合、その処理済みメールを受け取るクライアントのアドレスは、ProxyClientsAddresses内のクライアントアドレスの重量に応じて選択されます。
重複するメッセージ(Rulesの記述参照)およびdrweb-maildによって作成されたメッセージ(レポート、通知)もまた、プラグインがあるキューに関係なく、ProxyClientsAddressesのリストから選択されたクライアントに送られます。
ProxyClientsAddressesリストから選択されたクライアントに送信されるメッセージには、Rules内で指定された設定(もしあれば)が適用されます(例えばSenderAddressパラメータの値)。
proxyがMilter、Qmail、またはCourierMTA(したがってdrweb-milterモジュールと)と連携する際には、プラグインをAfterQueueに置かない方がいいという点に注意してください。現時点ではproxyはReceiverコンポーネントへのバックドアコネクションに対応していません。そのため、drweb-maildからの応答がすぐにReceiverに返って来なかった場合(例えばプラグインがAfterQueue内にある場合)、drweb-milterはProcessingTimeoutの期限が切れた後にのみSMTPセッションを終了します。
M=N=1に対する最適な(ただし、可能なものはこれだけではありません)接続手順を下記に記します。これによって、セットアップおよび調整の際に起こりうる失敗の大半を防ぐことが出来ます。
M=N=1の場合は以下の手順でproxyをセットアップしてください(方法は他にもありますが、設定の際に生じるエラーを防ぐ為にこの方法を推奨します)。
同じホスト上でdrweb-proxy-server と Receiver/Senderコンポーネントを同時にスタートさせようとした場合、Dr.Web Monitorは動作を終了し、どのコンポーネントも起動されないので注意してください。このエラーに関する情報はログに出力されます。
全て正しく設定されていれば、HOST2-1上でDr.Web MailDを起動することが出来ます。
同じホスト上でdrweb-proxy-client とdrweb-maildコンポーネントを同時にスタートさせようとした場合、Dr.Web Monitorは動作を終了し、どのコンポーネントも起動されないので注意してください。このエラーに関する情報はログに出力されます。
全て正しく設定されていれば、Dr.Web MailDを再起動することが出来ます。今後は全てのメールが検査の為にHOST2-1に転送されます。
Mおよび/またはNが1よりも大きい場合も、このアルゴリズムを適用することが出来ます。上記の通りに追加のホストを接続し、それらのホスト上にある設定ファイル内の該当するパラメータの値([ProxyServer]セクションのProxyClientsAddressesおよび[ProxyClient]セクションのProxyServersAddresses)を編集してください。
WEIGHT値は、それぞれのホスト上の利用可能なリソースの量に応じて設定する必要があります。 |