E-Postクラスタ構成時にarpキャッシュが保持されてしまう対策について

E-Post方式クラスタ構成時にarpキャッシュが保持されてしまいアクティブ−スタンバイが正常に切り替わらない現象への対策方法について

Windows 2008 (R2を含む)のドメイン傘下にあるメンバーサーバやドメインに入っているクライアントPCの環境、あるいはarpキャッシュ情報を保持する高機能L3スイッチのあるネットワーク環境などでは、E-Post方式クラスタ構成時にアクティブ−スタンバイが正常に切り替わらない状況が一部で発生することが確認されています。具体的には、クラスタ構成時に、2008AD傘下のクライアントにおいてarpキャッシュが保持されてしまい、ノード切り替えに必要な認識処理に最低でも約10分以上の時間がかかってしまう現象となります。
この対策として、以下の追加設定を行うことによって、フェールオーバー、フェールバックの切り替えが迅速にできます。
ただし、弊社検証環境で確認したレベルにすぎませんので、AD傘下のクライアント構成や、ネットワーク機器の設定などに影響を受けることは十分推測できます。特にarpキャッシュ機能のあるL3スイッチなどでの確認はしておりませんので、それらを理解の上、試してください。

2008AD傘下のメンバーサーバやクライアントがあるときや、2008をドメインコントローラとしたAD連携+E-Postクラスタ構成時に、仮想IPが切り替わったメールサーバからのpingコマンドによる指示で、同一セグメント内AD傘下のクライアントPCにおいて、arpキャッシュが強制的にクリアされることにより、切り替わりを仕様通りスムーズにさせるようにします。

(1).以下のコマンドを含むバッチファイルを作成
以下のコマンドを含むバッチファイルをアクティブ・スタンバイそれぞれに作成し、プログラムインストール先フォルダなどの任意フォルダ内に保存します。
(※ブロードキャストアドレスを対象にpingコマンドを実行する方法では、1回の送信でタイムアウトになるまでの時間が3〜4秒と長く、繰り返し回数を多くすると時間がかかる割に確実性が少ないようです。そのため、ここでは確実性を高める意図でクライアントのIPを直接指定しています。)

(バッチファイルの書式)
 ping -n [回数] <対象のクライアントIP> -S <取得済み仮想IP>

(バッチファイル例)[arpclear.bat]
 arp -d    ←この指定はなくても効果は同じだが、念のため
 ping -n 10 192.168.0.81 -S 192.168.0.190
 ping -n 10 192.168.0.82 -S 192.168.0.190
 ping -n 10 192.168.0.83 -S 192.168.0.190
    :   ←以下、必要に応じて指定


(2).メールサーバ・スタンバイ側の「タスクスケジューラ」にバッチファイルを指定
次にスタンバイ側において、タスクスケジューラで前記のバッチファイル[arpclear.bat]を指定します。
(タスクスケジュールの指定例)
 以下のイベントをトリガーに指定
 タスクの開始:イベント時
 ログ:アプリケーション
 ソース:IPWCS
 イベントID:100(LogicalIP Add address時)


(3).メールサーバ・アクティブ側の「タスクスケジューラ」にバッチファイルを指定
続いてアクティブ側において、前記のバッチファイル[arpclear.bat]をタスクスケジューラで指定します。
(タスクスケジューラの指定例)
 以下のイベントをトリガーに指定
 タスクの開始:イベント時
 ログ:アプリケーション
 ソース:IPWCS
 イベントID:100(LogicalIP Add address時)


なお、アクティブ側のタスクスケジュール設定には、確実さを増すために、以下のトリガーも追加で指定します。
(タスクスケジューラの指定例)
 タスクの開始:スタートアップ時
 遅延時間を指定する:30秒
 繰り返し間隔:5分間
 継続時間:15分間


弊社検証環境では、上記設定をアクティブ・スタンバイ側それぞれに行った結果、arpキャッシュが保持されてしまって切り替え時間がかかっていた2008AD傘下のXPクライアントでも、フェールオーバー、フェールバックの切り替えにかかる認識時間が、平均30〜40秒程度になりました。