青空 Jumping Box(仮)

Windows Server 2025 で地味目なラボを作る。

Windows Server 2025 で SMB マルチ チャネルの様子を見てみる。

Windows Server 2025 で、複数のネットワーク アダプターから共有フォルダに接続して、SMB マルチ チャネルの様子を見てみます。

 

今回の環境

ファイル サーバーとクライアントは、どちらも Windows Server 2025 で用意してあります。

ファイル サーバーの構成

ファイル サーバー(SMB の共有フォルダ)の Windows Server 2025 は、下記のように構成してあります。

ネットワーク アダプターは、3つ構成してあります。

  • Lab-VLAN-40, 192.168.40.0/24:管理用ネットワーク
  • Lab-VLAN-46, 192.168.46.0/24:SMB 接続用ネットワーク1
  • Lab-VLAN-47, 192.168.47.0/24:SMB 接続用ネットワーク2
PS C:\> Get-NetIPAddress -AddressFamily IPv4 -PrefixLength 24 | select InterfaceAlias,IPAddress,PrefixLength | sort InterfaceAlias

InterfaceAlias IPAddress     PrefixLength
-------------- ---------     ------------
Lab-VLAN-40    192.168.40.17           24
Lab-VLAN-46    192.168.46.17           24
Lab-VLAN-47    192.168.47.17           24

 

共有フォルダは、下記のように作成してあります。

 

クライアントの構成

クライアントの Windows Server 2025 は、下記のように構成してあります。

こちらも、ネットワーク アダプターが 3つ構成してあります。

PS C:\> Get-NetIPAddress -AddressFamily IPv4 -PrefixLength 24 | select InterfaceAlias,IPAddress,PrefixLength | sort InterfaceAlias

InterfaceAlias IPAddress     PrefixLength
-------------- ---------     ------------
Lab-VLAN-40    192.168.40.13           24
Lab-VLAN-46    192.168.46.13           24
Lab-VLAN-47    192.168.47.13           24

 

SMB マルチ チャネルでの共有フォルダへのアクセス

クライアントのエクスプローラーから、共有フォルダにアクセスしてみます。ここでは、ファイル サーバーの SMB 接続用 IP アドレスのうち、片方(192.168.46.17)を指定します。

  • 共有フォルダ:\\192.168.46.17\share-01

そして、なにかファイルを保存してみます。

 

ファイル サーバーの片方の IP アドレス(192.168.46.17)宛にアクセスすると、クライアント側では、すべての経路が自動的に検出されます。ただし、アクセス直後は、ClientIpAddress と ServerIpAddress のアドレスが別サブネットのものになっていたりします。

PS C:\> Get-SmbMultichannelConnection | fl

ServerName           : 192.168.46.17
Selected             : True
Failed               : False
FailureCount         : 0
ClientInterfaceIndex : 2
ClientRSSCapable     : True
ClientRdmaCapable    : False
ClientLinkSpeed      : 10 Gbps
ClientIpAddress      : 192.168.47.13
ServerInterfaceIndex : 8
ServerRSSCapable     : True
ServerRdmaCapable    : False
ServerLinkSpeed      : 10 Gbps
ServerIpAddress      : 192.168.47.17
MaxChannels          : 4
CurrentChannels      : 0

ServerName           : 192.168.46.17
Selected             : True
Failed               : False
FailureCount         : 0
ClientInterfaceIndex : 6
ClientRSSCapable     : True
ClientRdmaCapable    : False
ClientLinkSpeed      : 10 Gbps
ClientIpAddress      : 192.168.46.13
ServerInterfaceIndex : 5
ServerRSSCapable     : True
ServerRdmaCapable    : False
ServerLinkSpeed      : 10 Gbps
ServerIpAddress      : 192.168.46.17
MaxChannels          : 4
CurrentChannels      : 1

ServerName           : 192.168.46.17
Selected             : True
Failed               : False
FailureCount         : 0
ClientInterfaceIndex : 5
ClientRSSCapable     : True
ClientRdmaCapable    : False
ClientLinkSpeed      : 10 Gbps
ClientIpAddress      : 192.168.40.13
ServerInterfaceIndex : 5
ServerRSSCapable     : True
ServerRdmaCapable    : False
ServerLinkSpeed      : 10 Gbps
ServerIpAddress      : 192.168.46.17
MaxChannels          : 4
CurrentChannels      : 0

 

プロパティを絞ると、下記のように3つの経路が検出されていることがわかります。少し時間が経過したため、ClientIpAddress → ServerIpAddress が同一サブネットの IP アドレスに落ち着いています。

PS C:\> Get-SmbMultichannelConnection | sort ClientIpAddress,ServerIpAddress | select ClientIpAddress,ServerIpAddress,Selected,CurrentChannels

ClientIpAddress ServerIpAddress Selected CurrentChannels
--------------- --------------- -------- ---------------
192.168.40.13   192.168.40.17       True               4
192.168.46.13   192.168.46.17       True               4
192.168.47.13   192.168.47.17       True               4

 

SMB マルチ チャネルの経路制限

今回は、管理用のネットワーク(192.168.40.0/24)を利用しないように、経路を制限してみます。

デフォルトでは、すべてのネットワーク アダプターに ms_server サービスがバインドされているので、Lab-VLAN-40 アダプターのみで無効化します。Get-NetAdapterBinding を実行すると、デフォルトではすべてのアダプターが「Enabled=True」になっています。

PS C:\> Get-NetAdapterBinding -ComponentID ms_server | select Name,ComponentID,Enabled | sort Name

Name        ComponentID Enabled
----        ----------- -------
Lab-VLAN-40 ms_server      True
Lab-VLAN-46 ms_server      True
Lab-VLAN-47 ms_server      True

 

サーバー マネージャーで、「ローカル サーバー」→ ネットワーク アダプタのいずれかをクリックして、「ネットワーク構成」画面を開きます。

 

ネットワーク アダプター(今回は Lab-VLAN-40)を右クリックし、「プロパティ」を開きます。

 

「Microsoft ネットワーク用ファイルとプリンター共有」のチェックボックスを OFF にて、「OK」をクリックします。

 

これで、Get-NetAdapterBinding コマンドでも Lab-VLAN-40 の ms_server サービスが「Enabled=False」になりました。

PS C:\> Get-NetAdapterBinding -ComponentID ms_server | select Name,ComponentID,Enabled | sort Name

Name        ComponentID Enabled
----        ----------- -------
Lab-VLAN-40 ms_server     False
Lab-VLAN-46 ms_server      True
Lab-VLAN-47 ms_server      True

 

あらためて、共有フォルダに接続するため、いったんクライアントの Windows を再起動します。そして、さきほどと同様に、共有フォルダにアクセスします。

  • 共有フォルダ:\\192.168.46.17\share-01

 

SMB マルチ チャネルの接続を確認すると、クライアント側が「192.168.40.0」の経路は、CurrentChannels が 0 のままになっています。

PS C:\> Get-SmbMultichannelConnection | sort ClientIpAddress,ServerIpAddress | select ClientIpAddress,ServerIpAddress,Selected,CurrentChannels

ClientIpAddress ServerIpAddress Selected CurrentChannels
--------------- --------------- -------- ---------------
192.168.40.13   192.168.46.17       True               0
192.168.46.13   192.168.46.17       True               4
192.168.47.13   192.168.47.17       True               4

 

そして少し待つと、2つの経路に落ち着きました。SMB 接続用ネットワークのみが、SMB マルチ チャネルで利用されているようです。

PS C:\> Get-SmbMultichannelConnection | sort ClientIpAddress,ServerIpAddress | select ClientIpAddress,ServerIpAddress,Selected,CurrentChannels

ClientIpAddress ServerIpAddress Selected CurrentChannels
--------------- --------------- -------- ---------------
192.168.46.13   192.168.46.17       True               4
192.168.47.13   192.168.47.17       True               4

 

以上。