WSFC構成システムでIPv6の通信止めたいなってときにやったこと
やりたいこと
Windows Server Failover Clustering(WSFC)の機能を使用したActive-Stanbyの2ノードクラスターのシステムを構築していたのですが、
そのノード間でIPv6の通信が走っていることを発見。
ファイアウォール云々の話で、この通信をIPv4にしたいのがやりたいことです。
色々試したところ意外とやることが出てきたので、この記事に残してみます。
環境
OS: Windows Server 2016
このIPv6通信って何もの?
まず、WSFC構成システムでどんな通信が走るのかを調べてみます。
以下のMicrosoftサポートのページに概要が書いてありました。
https://support.microsoft.com/ja-jp/help/832017/service-overview-and-network-port-requirements-for-windows
上のページを見るとクラスターサービスは、「3343」ポートを使用することがわかります。 ってことで、WSFC構成のサーバ実機でnetstatコマンドを打って調べてみます。
> netstat -nao | findstr 3343 TCP [fe80::AAAA:AAAA:AAAA:AAAA%6]:49684 [fe80::BBBB:BBBB:BBBB:BBBB%6]:3343 ESTABLISHED 1780 ※実際の値はマスク化
最後の「1780」はpidですので、tasklistコマンドで該当するプロセスを確認しておきます。
> tasklist | findstr 1780 clussvc.exe 1780 Services 0 9,744K
この「clussvc.exe 」は、WSFCのクラスタサービスの実体ファイルになりますので、
この通信がWSFCに関連する通信であることがわかります。
で、「fe80::」が何かということですが、これはipconfigコマンドでわかります。
> ipconfig /all ~~~ 接続固有の DNS サフィックス . . . . .: 説明. . . . . . . . . . . . . . . . .: Microsoft Failover Cluster Virtual Adapter 物理アドレス. . . . . . . . . . . . .: XX-XX-XX-XX-XX-XX DHCP 有効 . . . . . . . . . . . . . .: いいえ 自動構成有効. . . . . . . . . . . . .: はい リンクローカル IPv6 アドレス. . . . .: fe80::AAAA:AAAA:AAAA:AAAA%6(優先) IPv4 アドレス . . . . . . . . . . . .: 169.254.AAA.AAA(優先) サブネット マスク . . . . . . . . . .: 255.255.0.0 デフォルト ゲートウェイ . . . . . . .: DHCPv6 IAID . . . . . . . . . . . . .: XXXXXXXXX DHCPv6 クライアント DUID. . . . . . .: XX-XX-XX-XX-XX-XX-XX-XX-XX-XX-XX-XX-XX-XX NetBIOS over TCP/IP . . . . . . . . .: 有効 ~~~ ※実際の値はマスク化
IPv6アドレスから「Microsoft Failover Cluster Virtual Adapter」が 通信元であることがわかりました。 なお、上にあるような「fe80::」や「169.254.XXX.XXX」は、 APIPA(Automatic Private IP Addressing)と呼ばれるもので 1to1の機器接続などで自動で割り当てられるIPアドレスとなります。 この内容から、「fe80::」じゃなくて「169.254.XXX.XXX」の方を使ってくれるようにすれば IPv6の通信は止められそうです。
とりあえずネットワークアダプタのプロパティいじるよね
で、普通IPv6を止めたいときは、
ネットワークアダプタのプロパティから「TCP/IPv6」チェックボックスを外すことが多いです。
↓こんな感じ
今回も全てのネットワークアダプタに対して、プロパティからチェックボックスを外してみますが、 上記の「Microsoft Failover Cluster Virtual Adapter」のIPv6は止まってくれません。
レジストリいじるのが正解っぽい
そこでググると以下の記事を発見。 https://blogs.technet.microsoft.com/askcorejp/2015/01/19/12356/
記事に従い、クラスタを構成する2ノード両方で以下の手順を実施します。
regedit.exe を起動して 以下レジストリアドレス に移動します。 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters\
メニューバーから [編集]-[新規]-[DWORD (32 ビット) 値] を選択します。
名前には [DisabledComponents] と入力します。
[DisabledComponents] をダブルクリックし、以下の値を入力します。
[DisabledComponents]
値: ff (16進数)上記の設定内容を反映させる為、システムを再起動します。
再起動が完了したらnetstatコマンドで確認します。
> netstat -nao | findstr 3343 TCP 169.254.AAA.AAA:49944 169.254.BBB.BBB:3343 ESTABLISHED 1780 ※実際の値はマスク化
これで、IPv6の通信は無効にできました。