App Layering: How to force the ELM to use a specific SMB version for file servers

App Layering: How to force the ELM to use a specific SMB version for file servers

book

Article ID: CTX225742

calendar_today

Updated On:

Description

In the ELM, when connecting to a file share, we test all the SMB versions that we support, from top to bottom, until we get a successful login.  We specifically try 3.02, 3.0, 2.1, 2.0 and 1.0, in that order, before giving up. 

An SMB server is supposed to return "Not Supported" when an attempt is made to connect specifying an unsupported SMB version.  However, some file servers (notably NetApp) will allow a successful connection to an SMB version that doesn't actually work with the ELM.  This article shows you how to specify what versions of SMB will be tried, allowing you to remove any that you know do not work.  For instance, NetApp should be fine if you remove 3.02 from the list.


Instructions

To specify the versions of SMB that the ELM will attempt to use, edit a pair of config files. We have "nano", "vi" and "emacs" available in the appliance. "nano" is a good choice for people not already indoctrinated into vi or emacs.


nano /usr/local/unitools/MAService.exe.config
nano /usr/local/CAMService/CAMService.exe.config

In both files, scroll down to the <appSettings> section and look for this line:

    <add key="SMBProtocolVersions" value="3.02,3.0,2.1,2.0,1.0"/>

Edit that as necessary.  Ctrl-X to save/exit, "yes", and hit Enter to confirm the file name.

There is also an option allowing you to explicitly add options to the SMB mount command. 

<add key="AdditionalCifsMountOptions" value=",sec=ntlmv2"/>

The thing is, how do you know what to add? You probably need to manually test mounting the share. Login to the ELM, make yourself a temporary starting directory, and try commands like this (it's one line, and remember to substitute in your own UNC):

mount -t cifs '//10.170.132.176/Share' /mnt/test --verbose -o rw,soft,cache=none,user,suid,domain=xxx,username=xxxx,password=xxxx

Pay attention to the error, and try adding other parameters line ",vers=2.0", ",vers=3.02", "sec=ntlmv2", and anything else you can think of. Once it works, you can add the extra parameters to the files above.

NOTE: It looks like Windows Server 2012 R2 wants vers=3.02.

WARNING: You cannot use the SMB share from a Nutanix file server. It doesn't work, and Nutanix does not support it anyway.