SMB Multichannel on FreeNas with PfSense & W10

So, I've been trying to get greater-than gigabit throughput from my FreeNas box for a while. I saw the video put out on SMB Multichannel and had to give it a try. FreeNas does support SMB 3.11. I've made alterations on my FreeNas box and on PfSense in an attempt to get it working, but have been unsuccessful. I'll run down my hardware first and then my configuration stuff.

On FreeNas:
3 NICs, 1 x Realtek 8111E, and 2 x Intel Pro 1000 PT. I know the Pro 1000's are ideal, but they're all I have on hand. I could grab the Intel 82574L out of my PfSense box and replace that with a single Pro 1000 PT, but I'd prefer to not if I can.

On the W10 client (fully updated W10):
2 NICs, 1 x Intel I218V and 1 x Realtek 8111GR.

PfSense software stuffz:
DHCP Server: Enable registration of DHCP client names in DNS = enabled
DNS Resolver: Register DHCP leases in the DNS Resolver & Register DHCP static mappings in the DNS Resolver = enabled.
PfSense version 2.3.2_1

FreeNas software stuffz:
Intel Pro nic 1: static IP4 and IPV6 autoconfig
Intel Pro nic 2: IPV4 dhcp and no ivp6.
SMB Service set to max protocol 3.11 and min 3.0. \
FreeNas version 9.10.2-U1.

Windows 10 client:
Intel I218 setup static ip
Realtek DHCP ip

SO, I have no idea what I'm doing wrong. It's all wired up properly, all nics properly connected and such. @wendell any ideas?

Also. PfSense now reports 3056 errors in on the LAN interface, which weren't there prior to my configuration changes. Shite.

I don't think freenas supports it, smb on freenas is presumably provided by samba which has no support for multichannel.

Welp. Damn't.

you hack your samba config? its like smb multichannel enabled = true (then restart the daemon). you may also have to set the asynchronous i/o buffer to 0 or 1 so that more than 1 thread can read from a file at a time.

from powershell on win10 it will tell you a lot.. things like get-smbclient(hit tab it'll autocomplete something like get-smbclientconfig) and the multichannel commands from the other thread, and post all that here.

also try nslookup (name of freenas machine) and see if you get all the interface IPs back.

you may also ahve to specify interfaces = 192.168.whateve;speed=1000000000 and 192.168.whateveelse;speed=1000000000 for the two interfaces you want samba to use (knowing nic speed is important for the multichannel config).

it's still sketchy on samba even if you do all that. you need to also make sure samba is version 4.4+

1 Like

So I'm not 100% sure how I'd go about hacking my samba config, my only idea was too add what you said as an auxiliary parameter. Nslookup only returned the IP Address that dhcp gave to the freenas box, and not the primary IP address of that machine which is set static at 192.168.1.200 on the machine. I'm guessing I need to change something in pfsense to get 192.168.1.200 to also return when I use nslookup? I changed my desktop to dhcp on both interfaces to simplify this end, think I botched the DNS server settings on the static entry when I did it ages ago. Made for some weird nslookup results that were rectified when I set it back to auto DNS.

Add a records on pfsense for both interface ips

I'm going to hold off changing pfsense settings at this very moment because people are doing actual 'work' right now that requires the connection to not go down, and I don't trust myself to not break something in this process. I'm good at pressing buttons that shouldn't be pushed.

When I do add the record for both interface ips, I assume you mean the freenas IPs, will I put that as a host override under the DNS resolver or will I put it elsewhere? Not familiar with adding records on pfsense before.

@wendell Do you know if SMB multichannel in samba works with link aggregation or does it only work with multiple individual nics? I don't have the right version on my ubuntu server so I can't test it.

I could not get multiple channels on a single 10 gigabit nic to work. Only with multiple nics.

I've got an oddity to report back. So, I didn't mess with any of the configurations when I before I went to bed yesterday. I got home today, boot both the windows machine and the freenas, and get into the freenas gui. All looks well and is good. But, when trying to connect back to the share on windows, it reports an "unsupported operation" in file manager. I reset the minimum to go as low as it wants, and it reconnects just fine. Very weird, not quite sure why as it was fine yesterday.

Hoping to see smb multi-channel support implemented in FreeNAS 10 (currently in beta).
The Freenas10 beta recently packaged Samba 4.5.3 (an open source implementation of smb) with the intention of implementing multi-channel support. See here: https://forums.freenas.org/index.php?threads/heads-up-samba-now-upgraded-to-version-4-5-3.49145/

Also note that Samba introduced experimental support for SMB3 Mult-channel in v4.4.0: https://www.samba.org/samba/history/samba-4.4.0.html

1 Like

This is probably a dumb question that i could investigate myself,

But what if you have 2 IP addresses assigned to a single interface and have that set in DNS?

Having only one interface means you’d be capped at the speed of only the one interface’s speed, and getting two IP addresses assigned to one interface is kind of a bitch if not impossible.

I was more thinking of 10G nic and 2 1G nics, if you have 2 IP’s on the 10G, could you trick SMB MC to run?