Este cap�tulo se centra en los conceptos fundamentales de NFS e informaci�n suplementaria. Para instrucciones espec�ficas con respecto a la configuraci�n y operaci�n del software NFS en servidores o clientes, vea el cap�tulo titulado Sistema de archivos de red (NFS) en el Manual de administraci�n del sistema de Red Hat Enterprise Linux.
9.1. Funcionamiento
Hay tres versiones de NFS actualmente en uso. La versi�n 2 de NFS (NFSv2), es la m�s antigua y est� ampliamente soportada por muchos sistemas operativos. La versi�n 3 de NFS (NFSv3) tiene m�s caracter�sticas, incluyendo manejo de archivos de tama�o variable y mejores facilidades de informes de errores, pero no es completamente compatible con los clientes NFSv2. NFS versi�n 4 (NFSv4) incluye seguridad Kerberos, trabaja con cortafuegos, permite ACLs y utiliza operaciones con descripci�n del estado. Red Hat Enterprise Linux soporta clientes tanto NFSv2, NFSv3 como NFSv4, y cuando monta un sistema de archivos a trav�s de NFS, Red Hat Enterprise Linux usa NFSv4 por defecto.
Todas las versiones de NFS pueden utilizar el Protocolo de control de transmisiones (TCP) ejecut�ndose sobre una red IP. En el caso de NFSv4, �ste lo requiere. NFSv2 y NFSv3 pueden utilizar el Protocolo de datagrama de usuarios (UDP) sobre una red IP para proporcionar conexiones de red sin supervisi�n (stateless) entre el cliente y el servidor.
Cuando se utiliza NFSv2 o NFSv3 con UDP, bajo condiciones normales la conexi�n UDP desatendida minimiza el tr�fico de la red, ya que el servidor NFS envia un cookie al cliente despu�s que este tiene acceso al volumen compartido. Esta cookie es un valor aleatorio guardado en el lado del servidor y es pasado junto con las peticiones RPC desde el cliente. El servidor NFS puede ser reiniciado sin afectar a los clientes y las cookies permanecen intactas. Sin embargo, debido a que UDP es sin supervisi�n, si el servidor se cae de forma inesperada, los clientes UDP contin�an saturando la red con peticiones para el servidor. Por esta raz�n, TCP es el protocolo preferido cuando se conecte a un servidor NFS.
Cuando se autentifique utilizando NFSv4, se crea una conexi�n atenta y, de forma opcional, est� disponible la autenticaci�n de usuarios y grupos con Kerberos. NFSv4 no tiene interacci�n con portmapper, rpc.mountd, rpc.lockd y rpc.statd, pues estos han sido incorporados en el kernel. NFSv4 escucha en el puerto TCP 2049.
| Nota |
---|
| TCP es el protocolo por defecto para NFS bajo Red Hat Enterprise Linux. Consulte el cap�tulo llamado Sistema de archivos de red (NFS) en el Manual de administraci�n del sistema de Red Hat Enterprise Linux para m�s informaci�n sobre la conexi�n a servidores NFS usando TCP. UDP se puede utilizar para prop�sitos de compatibilidad si se necesita, pero no es recomendado para uso general. |
La �nica vez que NFS lleva a cabo la autentificaci�n es cuando el cliente intenta montar un recurso compartido NFS. Para limitar el acceso al servicio NFS, se utilizan envolturas TCP (TCP wrappers). Los TCP wrappers leen los archivos /etc/hosts.allow y /etc/hosts.deny para determinar si a un cliente particular o red tiene acceso o no al servicio NFS. Para m�s informaci�n sobre c�mo configurar los controles de acceso con envolturas TCP (TCP wrappers), consulte el Cap�tulo 17.
Despu�s de que al cliente se le permite acceso gracias a un TCP wrapper, el servidor NFS recurre a su archivo de configuraci�n, /etc/exports, para determinar si el cliente tiene suficientes privilegios para acceder a los sistemas de archivos exportados. Una vez otorgado el acceso, todas las operaciones de archivos y de directorios est�n disponibles para el usuario.
| Aviso |
---|
| Si se est� utilizando NFSv2 o NFSv3, los cuales no son compatibles con la autenticaci�n Kerberos, los privilegios de montaje de NFS son otorgados al host cliente, no para el usuario. Por lo tanto, se puede acceder a los sistemas de archivos exportados por cualquier usuario en un host cliente con permisos de acceso. Cuando se configuran las unidades compartidas NFS, tenga mucho cuidado de cu�les hosts obtienen permisos de lectura/escritura (rw). |
| Importante |
---|
| Para que NFS funcione con una instalaci�n de Red Hat Enterprise Linux con un cortafuegos instalado, se debe configurar IPTables con el puerto predeterminado TCP 2049. Sin una configuraci�n IPTables, NFS no funcionar� correctamente. El script de inicializaci�n NFS y el proceso rpc.nfsd ahora permiten la vinculaci�n a cualquier puerto especificado durante el inicio del sistema. Sin embargo, esto puede ser susceptible a errores si el puerto no est� disponible o si entra en conflicto con otro demonio. |
9.1.1. Servicios requeridos
Red Hat Enterprise Linux utiliza una combinaci�n de soporte a nivel del kernel y procesos demonio para proporcionar los archivos compartidos con NFS. NFSv2 y NFSv3 conf�a en las Llamadas de procedimientos remotos ((RPC)) para enrutar peticiones entre clientes y servidores. Los servicios RPC bajo Linux son controlados por el servicio portmap. Para compartir o montar sistemas de archivos NFS, los servicios siguientes funcionan juntos, dependiendo de cu�l versi�n de NFS se tenga implementada:
nfs — Inicia los procesos RPC apropiados para servir peticiones para los sistemas de archivos compartidos NFS.
nfslock — Un servicio opcional que inicia los procesos RPC adecuados para permitir que clientes NFS bloqueen archivos en el servidor.
portmap — El servicio RPC para Linux; responde a las peticiones para servicios RPC y configura las conexiones al servicio RPC solicitado. No se utiliza con NFSv4.
Los siguientes procesos RPC facilitan los servicios NFS:
rpc.mountd — Este proceso recibe las peticiones de montaje desde clientes NFS y verifica que el sistema de archivos solicitado est� actualmente exportado. Este proceso es iniciado autom�ticamente por el servicio nfs y no requiere de la configuraci�n del usuario. No se utiliza con NFSv4.
rpc.nfsd — Este proceso es el servidor NFS. Trabaja con el kernel Linux para satisfacer las demandas din�micas de clientes NFS, tales como proporcionar hilos del servidor cada vez que se conecta un cliente NFS. Este proceso corresponde al servicio nfs.
rpc.lockd — Un proceso opcional que permite a los clientes NFS bloquear archivos en el servidor. Esto corresponde al servicio nfslock. No se utiliza con NFSv4.
rpc.statd — Este proceso implementa el protocolo RPC Network Status Monitor (NSM) el cual notifica a los clientes NFS cuando un servidor NFS es reiniciado luego de haber sido apagado abruptamente. Este proceso es iniciado autom�ticamente por el servicio nfslock y no requiere configuraci�n por parte del usuario. No se utiliza con NFSv4.
rpc.rquotad — Proporciona informaci�n de cuotas de usuario para los usuarios remotos. Este proceso se inicia autom�ticamente por el servicio nfs y no requiere configuraci�n por parte del usuario.
rpc.idmapd — Este proceso proporciona al cliente y servidor NFSv4 llamadas ascendentes (upcalls) que hacen corresponder los nombres NFSv4 (los cuales son cadenas en la forma usuario@dominio) y los UIDs y GIDs locales. Para que idmapd funcione con NFSv4, el /etc/idmapd.conf debe estar configurado. Se requiere este servicio para su uso con NFSv4.
rpc.svcgssd — Este proceso proporciona al servidor los mecanismos de transporte para el proceso de autenticaci�n (Kerberos versi�n 5) con NFSv4. Se requiere este servicio para su uso con NFSv4.
rpc.gssd — Este proceso proporciona al cliente los mecanismos de transporte para el proceso de autenticaci�n (Kerberos versi�n 5). Se requiere este servicio para su uso con NFSv4.
9.1.2. NFS y portmap
| Nota |
---|
| La secci�n siguiente solamente aplica para las implementaciones NFSv2 o NFSv3 que requieren del servicio portmap para la compatibilidad hacia atr�s. |
El servicio portmap bajo Linux asigna las peticiones RPC a los servicios correctos. Los procesos RPC notifican a portmap cuando comienzan, revelando el n�mero de puerto que ellos est�n supervisando y el n�mero de programas RPC que esperan servir. El sistema cliente entonces contacta con el portmap del servidor con un n�mero de programa RPC particular. Entonces portmap redirecciona al cliente al n�mero del puerto apropiado para que se comunique con el servicio solicitado.
Como los servicios basados en RPC confian en portmap para hacer todas las conexiones con las peticiones de clientes entrantes, portmap debe estar disponible antes que cualquiera de esos servicios comience.
El servicio portmap puede utilizar TCP wrappers para el control de acceso, y las reglas de control de acceso para portmap afectan a todos los servicios basados en RPC. Alternativamente, es posible especificar reglas de control de acceso para cada demonio RPC NFS. Las p�ginas man para rpc.mountd y rpc.statd contienen informaci�n relativa a la sintaxis precisa de estas reglas.
9.1.2.1. Resoluci�n de problemas de NFS y portmap
Como portmap proporciona la coordinaci�n entre servicios RPC y los n�meros de puertos usados para comunicarlos, es �til poder visualizar el estado de los servicios RPC actuales usando portmap cuando estamos resolviendo alg�n problema. El comando rpcinfo muestra cada servicio basado en RPC con su n�mero de puerto, n�mero de programa RPC, versi�n y tipo de protocolo (TCP o UDP).
Para asegurarse que est�n activos los servicios NFS basados en RPC para portmap, use el comando siguiente como root:
A continuaci�n se presenta una muestra de la salida de este comando:
program vers proto port
100000 2 tcp 111 portmapper
100000 2 udp 111 portmapper
100021 1 udp 32774 nlockmgr
100021 3 udp 32774 nlockmgr
100021 4 udp 32774 nlockmgr
100021 1 tcp 34437 nlockmgr
100021 3 tcp 34437 nlockmgr
100021 4 tcp 34437 nlockmgr
100011 1 udp 819 rquotad
100011 2 udp 819 rquotad
100011 1 tcp 822 rquotad
100011 2 tcp 822 rquotad
100003 2 udp 2049 nfs
100003 3 udp 2049 nfs
100003 2 tcp 2049 nfs
100003 3 tcp 2049 nfs
100005 1 udp 836 mountd
100005 1 tcp 839 mountd
100005 2 udp 836 mountd
100005 2 tcp 839 mountd
100005 3 udp 836 mountd
100005 3 tcp 839 mountd |
La salida de este comando revela que los servicios NFS correctos se est�n ejecutando. Si uno de los servicios NFS no comienza correctamente, portmap puede ser incapaz de corresponder las peticiones RPC de los clientes para ese servicio con sus respectivos puertos. En muchos casos, si NFS no est� presente en la salida de rpcinfo, reiniciando NFS provocar� que estos servicios se registren correctamente con portmap y empiecen a funcionar. Para m�s instrucciones sobre el inicio de NFS, consulte la Secci�n 9.2.
Est�n disponibles otras opciones �tiles para el comando rpcinfo. Para m�s informaci�n, consulte la p�gina man de rpcinfo.