The Common Internet File System
What Microsoft has in store for the Internet with CIFS
Distributed File sharing is on the mind of all vendors especially in the light of the advancement of thin clients. In this issue we continue our coverage of Internet and TCP/IP file sharing systems with the introduction of the Common Internet File System. A competitor to Sun's WebNFS project, Microsoft's CIFS provides a distributed file sharing system for all Windows based computer systems as well as supporting the Wide area needs of the Internet. (1,400 words)
The digital world isn't quite so bad off, perhaps because we've had only 50 years or so to fragment the few standards we share. Last month I described WebNFS, a proposed standard protocol for file access and sharing across the World Wide Web. WebNFS is based on NFS, the de facto file sharing protocol in Unix and related midrange computers. This month we explore the Common Internet File System (CIFS), which is Microsoft's answer to NFS in general and WebNFS in particular.
Many, many years ago (in Internet time), Microsoft created the Server Message Block (SMB) and NetBIOS-based file sharing system for its ill-fated LAN Manager. (Pieces of SMB are also found in OS/2.) LAN Manager, a LAN OS for small workgroups, was supposed to kill NetWare but didn't. Then along came Windows NT and the expansion of the Internet for commercial use, so Microsoft is now buffing and polishing LAN Manager's file system, and hanging a sign on it that reads, "Internet-ready, low mileage." So let's open the hood and see how CIFS works and contrast it with the other file sharing mechanisms, proposed and plying the infohighway.
CIFS family values
According to Microsoft's draft specification, CIFS supports:
Although protocol version negotiation is indicated as one of the features of CIFS, this is such a basic need for a distributed computing environment, we should note it.
Trials and tribulations
One horrifying weakness to SMB is its required use of server name mapping. Unlike Internet hostnames, which have a local machine name, maybe a subdomain, and then a domain name for global identification, SMB-based servers have a single name. To reference a file over the network you use a string:
//magickingdom/home/donald/killmickey.txtThe server name in this instance is magickingdom. The file, killmickey.txt, is located in the directory path /home/donald. The server name is a limited length string described within your LMHOSTS file as a mapping to a specific Internet address. On a LAN, this isn't too much of a problem since a network manager would never name two machines the same. (Well, maybe.) Can you imagine what would happen trying to use SMB on the Internet where thousands of machines are named spock? The Network manager has to give a specific mapping for each of these hosts and cannot absolutely rely on DNS mapping. Although SMB is supposed to rely on DNS for name resolution, it doesn't do so properly. It gets worse for Windows NT. With NT, each machine has to belong to an NT domain (which is different from an Internet domain) to identify other NT machines on its network. As a depressing security aside, network managers with Windows machines connected to the Internet should be very careful of the domain or workgroup used on these Windows machines. One glaring security problem is that naive users leave their default workgroup as WORKGROUP. This means anyone on the Internet who sets their workgroup to this same name and knows your IP address will have access to all files with file sharing enabled.
A `standard?' Yes and no
Despite its moniker, the Common Internet File System is not yet common on the Internet nor is it a standard. Microsoft offered it to the Internet Engineering Task Force (IETF) as a draft for an informational RFC. On the other hand, X/Open (now the Open Group) published SMB as CAE Specification C209. Microsoft is not taking a page from Sun's WebNFS marketing book in claiming that CIFS is better than HTTP. Instead Microsoft positions CIFS as an alternative to HTTP. This is curious, since HTTP is infamous for its rudimentary file sharing -- a few notches above FTP at best. Microsoft probably aims to continue access to Web pages using HTTP. Instead of creating a new schema as Sun did with the nfs:// schema for WebNFS, Microsoft will probably extend the use of the file:// schema, which is currently underutilized to indicate the local hard drive only.
Support for CIFS
Other vendors have long supported CIFS in one form or another, even blood rivals. Novell, Banyan, Digital, and IBM support SMB-based file sharing in current versions of NetWare, Vines, Pathworks, and LAN Server products, respectively. In addition, top-notch UNIX vendors have also created packages for sharing UNIX file systems through gateways such as AT&T Advanced Server for UNIX, Samba, SCO LAN Manager, and HP Advanced Server 9000. With the new CIFS banner, Intergraph, Data General, and Intel have pledged support for this file system. One curious addition is Network Appliance, builders of quick and inexpensive NFS servers. Its NetApp Multiprotocol Filer supports both NFS and CIFS. Network Appliance's actual file system on the server is a proprietary mechanism designed for speed and accessibility and the actual interfaces are industry standard -- an interesting method to win on both fronts.
CIFS for you, CIFS for me
Like it or not, if you have Windows machines you are using CIFS. Microsoft is making CIFS a common part of all members of the Windows family. The naming systems is still quite outdated and Microsoft is trying to fix this. The much anticipated Open Directory Services Interface (ODSI), which would have also been Microsoft's future competitor to the NetWare Directory Services (NDS) system seems to have gone to the land of abandoned projects. Microsoft has given confusing and sometimes conflicting statements onto the direction it will take with ODSI. The Lightweight Directory Access Protocol (LDAP) has gained some acceptance as a vendor neutral situation which falls somewhere between the computational efficiency of DNS and the complexity of X.500. This is only a naming system not a file system, although the former is required for the latter. Filesystems such as NFS will probably remain in the world of UNIX and heterogeneous networks for at least another decade or two. CIFS will also continue in parallel as long as Microsoft is in existence and probably for sometime after. The moral is to stay on top of the information and understand where they are coming from and where they are going.
About the author
Rawn Shah is vice president of RTD Systems & Networking Inc., a Tucson, Arizona based network consultancy and integrator. Reach Rawn at email@example.com.
If you have technical problems with this magazine, contact firstname.lastname@example.org