チノカログ

ITインフラ系、ガジェット系、テック系ネタ

WSFC構成システムでIPv6の通信止めたいなってときにやったこと

f:id:chinoka:20190408013244j:plain

やりたいこと

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」チェックボックスを外すことが多いです。
↓こんな感じ

f:id:chinoka:20190408011316j:plain

今回も全てのネットワークアダプタに対して、プロパティからチェックボックスを外してみますが、 上記の「Microsoft Failover Cluster Virtual Adapter」のIPv6は止まってくれません。

レジストリいじるのが正解っぽい

そこでググると以下の記事を発見。 https://blogs.technet.microsoft.com/askcorejp/2015/01/19/12356/

記事に従い、クラスタを構成する2ノード両方で以下の手順を実施します。

  1. regedit.exe を起動して 以下レジストリアドレス に移動します。 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters\

  2. メニューバーから [編集]-[新規]-[DWORD (32 ビット) 値] を選択します。

  3. 名前には [DisabledComponents] と入力します。

  4. [DisabledComponents] をダブルクリックし、以下の値を入力します。
    [DisabledComponents]
    値: ff (16進数)

  5. 上記の設定内容を反映させる為、システムを再起動します。

再起動が完了したらnetstatコマンドで確認します。

> netstat -nao | findstr 3343

TCP  169.254.AAA.AAA:49944   169.254.BBB.BBB:3343  ESTABLISHED     1780

※実際の値はマスク化

これで、IPv6の通信は無効にできました。