Windows machine SG0684
This will be our SMB client. It has 5 ports (1 gbps), all connected to a switch. Each port has 1 IP address. These are its IP addresses:
192.168.18.204/24
10.5.1.204/24
10.5.2.204/24
10.5.3.204/24
10.5.5.204/24
Windows machine SG0685
This will be our SMB server, i.e. the regular Windows file server. It has 5 ports (1 gbps), all connected to the same switch. Each port has 1 IP address. These are its IP addresses:
192.168.18.205/24
10.5.1.205/24
10.5.2.205/24
10.5.3.205/24
10.5.5.205/24
No special configuration needed at the switch.
The network diagram will be simple, something like this...
![]() |
| Network diagram showing how the SMB client and SMB server are configured and connected. |
![]() |
| Copying a file from SMB client (left) to SMB server (right). |
- 380 MB/s is about 3 gbps. Each port is 1 gbps. SMB Multichannel allows other channels to be automatically discovered and utilized, to increase the throughput.
- This is a single connection, a single file transfer. A single authenticated session is "split" into a number of connections automatically. This is significant because most other protocols can only use the connection that the authentication took place over. For example, NFS. The authentication happened over a single IP address, the connection will stick to that single IP address. In SMB, the same authenticated session is used over other IP addresses.
- No special switch configuration required. (If we team the ports, especially in Linux, some configuration at the switch is needed in most cases, to prevent "MAC flapping" type of messages appearing in the switch.)
It does not have to be just copying-pasting files. SMB Multichannel is utilized with any sort of data transfer, as long as the SMB protocol is used. For example, we can create a VM in the SMB client (SG0684), and make the VM use a VHD file in the SMB server (SG0685, using path \\SG0685\share). The VM now enjoy the benefits of SMB Multichannel. Let's look at an actual example.
Here is a Linux VM configured in the SMB client. For this Linux VM, it has 2 virtual disks. The first disk is located in the SMB client, the second disk is located in the SMB server, and is accessed via the regular Windows file share UNC path, \\SG0685\share\LinuxVM\Disk2.vhdx, from the hypervisor (which is the SMB client).
Here is a Linux VM configured in the SMB client. For this Linux VM, it has 2 virtual disks. The first disk is located in the SMB client, the second disk is located in the SMB server, and is accessed via the regular Windows file share UNC path, \\SG0685\share\LinuxVM\Disk2.vhdx, from the hypervisor (which is the SMB client).
![]() |
| The VM's 2nd disk is located in the SMB server. |
In the Linux VM, the second disk is seen as /dev/sdb. It is partitioned, formatted with xfs, and mounted as "/SG0685".
![]() |
| The second disk, /dev/sdb, is mounted as "/SG0685". |
Things to note from the video above:
- The VM itself is not aware of anything SMB. All it sees is a disk, mounted at directory named "/SG0685". No additional IP configuration, no NIC bonding / teaming. Just a simple mount. (The SMB parts are only seen by the hypervisor.)
- All 5 connections (from SMB client to SMB server) are utilized, resulting in a total speed of 558MiB/s, which is about 4.68 gbps.
SMB Multichannel is enabled by default. All we need to do is configure the IP addresses in the SMB client and SMB server correctly, allowing the SMB client to reach the SMB server via all the available LAN ports. No special configuration required in the switch. The SMB protocol will auto detect all the available ways for the SMB client and SMB server to see each other, and use all the bandwidth available.



