0.1 NFS

NFS (Network File System) es una forma sencilla y eficiente de acceder a un directorio de un host remoto como si estuviera montado en nuestro host local. Esto nos va a permitir leer y escribir el fichero de datos de la forma m’as conveniente para nosotros (por ejemplo, accediendo s’olo al final del fichero).

Creaci’on del directorio local

Antes de montar un directorio remoto es necesario tener uno local vac’io (sin ficheros u otros directorios). Un ejemplo de creaci’on podr’ia ser:

# Creacin de un directorio vaco en el directorio "/tmp"  
# y que se llama "nfs".  
local_host@root# mkdir /mnt/nfs

Instalaci’on del servidor

Debian’s:
 
# Instalamos las utilidades para servir NFS.  
remote_host@root# apt-get install nfs-kernel-server  
 
# Creamos el (o aadimos al) fichero "/etc/exports" una  
# lnea que exporte el directorio deseado  
# (en este caso "/var/www"), con los  
# parmetros adecuados. Vase "man exports" para conocer  
# ms sobre el formato de "/etc/exports".  
# Exportamos a todos los hosts de nuestra sub-red de clase C.  
remote_host@root# cat << EOF >> /etc/exports  
/var/www 192.168.6.*(rw,no_subtree_check)  
EOF

Red Hat’s:
 
# Instalamos las utilidades para servir NFS.  
remote_host@root# yum install nfs-utils  
 
# Creamos el (o aadimos al) fichero "/etc/exports" una  
# lnea que exporte el directorio deseado  
# (en este caso "/var/www/html"), con los  
# parmetros adecuados. V’ease "man exports" para conocer  
# ms sobre el formato de "/etc/exports".  
# Exportamos a todos los hosts de nuestra sub-red de clase C.  
remote_host@root# cat << EOF >> /etc/exports  
/var/www/html 192.168.6.*(rw,no_subtree_check)  
EOF  
 
# Creamos/a~nadimos el/al fichero "/etc/hosts.deny".  
remote_host@root# cat << EOF >> /etc/hosts.deny  
portmap: ALL  
lockd: ALL  
mountd: ALL  
rquotad: ALL  
statd: ALL  
EOF  
 
# Creamos/a~nadimos el/al fichero "/etc/hosts.allow".  
remote_host@root# cat << EOF >> /etc/hosts.allow  
portmap: ALL  
lockd: ALL  
rquotad: ALL  
mountd: ALL  
statd: ALL  
EOF  
 
# Por seguridad, reiniciamos el demonio del NFS.  
remote_host@root# /etc/init.d/nfs restart

Instalaci’on del cliente

Debian’s:
 
# Instalamos el cliente NFS.  
local_host@root# apt-get install nfs-common

Red Hat’s:
 
# El cliente NFS debera haberse instalado con las nfs-utils.

Montamos localmente el sistema de ficheros remoto

Montamos el directorio exportado. Esto tambi’en puede hacerse en tiempo de arranque usando el fichero /etc/fstab. Usese man mount para obtener m’as informaci’on.

# Montamos el directorio "remote_host:/var/www" en  
# el directorio "/mnt/nfs".  
local_host@root# mount -t nfs remote_host:/var/www /mnt/nfs

Accedemos a un fichero remoto

# Mostramos el contenido del fichero en el host local.  
local_host@usuario$ watch "tail /mnt/nfs/datos.txt"

Ejercicio 1: Determine usando Wireshark si el acceso al fichero remoto es eficiente, en el sentido que s’olo se transmite por la red aquella parte del fichero que se reclama desde el cliente.

Ejercicio 2: Seg’un el experimento anterior, qu protocolo de la capa de transporte utiliza el NFS?