Skip to main content

Networking

This section offers guidance for configuring network settings for Fusion File Share Server.

Fusion File Share Server supports all standard SMB transport and discoverability configurations over TCP, enabling high-perfomance features such as SMB3 Multichannel and RDMA.

Supported Hardware Capabilities

Fusion File Share Server can utilize fast networking hardware to improve performance, enhance stability, and reduce latency.

RDMA and SMB Direct

RDMA (Remote Direct Memory Access) is a network protocol that enables direct data transfer between the memory of two systems without involving the CPU, reducing latency and increasing throughput. Both the server and clients must have RDMA-capable network adapters, and the network infrastructure must support RDMA for it to function.

When available, Fusion File Share Server fully utilizes RDMA capabilities through the SMB Direct protocol.

note

RDMA/SMB Direct is not supported on macOS clients.

Multichannel

SMB3 Multichannel enables SMB 3.x clients to establish multiple network connections to a server, enhancing performance and reliability.

Fusion File Share Server can support Multichannel when:

  • Using multiple NICs on the server: When the server has multiple NICs, the client can establish multiple connections to the server.

  • Using RSS-capable NICs:

    Receive Side Scaling (RSS) is a feature of modern NICs that distributes incoming packets across multiple CPU cores. This enhances performance by balancing the load across available cores, reducing bottlenecks. Windows clients can leverage RSS to boost throughput by opening multiple channels to Fusion File Share Server.

When these conditions are met, clients with multiple NICs or at least one RSS-capable NIC can establish multiple connections to the server.

Multichannel results in:

  • Increased throughput: By utilizing multiple connections, clients can simultaneously send and receive data across multiple paths.

  • Fault tolerance: In multi-NIC configurations, if one connection fails, the client can continue data transfer via the remaining connections, ensuring uninterrupted service.

  • Reduced tail latency: By distributing the load across multiple connections, tail latency–the delay caused by waiting for the slowest TCP packet in a sequence of transmissions–is significantly reduced.

Supported Transport Protocols

Transport protocols are network protocols used for transferring SMB data between Fusion File Share Server and clients.

Direct TCP

In non-RDMA environments, Direct TCP is the preferred SMB transport method. It is supported by all modern Windows, macOS, and Linux clients when connecting to SMB servers. By removing the legacy NetBIOS layer used during the Windows NT 4.0 and 9x era, Direct TCP improves both performance and security.

SMB servers using Direct TCP typically listen on TCP port 445.

For more information, see [MS-SMB2] Section 2.1.

SMB Direct

SMB Direct combines the SMB 3.0 protocol with RDMA technology to deliver high-performance, low-latency data transfers with minimal CPU overhead. It is ideal for demanding applications and environments requiring fast, large-scale data transfers, including virtualization, high-performance computing, and database management.

By leveraging zero-copy networking, which enables data to move directly between memory and network without CPU intervention, SMB Direct enhances both performance and reliability for modern enterprise storage solutions.

NetBIOS Session Service (NBSS)

NetBIOS Session Service (NBSS) is a legacy transport protocol used for SMB communication. It is primarily required for legacy clients, such as Windows XP, Windows Server 2003, and older, or in rare cases where Direct TCP is unavailable. For more information, see RFC 1001 and RFC 1002.

SMB servers using NBSS typically listen on TCP port 139.

NetBIOS Datagram Service (NBDS)

NetBIOS Datagram Service (NBDS) is a legacy transport protocol used for NetBIOS communication over UDP. It is typically needed only for supporting legacy clients (Windows XP, Windows Server 2003, and older). For more details, see RFC 1001 and RFC 1002.

NBDS requires the NetBIOS Name Service (NBNS) to be enabled.

SMB servers using NBDS typically listen on UDP port 138.

Supported Discovery Protocols

Discovery protocols are network protocols used to locate SMB servers, such as the Fusion File Share Server, on the network.

Link-Local Multicast Name Resolution (LLMNR) is is a protocol or resolving hostnames to IP addresses on local networks and is particularly useful when no DNS server is available. It uses multicast to enable devices on the same subnet to discover each other, providing decentralized name resolution. LLMNR enhances network usability, particularly in home and small business networks. For more information, see RFC 4795.

While supported in current Windows versions, Microsoft has announced plans to deprecate LLMNR, which may impact future Windows clients' ability to discover Fusion File Share Server if no other name resolution method is available.

SMB servers using LLMNR typically listen on UDP port 5355.

Web Services Dynamic Discovery (WS-Discovery)

Web Services Dynamic Discovery (WS-Discovery) is a protocol that enables SMB services to be discovered on local networks. It enables devices to automatically find and connect to available SMB shares and other network resources without manual configuration. Using UDP multicast, WS-Discovery allows SMB servers to announce their presence, enabling clients to discover these servers dynamically.

This simplifies network setup and management, particularly in environments with many devices or frequent changes, ensuring seamless access to shared files and resources. For more information, see OASIS Standard | WS-Discovery 1.1.

SMB servers using WS-Discovery typically listen on UDP port 3702.

NetBIOS Name Service (NBNS)

NetBIOS Name Service (NBNS) is a legacy name resolution protocol that predates DNS in Windows networking. It resolves NetBIOS names to IP addresses and is required when using NetBIOS Session Service (NBSS) or NetBIOS Datagram Service (NBDS). For more details, see RFC 1001 and RFC 1002.

SMB servers using NBNS typically listen on UDP port 137.

Configuring Networking

Most networking configuration for Fusion File Share Server is done with the listen parameter in the global section of the configuration file. Additional listening options can be added at run-time using the CLI with tsmb-cfg global add --listen ..., and existing listening options can be removed with tsmb-cfg global remove --listen ....

This parameter specifies the network interfaces, transport and discovery protocols, ports and hardware capabilities that Fusion File Share Server will use.

Global Parameter Listening Configuration

Value Type: string

This parameter is required.

Fusion File Share Server will fail to start unless a value is specified.

Multiple Values Allowed

This parameter can be specified multiple times in your configuration to enable multiple listening configurations—for example, to listen on both IPv4 and IPv6.

Value Format: <interface>,<address>,<family>,<port>,<protocol>[,<options>]

  • <interface>: The network interface to listen on. To listen on all interfaces, use ANY.

  • <address>: An IPv4 or IPv6 address to listen on, depending on <family>. To listen on all addresses, use 0.0.0.0 for IPv4 and :: for IPv6.

    note

    If <protocol> is NBNS, NBSS, NBDS, LLMNR, or WSD, Fusion File Share Server will listen on all addresses regardless of the value of <address>.

  • <family>: The address family to listen on:

    • IPv4: Listen on an IPv4 address.
    • IPv6: Listen on an IPv6 address.
    • RDMA_IPv4: (for RDMA-enabled NICs) Listen on an IPv4 address for RDMA. Requires <protocol> to be SMBD. Requires <address> to be 0.0.0.0.
    • RDMA_IPv6: (for RDMA-enabled NICs) Listen on an IPv6 address for RDMA. Requires <protocol> to be SMBD. Requires <address> to be ::.
  • <port>: The TCP/UDP port number to listen on.

  • <protocol>: The transport protocol to use:

    note

    The WSD and LLMNR protocols use multicast groups and cannot be bound to the loopback interface or address (e.g., 127.0.0.1).

  • <options>: Additional listening configuration in the following format, <option>=<value>[,<option>=<value>,...], where <option>=<value> can be:

    • RSS=<num>, where <num> is the number of RSS queues to use.
      For some testing and troubleshooting cases, you might enable RSS on a non-RSS-capable NIC by specifying a value greater than 0. This will cause Fusion File Share Server to advertise the NIC as RSS-capable, although it is unlikely to result in any performance gains.

      Default value: none. When the RSS option is omitted, Fusion File Share Server determines the NIC's RSS capabilities and sets the number of receive queues accordingly.

      Possible values:

      • 0: Disables advertising the NIC as RSS-capable.
      • any positive 32-bit integer (14294967294): Sets the number of receive queues to the specified value. Values greater than 32 are unlikely to be useful.
    • max_read_write_size=<bytes>, where <bytes> is the maximum size of an RDMA read or write request in bytes when using SMB Direct.

      This option is valid only when <protocol> is SMBD. For other settings of <protocol>, this option is ignored.

      It sets the maximum number of bytes the server can send or receive in a single RDMA read or write request (MaxReadWriteSize). Note that the actual request size may be smaller than this value, depending on the client's capabilities and implementation.

      Default value: none. When the max_read_write_size option is omitted, a default value of 8388608 (8 MiB) is used, which is consistent with the value in the Windows implementation of RDMA.

      Possible values:

      • any positive 32-bit integer (14294967294): Sets the maximum size of an RDMA read or write request to the specified value.
    • server=<name>, where <name> is the server name for share scoping.

      When set, the shares accessed through this interface on the specified port and protocol will be scoped to clients that access the server using the specified server name.

      Default value: none. When the server option is omitted, share scoping on the interface is disabled for all shares by default (although it can be specified on a per-share basis).

Default Value: N/A. Value MUST be set.

Examples:

  • eth0,0.0.0.0,IPv4,445,DIRECT_TCP: Listens on all IPv4 addresses on port 445 using Direct TCP on the eth0 interface.
  • eth0,0.0.0.0,IPv4,445,DIRECT_TCP,RSS=2: Listens on all IPv4 addresses on port 445 using Direct TCP on the eth0 interface with 2 RSS queues.
  • ANY,::,IPv6,445,DIRECT_TCP: Listens on all IPv6 addresses on port 445 using Direct TCP on all interfaces.
  • ANY,::,IPv6,445,DIRECT_TCP,RSS=0: Listens on all IPv6 addresses on port 445 using Direct TCP on all interfaces with RSS disabled.
  • ANY,0.0.0.0,IPv4,139,NBSS: Listens on all IPv4 addresses on port 139 using NetBIOS Session Service on all interfaces.
  • ANY,0.0.0.0,RDMA_IPv4,445,SMBD: Listens on all IPv4 addresses on port 445 for RDMA using SMB Direct on all interfaces.
  • ANY,::,RDMA_IPv6,445,SMBD: Listens on all IPv6 addresses on port 445 for RDMA using SMB Direct on all interfaces.

Simple Configuration (non-RDMA)

In a non-RDMA environment, a simple configuration—suitable for most modern deployments—will use Direct TCP for transport and LLMNR and WS-Discovery for discovery, active on all interfaces and standard ports.

Simple Configuration Using the Configuration File

In the [global] section of the configuration file, specify the network interfaces, transport and discovery protocols, ports, and hardware capabilities that Fusion File Share Server should utilize. The following example shows a simple configuration that uses Direct TCP for transport, active on all interfaces and standard ports, supporting both IPv4 and IPv6.

[global]
. . .
# Listen for SMB over Direct TCP on all interfaces on port 445
listen = ANY,0.0.0.0,IPv4,445,DIRECT_TCP
listen = ANY,::,IPv6,445,DIRECT_TCP
. . .
[/global]

Configuration with NAT

Multichannel-aware SMB clients query Fusion File Share Server to retrieve information about available interfaces and their capabilities. By default, Fusion File Share Server advertises the interface(s) it is bound to, as specified by the listen parameter.

In certain network configurations, such as NAT, Fusion File Share Server may run in a private subnet with an IP address different from those accessible to the clients. In such cases, advertising the interface list as it's configured in the private subnet could provide clients with unreachable IP addresses.

To address this issue, explicitly configure the network address information that Fusion File Share Server should advertise to clients using the network_interface_info parameter.

Global Parameter Network Interface Information

Value Type: string

Value Format: [{addr=<address>[,speed=<speed>][,index=<index>][,rdma][,rss]}[, { ...}]]

  • The value is a list inside a pair of square brackets, [].
  • Each element in the list is inside a pair of curly braces, {}.
  • The following key-value pairs are supported:
    • addr=<address>: (required) The IP address of the network interface to advertise.
    • speed=<speed>: (optional) The speed of the network interface in bps. Default value: 1000000000 (1 Gbps).
    • index=<index>: (optional) The index of the interface as assigned by the operating system. Must be unique per interface but can be shared among multiple addresses belonging to the same interface. Default value: 4294967295.
    • rdma: (optional) Indicates RDMA support. Default value: unset.
    • rss: (optional) Indicates RSS support. Default value: unset.

Default Value: none

Examples:

  • [{addr=10.1.1.123,rdma,rss}, {addr=192.168.1.12}] advertises two network interfaces. The first address is an RDMA and RSS-capable interface with the IP address.

Configuration with NAT Using the Configuration File

In the [global] section of the configuration file, specify the network interface information that Fusion File Share Server should advertise to the clients. The following example demonstrates how to explicitly specify the network interface information to advertise to clients:

[global]
. . .

network_interface_info = [{addr=10.1.1.123,rdma,rss}, {addr=192.168.1.12}]

. . .
[/global]

RDMA and SMB Direct

To configure interfaces with RDMA and SMB Direct, use the listen parameter to specify which interfaces are RDMA-capable and set the protocol to SMB Direct.

Configuration with RDMA and SMB Direct Using the Configuration File

In the [global] section of the configuration file, specify the network interfaces, transport and discovery protocols, ports, and hardware capabilities that Fusion File Share Server should use. The following example shows how to configure interfaces with RDMA and SMB Direct:

important

Any NIC that listens for SMB Direct must also listen for Direct TCP.

SMB Direct connections can only be initiated after the client has queried the NIC information over an established Direct TCP connection.

[global]
. . .

# Listen for SMB over Direct TCP - Required for SMB Direct
listen = ANY,0.0.0.0,IPv4,445,DIRECT_TCP
listen = ANY,::,IPv6,445,DIRECT_TCP

# Listen for SMB Direct on RDMA-capable all interfaces, both on IPv4 and IPv6
listen = ANY,0.0.0.0,RDMA_IPv4,445,SMBD
listen = ANY,::,RDMA_IPv6,445,SMBD

. . .
[/global]

Multichannel

To configure Multichannel, ensure that at least one of the following is available:

  • Multiple network interfaces on the server or client.
  • An RSS-capable network interface.
  • One or more RDMA-capable network interfaces.

Use the listen parameter to specify all interfaces for Multichannel and specify which interfaces support RSS.

tip

For Windows clients, it is recommended to increase the number of RSS queues from the default of 4 to 16. On Windows 8 or Windows Server 2012 and later, you can do this by running the following PowerShell command (replace Ethernet with the name of your interface):

Set-NetAdapterRss -name "Ethernet" -NumberOfReceiveQueues 16

Configuring Multichannel Using the Configuration File

In the [global] section of the configuration file, specify the network interfaces, transport and discovery protocols, ports, and hardware capabilities that Fusion File Share Server should use.

Assuming you have multiple network interfaces on the server, specifying ALL in the <interface> portion of the listen parameter will listen on all interfaces, enabling multichannel for supported clients.

[global]
. . .

# Configure multiple interfaces
listen = ALL,0.0.0.0,IPv4,445,DIRECT_TCP

. . .
[/global]

To enable Multichannel on a single interface that supports RSS, specify the number of RSS queues to use in the listen parameter.

[global]
. . .

# Configure a single interface with RSS
listen = ens3,0.0.0.0,IPv4,445,DIRECT_TCP,RSS=4

. . .
[/global]
note

Even when the RSS option is omitted, Fusion File Share Server determines the NIC's RSS capabilities and sets the number of receive queues accordingly.