1.3 Overview

The Distributed File System (DFS) enables file system clients to access remote file shares by using a DFS path (or virtual name) for the share, which is then transparently resolved to an actual share name on an actual file server. There is quite a bit of flexibility in this mapping. For example, DFS can enable the grouping of a set of shares located on different file servers into a unified namespace. DFS name resolution can also be used to transparently recover from a file server failure and to resolve a share to a geographically optimal file server for the specific client that is requesting access. Without DFS, users of a network file system, such as Server Message Block (SMB), are required to know the names of all file servers, and shares that reside on those file servers, for which they require access. With DFS, users can navigate a unified namespace to access files and folders without knowledge of the names of individual file servers and shares that host the data. For more information about DFS, including DFS terminology, usage models, and the Microsoft DFS implementation, see [MSDFS].

After the DFS path has been resolved to an actual path, clients can directly access files on the identified servers by using standard remote file system protocols, such as the Server Message Block (SMB) Protocol (as specified in [MS-SMB]), Server Message Block (SMB) Version 2 Protocol (as specified in [MS-SMB2]), Network File System (NFS) (as specified in [RFC3530]), and NCP, as specified in [NOVELL].

The DFS: Referral Protocol supports two types of namespaces: domain-based namespaces, which offer high availability and load balancing, and stand-alone namespaces, which reside on a single DFS root target server and do not require domain infrastructure. In stand-alone DFS namespaces, clients issue root referral requests and link referral requests directly to the DFS root target server.

For domain-based namespaces, clients issue DFS referral requests to domain controllers (DCs) to discover the existence of domains and the existence of DFS namespaces. Clients issue referral requests to DCs in order to discover the DFS root target servers hosting specific DFS namespaces. Clients can also issue referral requests to DFS root target servers to discover other DFS root target servers that host a DFS namespace. Clients issue referral requests to DFS root target servers to discover the locations of DFS link targets (shares on file servers).  After the components of a DFS path have been resolved to specific targets, clients then issue file system requests directly to file servers, using the appropriate remote file system protocol for that server.

In crossing DFS namespaces, clients can attempt to issue file system requests against DFS links. File servers can notify the client of the requirement for name resolution by using designated error messages in file system protocols. Clients then issue referral requests to resolve DFS links into DFS link targets, as specified in section With newly resolved paths, clients then reissue file system requests directly to the appropriate file servers. The DFS links in a DFS namespace can also include paths that point to other DFS namespaces. A DFS link that points to another DFS namespace is called a DFS interlink. For DFS interlinks, if the target is a domain-based DFS namespace, there cannot be more than one target for the link. However, multiple stand-alone DFS namespace targets are supported as DFS interlink targets.

The DFS: Referral Protocol is a command/acknowledge protocol that sends out a sequence of referral requests to eventually resolve the DFS path to an actual path. There are five types of referral requests, as specified in section 2.2.2:

  • Domain referrals, which identify the domains in the forest to which the DFS client is joined and the domains in other forests, which are part of a trust relationship with the DFS client's forest.

  • DC referrals, which identify the DCs of a specific domain.

  • Root referrals, which identify the DFS root targets of a specific DFS namespace.

  • Link referrals, which identity the DFS link targets of a specific link in a DFS namespace.

  • Sysvol referrals, which identify the DCs that host a domain's SYSVOL or NETLOGON shares.

Domain-joined clients issue all five types of referral requests, while non-domain-joined clients issue only DFS root and DFS link referral requests. Optionally, clients can also be used to administer DFS namespaces (see [MS-DFSNM]).

Clients can maintain local caches of information that are received through referral requests to avoid future referral requests and to improve the performance of DFS resource access, as specified in section 3.1.1.