こんにちは。Windows プラットフォーム サポートの古谷です。
日々のサポート業務の中で、お問い合わせを頂く内容についてご紹介します。
本日は、フェールオーバー クラスターが行うクラスター ノード間の異なるネットワーク セグメント間通信についてご紹介します。
フェールオーバー クラスターでは、規定でクラスター ノード間で別ネットワーク セグメントが存在する場合、別ネットワーク セグメントに対して定期的に通信 (UDP 3343) を行っております。
【発生する通信】
・UDP 通信
・サービス:ms-cluster-net(3343ポート)
これは、マルチサイト クラスター構成のための重要な通信であり、異なるネットワーク セグメントに対してハートビート通信ができるかルート検出を行う動作となります。
例えば、本動作によりクラスター ノード間で以下の通信が発生します。
フェールオーバー クラスター 2 ノード(WSFC1、WSFC2)環境において、クラスター ノード間に 2 つのネットワークが存在している。
① Public 用ネットワーク(クライアント アクセスポイントが割り当てられたパブリック ネットワーク)
② HeartBeat用ネットワーク (クラスター ノード間を結ぶ Closed なプライベート ネットワーク)
本環境で、WSFC1 の Publicnet から WSFC 2 の HeartBeatnetに対して、また、WSFC2 の Publicnet からWSFC1 の HeartBeatnet に対して UDP 3343 のパケットが送信されます。
パブリック ネットワークにファイアウォール装置が存在する場合は、本通信は検出されます。
ローカルサイト クラスターで本通信の検出を抑止したい場合は、
以下の対処を実施することで対処可能でございます。
==========================================================================
クラスター ノード間で発生する異なるネットワーク セグメント間通信の抑止方法
==========================================================================
異なるネットワークセグメントに対しての UDP 3343 を抑止したい場合は、
クラスターのプロパティ PlumbAllCrossSubnetRoutes により制御可能です。
PlumbAllCrossSubnetRoutes
https://msdn.microsoft.com/ja-jp/windows/jj151934%28v=vs.80%29
このプロパティの値は 0 – 2 がございます。
0 ローカルルートが発見された場合はクロス サブネットルートを検索しない。(規定)
1 必ずサブネットを横断するルートを検索します。
2 ノードが正常に参加した後、クロス サブネットルートを検出する動作を無効にします。
既定は 0 であるため、サービスの起動時にはクロス サブネットのルートは検索されませんが、
ノードが参加した後に、クロス サブネットルートを検出する動きが定期的に発生します。
抑止したい場合は値を 2 に変更していただくことで、クロス サブネットルートを検出する
動作 (UDP 3343) を完全に無効にする必要があります。
UDP 3343 の対処方法
====================
変更方法は以下の PowerShell コマンドを実施します。
[作業対象]
任意のクラスター ノード 1台
1. 管理者権限の PowerShell を起動します。
2. 以下のコマンドで、”PlumbAllCrossSubnetRoutes” の値を確認します。
> Get-Cluster | fl *
3. 以下のコマンドで、”PlumbAllCrossSubnetRoutes” の値を変更します。
> (Get-Cluster). PlumbAllCrossSubnetRoutes = 2
[作業対象]
全クラスター ノード
4. クラスター サービスを再起動します。
<設定変更による影響>
ローカルサイト クラスターの場合、本設定変更により影響などはございません。
本設定変更は、クラスター ノード間で発生する異なるセグメントに対する送信パケット
(ファイアウォールにてブロックされる通信) を無効にしているためです。
以上、どうぞよろしくお願い申し上げます。