Acceso remoto usando NFS

Vicente González Ruiz

June 25, 2014

Contents

1 NFS

Desde que los sistemas operativos utilizan la red, siempre ha existido la necesidad de acceder a sistemas de ficheros remotos. NFS y Samba son dos soluciones eficientes. El NFS est basado en la solucin para el acceso a sistemas de fichero remotos que Sun Microsystems dise para su sistema operativo, ya extinto, SunOS. Por otro lado, Samba es la implementacin libre del protocolo CIFS (Common Internet File System)1 que se utiliza en los sistema operativos Microsoft Windows para acceder a recursos remotos (discos, impresoras, etc.).

1 NFS

NFS (Network File System) es una forma sencilla y muy eficiente de acceder remotamente 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 ms conveniente para nosotros (por ejemplo, accediendo slo al final del fichero).

remote_host@root# mkdir /mnt/nfs

# 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.0/24(rw,no_subtree_check)  
EOF  
# Nota: es importante escribir adecuadamente el prefijo de la red en  
# la que nos encontramos, o los hosts que nosotros deseamos no podrn  
# montar el directorio remoto. Usese la utilidad /sbin/ifconfig para  
# determinar la sub-red en la que estamos.  
 
# Reiniciamos el demonio del NFS para que vea las modificaciones  
# que acabamos de realizar.  
remote_host@root# /etc/init.d/nfs-kernel-server restart  
 
# Comprobamos que el directorio ha sido efectivamente exportado:  
remote_host@root# exportfs  
 
# Instalamos el cliente (puede ser la misma mquina que  
# remote_host, y en este caso, no hace falta instalar  
# nfs-common).  
local_host@root# apt-get install nfs-common  
 
# Montamos el directorio exportado. Esto tambin puede  
# hacerse en tiempo de arranque usando el fichero  
# "/etc/fstab". Usese "man mount" para obtener ms info.  
local_host@root# mount -t nfs remote_host:/var/www /mnt/nfs  
# Nota: "remote_host" debe pertenecer a la subred 192.168.6.0/8.  
# Eso quiere decir que si usamos como "remote_host" a "localhost"  
# no vamos a poder montar nada. Habra que usar la IP del  
# adaptador de red con la direccin IP en 192.168.6.0/8.

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

Taller 1: Usando Wireshark, compruebe que el servidor NFS slo transmite aquellas partes del fichero remoto que son solicitadas desde el cliente. ¿Qu protocolo de la capa de transporte est usando el NFS?