LAN Plugin with SMB3 enabled: I found two things noticable
Posted: 2024-03-09, 14:20 UTC
I have some issues using the LAN plugin for Total Commander with SMBv3 enabled. SMB3 option only seems to work correctly when SMB2 is also enabled. Enabling only SMB3 does let me browse shares but accessing individual files does not work.
After investigating the network traffic with Wireshark, there are two things noticable:
The LAN plugin always requests SMB dialects 2.002 and 2.??? using a SMBv1 'negotiate protocol request', followed by another SMBv2 'negotiate protocol request' which correctly specifies dialects 2.0.2 and 2.1 if only SMB2 is enabled and additionally the dialects 3.0, 3.0.2 and 3.1.1 if also (or only) SMB3 is enabled. This works for browsing folders / listing files in both cases (SMB2+SMB3 enabled or only SMB3 enabled). However, when accessing files, e.g. playing a shared video, the LAN plugin suddenly request the dialect 'NT LM 0.12' using a SMBv1 'negotiate protocol request' which Windows quits with a TCP connection reset (SMBv1/CIFS is disabled in Windows) when only the SMB3 option is enabled in the LAN plugin.
So 1) Why does the LAN plugin requests 'NT LM 0.12' dialect for direct file accesses when only SMB3 is enabled (and a SMB 2.x dialect was requested and confirmed before by the server) 2) Why is there any SMBv1 'negotiate protocol request' when SMB2/SMB3 is enabled? SMBv2 should work with a stand-alone v2 'negotiate protocol request'. Maybe there should be a switch to disable SMBv1 completely (or it should be removed as it is more or less absolete anyways).
After investigating the network traffic with Wireshark, there are two things noticable:
The LAN plugin always requests SMB dialects 2.002 and 2.??? using a SMBv1 'negotiate protocol request', followed by another SMBv2 'negotiate protocol request' which correctly specifies dialects 2.0.2 and 2.1 if only SMB2 is enabled and additionally the dialects 3.0, 3.0.2 and 3.1.1 if also (or only) SMB3 is enabled. This works for browsing folders / listing files in both cases (SMB2+SMB3 enabled or only SMB3 enabled). However, when accessing files, e.g. playing a shared video, the LAN plugin suddenly request the dialect 'NT LM 0.12' using a SMBv1 'negotiate protocol request' which Windows quits with a TCP connection reset (SMBv1/CIFS is disabled in Windows) when only the SMB3 option is enabled in the LAN plugin.
So 1) Why does the LAN plugin requests 'NT LM 0.12' dialect for direct file accesses when only SMB3 is enabled (and a SMB 2.x dialect was requested and confirmed before by the server) 2) Why is there any SMBv1 'negotiate protocol request' when SMB2/SMB3 is enabled? SMBv2 should work with a stand-alone v2 'negotiate protocol request'. Maybe there should be a switch to disable SMBv1 completely (or it should be removed as it is more or less absolete anyways).