File Shares – Using the Right SMB Version for IBM i Netserver
One of the topics that seem to pop up in my email on a regular basis is SMB. If you have users that access the IFS through Windows file shares or mapped drives, then you’re probably already somewhat familiar with NetServer. NetServer is an implementation of the Server Message Block (SMB) protocol used primarily by Windows clients for file and print sharing. It is to IBM i what Samba is to Unix and similar platforms.
Over the years, several different versions of the SMB protocol have been released to address shortcomings, add features, and increase security. Support for the various flavors is generally broken down into broad categories of SMBv1, SMBv2, and SMBv3, although there are minor revisions to each of these. The latest version introduced by Microsoft with Windows 10 and Windows Server 2016 is v3.1.1. It is important to be aware of the different versions because in order for two machines to converse using SMB, both sides need to support a common version.
As security concerns have increased over time, support for older versions of SMB have been gradually phased out of the Windows OS, and this is where we come back to IBM i. Depending on which version of IBM i you are running, you may be limited as to which versions of SMB your copy of NetServer will understand. This can lead to incompatibilities with your Windows users’ PCs. I’ve included a handy chart below to show the SMB version support for each version of IBM i.
The important thing to take away from this is the fact that IBM i 7.1 and below do not support any version other than SMBv1. It’s also worth noting that support for SMBv2 in IBM i 7.2 was delivered by PTF well after the GA release.
So, in practical terms, when are you going to have problems? That depends on your environment and the different Windows versions in use on your network. Updated versions of Windows 10 and Server 2016 have SMBv1 completely disabled, while Windows XP and Server 2003 don’t speak anything else. Windows Vista and 7 can understand both SMBv1 and SMBv2, but depending on fix level they may only use SMBv1 to initiate a connection. Windows 8 and Server 2012 can disable SMB1, but don’t do so by default. In short, it’s a bit of a mess. Where most people experience trouble is when end users get new PCs, but really any time you have particularly old systems talking to brand new ones there can be issues.
Preventing problems with SMB—like so many other things—basically boils down to doing your homework and knowing what to expect. While there are ways to both re-enable old versions and disable new ones on both sides of the equation, none of these are recommended as a long-term fix. Keeping your system up-to-date with PTFs and OS upgrades is the best way to make sure you aren’t caught short the next time Windows Update runs on your PC.