Installation guide
Chapter 10.
57
Network File System (NFS)
A Network File System (NFS) allows remote hosts to mount file systems over a network and interact
with those file systems as though they are mounted locally. This enables system administrators to
consolidate resources onto centralized servers on the network.
This chapter focuses on fundamental NFS concepts and supplemental information.
10.1. How It Works
Currently, there are three versions of NFS. NFS version 2 (NFSv2) is older and is widely supported.
NFS version 3 (NFSv3) supports safe asynchronous writes and a more robust error handling than
NFSv2; it also supports 64-bit file sizes and offsets, allowing clients to access more than 2Gb of file
data.
NFS version 4 (NFSv4) works through firewalls and on the Internet, no longer requires an rpcbind
service, supports ACLs, and utilizes stateful operations. Red Hat Enterprise Linux supports NFSv2,
NFSv3, and NFSv4 clients. When mounting a file system via NFS, Red Hat Enterprise Linux uses
NFSv4 by default, if the server supports it.
All versions of NFS can use Transmission Control Protocol (TCP) running over an IP network, with
NFSv4 requiring it. NFSv2 and NFSv3 can use the User Datagram Protocol (UDP) running over an IP
network to provide a stateless network connection between the client and server.
When using NFSv2 or NFSv3 with UDP, the stateless UDP connection (under normal conditions)
has less protocol overhead than TCP. This can translate into better performance on very clean, non-
congested networks. However, because UDP is stateless, if the server goes down unexpectedly, UDP
clients continue to saturate the network with requests for the server. In addition, when a frame is lost
with UDP, the entire RPC request must be retransmitted; with TCP, only the lost frame needs to be
resent. For these reasons, TCP is the preferred protocol when connecting to an NFS server.
The mounting and locking protocols have been incorporated into the NFSv4 protocol. The server also
listens on the well-known TCP port 2049. As such, NFSv4 does not need to interact with rpcbind
1
,
rpc.lockd, and rpc.statd daemons. The rpc.mountd daemon is still required on the NFS server
so set up the exports, but is not involved in any over-the-wire operations.
Note
TCP is the default transport protocol for NFS version 2 and 3 under Red Hat Enterprise Linux.
UDP can be used for compatibility purposes as needed, but is not recommended for wide usage.
NFSv4 requires TCP.
All the RPC/NFS daemon have a '-p' command line option that can set the port, making firewall
configuration easier.
After TCP wrappers grant access to the client, the NFS server refers to the /etc/exports
configuration file to determine whether the client is allowed to access any exported file systems. Once
verified, all file and directory operations are available to the user.
1
The rpcbind service replaces portmap, which was used in previous versions of Red Hat Enterprise Linux to map RPC
program numbers to IP address port number combinations. For more information, refer to Section 10.1.1, “Required Services”.