Anda di halaman 1dari 22

Asignatura:

Administracin de
Servicios de Red
TEMA 2. SERVICIOS DE COMPARTICIN DE ARCHIVOS Y DE
NETWORKING
Introduccin
Muchos programas estn escritos para manejar archivos como datos de
entrada y salida.
Antes de tener redes, la transferencia de datos involucr la
trasferencia de datos va medios removibles como discos o cintas
magnticas.
Las redes permitieron la comunicacin directa:
Transferencia de archivos: equivalente a transferencias de cintas o
discos.
Sistemas de archivos remotos: acceso a archivos remotos como si
ellos fueran locales.
Arquitectura NFS
El servidor NFS exporta uno o ms directorios
/etc/exports
Los clientes montan los directorios
Pasan a formar parte de su jerarqua de directorios
Compartir informacin
Mecanismos de proteccin
Bits rwx
cada mensaje contiene la identificacin del usuario y del grupo
Se puede utilizar criptografa para validar el cliente y el servidor
No se utiliza para los datos
Las claves se mantienen en las NIS
NIS
Servicio de informacin de red
Pginas amarillas
Pares (clave,valor)
mapa de nombres de usuarios y password
mapa de nombres de mquinas y direcciones de red
Gestin maestro/esclavo
Varias copias de los servidores
Se puede usar el maestro o el esclavo
Las modificaciones en el maestro que propaga los cambios
Implementacin NFS
VFS: Sistema de
ficheros virtual
SO local
Cliente
NFS
mensaje
Llamadas al
sistema
Disco
local
VFS: Sistema de
ficheros virtual
Servidor
NFS
SO local
Disco
local
mensaje
Cliente Servidor
red
VFS
Mantiene una tabla para los ficheros abiertos
Cada entrada se conoce como un V-nodo
En el V-nodo se indica si el fichero es local o remoto
Si el fichero es local en el V-nodo hay un puntero al i-nodo
del S.F local
Si es remoto, al r-nodo del cliente NFS
El r-nodo contiene informacin suficiente para poder acceder
al fichero
Montado
El administrador
mount nombre_dir_remoto nombre_dir_local
Programa mount
Analiza el nombre del directorio remoto
Pide a la mquina remota el manejador
Hace la llamada al sistema MOUNT
Llamada al sistema MOUNT
Crea un v-nodo
Pide al cliente que cree un r-nodo
Hace apuntar el v-nodo al r-nodo
Apertura
Se analiza el camino y se encuentra el directorio donde se ha montado el
sistema de ficheros remoto
Se obtiene del v-nodo el puntero al r-nodo
El cliente NFS busca el resto del camino en el servidor
El servidor devuelve un manejador
El cliente NFS crea un r-nodo y devuelve al VFS el puntero al r-nodo
VFS pone este puntero en la tabla de v-nodos
Se devuelve el descriptor del fichero remoto
Lectura
Se usa el descriptor devuelto en la llamada a OPEN
VFS localiza el v-nodo correspondiente
Se determina si es local o remoto
Se localiza el r-nodo o el i-nodo
Memoria cach
Para mejorar el rendimiento
Problema
Si un cliente lee un bloque y lo modifica, otro cliente que lee este bloque no ve las modificaciones
Solucin
Temporizador:
3 s para bloques de datos
30 s para informacin administrativa y directorios
Al abrir un fichero de la memoria cach, se comprueba si est actualizado
Se ven o no las modificaciones
de un fichero dependiendo del tiempo
Si un fichero se crea, no se ve
hasta despus de 30 s aproximadamente
Conclusin
NFS proporciona un sistema de ficheros compartido
Slo trata con el sistema de ficheros
Aadido a UNIX
Si hay un conjunto de programas cooperando, no se sabe
muy bien el resultado ya que depende del tiempo o
secuencia de acciones
NFS es muy popular y usado
Requisitos mnimos:

Soporte NFS activo en el kernel.
RPCs: rpc.mountd y rpc.nfsd
portmap instalado.
Implementacin
Implementacin y especificacin de un software de sistema para acceso a archivos
remotos
Diseado para trabajar en entornos heterogneos (diferentes mquinas,
sistemas operativos, ...)
La independencia se consigue mediante el uso de las RPC construidas
sobre el protocolo XDR (eXternal Data Representation)
Las diferentes mquinas montan un directorio remoto en el sistema de
archivos local
El espacio de nombres es diferente en cada mquina
El montado no es transparente, debe proporcionarse el nombre de la mquina remota
No es un verdadero sistema de archivos distribuido

Montado en NFS
Establece una conexin lgica entre el servidor y el cliente
La mquina A exporta /usr y /bin
En la mquina B:

Montado en NFS
Imagen diferente del sistema de archivos
Autenticacin mediante user
Para permitir que un servidor de SAMBA
autentique mediante user usando contraseas
cifradas:
Se utilizan los ficheros
/var/lib/samba/private/passdb.tdb y
/var/lib/samba/private/secrets.tdb.
Los usuarios se manejan con el comando:
/usr/bin/smbpasswd
Protocolo de montado
program MOUNT_PROGRAM {
version MOUNT_V3 {
void MOUNTPROC3_NULL(void) = 0;
mountres3 MOUNTPROC3_MNT(dirpath) = 1;
mountlist MOUNTPROC3_DUMP(void) = 2;
void MOUNTPROC3_UMNT(dirpath) = 3;
void MOUNTPROC3_UMNTALL(void) = 4;
exports MOUNTPROC3_EXPORT(void) = 5;
} = 3;
} = 100005;

Protocolo NFS
program NFS_PROGRAM {
version NFS_V3 {
void NFSPROC3_NULL(void) = 0;
GETATTR3res NFSPROC3_GETATTR(GETATTR3args) = 1;
SETATTR3res NFSPROC3_SETATTR(SETATTR3args) = 2;
LOOKUP3res NFSPROC3_LOOKUP(LOOKUP3args) = 3;
ACCESS3res NFSPROC3_ACCESS(ACCESS3args) = 4;
READLINK3res NFSPROC3_READLINK(READLINK3args) = 5;
READ3res NFSPROC3_READ(READ3args) = 6;
WRITE3res NFSPROC3_WRITE(WRITE3args) = 7;
CREATE3res NFSPROC3_CREATE(CREATE3args) = 8;
MKDIR3res NFSPROC3_MKDIR(MKDIR3args) = 9;
SYMLINK3res NFSPROC3_SYMLINK(SYMLINK3args) = 10;
MKNOD3res NFSPROC3_MKNOD(MKNOD3args) = 11;
REMOVE3res NFSPROC3_REMOVE(REMOVE3args) = 12;
RMDIR3res NFSPROC3_RMDIR(RMDIR3args) = 13;
RENAME3res NFSPROC3_RENAME(RENAME3args) = 14;
LINK3res NFSPROC3_LINK(LINK3args) = 15;
READDIR3res NFSPROC3_READDIR(READDIR3args) = 16;
READDIRPLUS3res FSPROC3_READDIRPLUS(READDIRPLUS3args) = 17;
FSSTAT3res NFSPROC3_FSSTAT(FSSTAT3args) = 18;
FSINFO3res NFSPROC3_FSINFO(FSINFO3args) = 19;
PATHCONF3res NFSPROC3_PATHCONF(PATHCONF3args) = 20;
COMMIT3res NFSPROC3_COMMIT(COMMIT3args) = 21;
} = 3;
} = 100003;

LOOKUP3res NFSPROC3_LOOKUP(LOOKUP3args)
struct LOOKUP3args {
diropargs3 what;
};
struct diropargs3 {
nfs_fh3 dir;
filename3 name;
};
union LOOKUP3res switch (nfsstat3 status) {
case NFS3_OK:
LOOKUP3resok resok;
default:
LOOKUP3resfail resfail;
};
struct LOOKUP3resok {
nfs_fh3 object;
post_op_attr obj_attributes;
post_op_attr dir_attributes;
};

WRITE3res NFSPROC3_WRITE(WRITE3args)
struct WRITE3args {
nfs_fh3 file;
offset3 offset;
count3 count;
stable_how stable;
opaque data<>;
};
union WRITE3res switch (nfsstat3 status) {
case NFS3_OK:
WRITE3resok resok;
default:
WRITE3resfail resfail;
};
struct WRITE3resok {
wcc_data file_wcc;
count3 count;
stable_how committed;
writeverf3 verf;
};

READ3res NFSPROC3_READ(READ3args)
struct READ3args {
nfs_fh3 file;
offset3 offset;
count3 count;
};
union READ3res switch (nfsstat3 status) {
case NFS3_OK:
READ3resok resok;
default:
READ3resfail resfail;
};
struct READ3resok {
post_op_attr file_attributes;
count3 count;
bool eof;
opaque data<>;
};