Protocolos de File Sharing

 
 
 

Esta pagina web es un resumen del trabajo presentado en la cátedra de seminario de redes el 13 de noviembre del 2002 por el grupo Superpollo, y realiza una breve reseña sobre los protoclolos SMB y NFS, como configurarlos, y cual es su performance en terminos medios.

 

Grupo Superpollo  

Integrantes:
Glaz, Javier 76843
Wiernik, Diego 76292
Cofman, Fernando 76332

Contenidos

SMB(Server Message Block)

¿Qué es SMB?
Es un protocolo para compartir archivos, impresoras y puertos de comunicación entre distintas máquinas. En sus últimas versiones se conoce como CIFS (Common Internet File System)
Fue introducido en 1985 por IBM y desarrollado a partir de entonces en conjunto con Microsoft para redes Windows y OS/2.
¿Cómo trabaja SMB?
En la conexión inicial, el protocolo negocia entre cliente y servidor un dialecto a utilizar (variante de SMB). El dialectos más común se denomina core. Las operaciones que soporta son: conexión, desconexión, apertura, cierre, lectura y escritura de archivos e impresoras, búsqueda en directorios, etc.
¿Cómo se implementa SMB?
Los clientes se conectan a los servers utilizando TCP/IP (en realidad utilizan NetBIOS sobre TCP/IP), NetBEUI o IPX/SPX.
Una vez establecida la conexión, los clientes envian comandos SMB para realizar las distintas operaciones.

Como se menciona mas arriba, SMB puede utilizarse con varios y diversos protocolos. Esto puede verse mejor en el siguiente esquema:

Niveles de Seguridad
Seguridad orientada a los recursos
La protección se aplica en el ambito compartido en el servidor. Cada recurso compartido puede tener una contraseña y un cliente sólo tiene que poseer la contraseña para acceder a todos los archivos bajo ese recurso compartido.

Seguridad orientada a los usuarios
En Windows NT y Windows 2000, las protecciones se aplican a archivos individuales en cada recurso compartido y se basan en los derechos de acceso del usuario.

Publicacion de los Servers
¿Por qué es necesario publicar los Servers?
El hecho de tener una gran cantidad de Servers en la red, pierde sentido si los clientes no pueden localizarlos (en especial cuando se agregan o eliminan). Es por eso que los Servers deben anunciarse como recursos disponibles en la red.

¿Cómo se implementa en SMB la publicación?
Cada Server publica (mediante broadcasts) información sobre sí mismo a la vez que los clientes construyen una lista de la exploración de la red (browse list). Según los protocolos de capa inferior que se utilicen, estos mensajes se resuelven de distintas formas.

Intercambio protocolar

Comandos Core de SMB

Los comandos mas importantes (el dialecto principal) SMB se conoce como Core y son los que mas se utilizan en general. A continuacion puede verse una tabla con los principales comandos de este dialecto SMB.

 

NFS (Network File System)

¿Qué es NFS?
Es un Sistema de Archivos distribuido que provee acceso transparente a discos remotos. Es independiente de la arquitectura, sistema operativo y protocolo de transporte de la red.
Permite centralizar la administración de discos.
Fue introducido por SUN Microsystems en 1985, devenido en estándar desde 1989.
¿Para qué utilizar NFS?
Para asegurar que los archivos de usuarios se encuentren disponibles desde máquinas locales.
Para evitar la copia de archivos a la máquina local.
¿Cómo está implementado NFS?
Emula al Sistema de Archivos de UNIX.
Utiliza mecanismos RPC/XDR.

Caracteristicas Principales
Transparencia de acceso
El módulo Cliente de NFS ofrece una API identica a la interface del sistema operativo local. Los usuarios ven al sistema remoto como si fuese un Sistema de Archivos local.
No requiere modificaciones a programas existentes para permitir que operen con archivos remotos.

Transparencia en la ubicación
Cada cliente agrega el Sistema de Archivos remoto en su espacio de nombres local.
Los Sistemas de Archivos son exportados por el Server y montados (en forma remota) por los clientes.

Transparencia ante falla
El servicio NFS es stateless y las operaciones de acceso son todas de igual prioridad.
Las operaciones de archivos de UNIX se traducen en calls de NFS por el módulo cliente.

Esquema de Comunicacion
Como se menciona mas arriba, NFS se basa en la utlizacion de mecanismos RPC para la comunicacion etre File Systems remotos, con lo cual lo que se envia y recibe entre sistemas remotos son peticiones y respuestas RPC. Esto puede verse en el siguiente esquema:


Configuracion SMB

Configuracion en Windows
En el grafico que se encuentra a continuacion puede verse los pasos a seguir para compartir una unidad en Windows 95/98

Configuracion en Linux
Para que otros usuarios puedan acceder a recursos locales de una máquina linux utilizando SMB, es necesario instalar un Server para dicho protocolo, por ejemplo Samba. Para hacerlo funcionar, se debe crear el archivo smb.conf (que está generalmente ubicado en el directorio /etc). Un ejemplo sencillo podría ser:

/etc/smb.conf

[global]
workgroup = LAB-ELEC
encrypt passwords = yes
[test]
comment = Comentario de Recurso
path = /export
read only = no
guest ok = yes

A continuación, debe definirse el usuario que accederá a los recursos, tanto en la base de usuarios de linux (useradd) como en la de Samba (smbpasswd). Por último, es necesario correr los daemons que ponen en funcionamiento el Server:

smbd –D (Samba en modalidad daemon)
nmbd –D (Para utilizar NetBIOS)

Conexion a los recursos de Red
En Windows, a través del menú Herramientas del Explorador, es posible Conectarse a una unidad de red. Para ello, hay que ingresar la letra de unidad y la ruta de acceso del recurso.


En linux sólo es necesario montar el recurso como una Sistema de Archivos local. Esto se logra utilizando el comando mount con la opción de SMB:

mount –t smbfs –o username=alumno,password=alumno //win98/discoc /mnt/w98

Configuracion NFS

Programas importantes
portmap
admininstra la comunicación entre entidades RPC.
rpc.mountd
atiende los pedidos de acceso NFS.
atiende los pedidos de montaje de sistemas de archivos.
lee el archivo /etc/exports y determina que sistemas de archivos debe montar.
rpc.nfsd:
maneja los pedidos de sistemas de archivos del cliente.
permite a los clientes acceder en modo read-only y read-write a la jerarquìa de archivos del server

Archivos importantes
/etc/exports
lista de los controles de acceso de los sistemas de archivos a exportar.

Configuracion
El archivo /etc/exports contiene el listado de los Sistemas de Archivos que son exportados a otras máquinas, así como las opciones particulares afectan a cada uno de ellos. Cada Sistema de Archivos exportado debe tener su propia línea seguido por el conjunto de máquinas autorizadas a accederlo. Las opciones para cada una de dichas máquinas deben ser colocadas entre paréntesis detrás de su identificador. Un ejemplo sencillo podría ser:

/export 157.92.48.68(rw,no_root_squash)

A continuación, deben ponerse a correr los daemons que manejan este sistema de File Sahring:

portmap
rpc.mountd
rpc.nfsd
rpc.statd

Es posible verificar que los daemons se encuentren activos ejecutando rpcinfo -p.

Conexion a los recursos de Red
Para acceder a los archivos ubicados en un recurso de red, sólo es necesario montar el Sistema de Archivos como si fuera uno local. Esto se logra utilizando el comando mount con la opción de NFS:

mount –t nfs 157.92.48.86:/export /mnt/remoto

Comparaciones

Para efectuar comparaciones de performance entre los protocolos, se realizaron transferencias de archivos de 5 tamaños distintos (1K, 16K, 256K, 1M, 4M). Las pruebas se realizaron para todas las configuraciones posibles, a saber:

SMB
NFS
Cliente
Servidor
Cliente
Servidor
Windows
Linux
Linux
Linux
Linux
Windows
Linux
Linux
Windows
Windows

Se procedio entonces capturando el trafico de dicha transferencia con el Ethereal. Con los datos recolectados se confeccionaron los siguientes graficos:

 

 

Conclusiones

Como conclusion de los ensayos llevados a cabo, se extrae que las configuraciones cruzadas son significativamente peores que cuando se trabaja con dos plataformas iguales.

Bibliografia

http://samba.anu.edu.au/cifs/docs/what-is-smb.html - Just what is SMB? - Richard Sharpe

http://ourworld.compuserve.com/homepages/timothydevans/smb.htm - SMB Overview

http://www.microsoft.com/mind/1196/cifs.asp - CIFS: A common Internet File System - Paul Leach and Dan Perry

RFC1094 - NFS version 2

RFC1813 - NFS version 3

http://www.nfsv4.org/ - Sitio de NFS version 4

RFC3010 - NFS version 4

NFS version 3: Design and Implementation - Brian Pawlowski

 

Ultima modificacion: 21 Noviembre 2002