User Tools

Site Tools


informatica:linux:nfs

This is an old revision of the document!


NFS

nfs portmap

Instalacion y configuracion

En el servidor se instalan los paquetes:

sudo aptitude install nfs-common nfs-kernel-server

En el servidor se edita el fichero:

sudo vim /etc/exports

Se añade la linea:

#recurso       ips con acceso              permisos 
/home/datos 192.168.1.0/255.255.255.0(rw,async,subtree_check,no_root_squash)

Se reinicia el servicio:

sudo exportfs -rav

Desde el cliente se instalan estos paquetes:

sudo aptitude install nfs-common portmap

y se monta el recurso donde 192.168.1.3 es la ip del servidor i /home/datos su recurso compartido y /mnt/raid donde lo queremos montar en el cliente:

sudo mount -t nfs 192.168.1.3:/home/datos /mnt/raid/

Para que lo pueda montar un usuario distinto a root añadir en /etc/fstab la siguiente linea:

192.168.1.3:/home/datos /mnt/raid nfs users 0 0

Y con cualquier usuario montamos la unidad:

mount /mnt/raid

Puertos

http://www.lowth.com/LinWiz/nfs_help.html

Problema: algunos de los puertos que usa NFS son aleatorios

  • Listar los puertos (algunos de ellos aleatorios) que esta usando el servidor NFS:
sudo rpcinfo -p
   programa vers proto   puerto
    100000    2   tcp    111  portmapper
    100000    2   udp    111  portmapper
    100024    1   udp  44903  status
    100024    1   tcp  33188  status
    100021    1   udp  60213  nlockmgr
    100021    3   udp  60213  nlockmgr
    100021    4   udp  60213  nlockmgr
    100021    1   tcp  54411  nlockmgr
    100021    3   tcp  54411  nlockmgr
    100021    4   tcp  54411  nlockmgr
    100003    2   tcp   2049  nfs
    100003    3   tcp   2049  nfs
    100003    4   tcp   2049  nfs
    100003    2   udp   2049  nfs
    100003    3   udp   2049  nfs
    100003    4   udp   2049  nfs
    100005    1   udp  37585  mountd
    100005    1   tcp  45231  mountd
    100005    2   udp  37585  mountd
    100005    2   tcp  45231  mountd
    100005    3   udp  37585  mountd
    100005    3   tcp  45231  mountd
Daemon Name RPM Standard Port Suggested Port What to Change
portmap portmap 111 111 Nothing
rpc.statd nfs-utils Random 4000 Edit /etc/init.d/nfslock
rpc.nfsd nfs-utils 2049 2049 Nothing
rpc.lockd nfs-utils & kernel Random 4001 Edit /etc/modules.conf
rpc.mountd nfs-utils Random 4002 Create or Edit /etc/sysconfig/nfs
rpc.rquotad quota Random 4003 Install “quota” package version 3.08 or later and edit /etc/rpc and /etc/services

Establecer puertos fijos

  • Fijar puerto de status:

1. Backup

sudo cp /etc/default/nfs-common /etc/default/nfs-common.old

2. Editar

sudo vim /etc/default/nfs-common

Y dejar la linea tal que asi:

STATDOPTS="--port 4000"

3. Reiniciar servicios:

sudo /etc/init.d/nfs-common restart
Stopping NFS common utilities: idmapd statd.
Starting NFS common utilities: statd idmapd.

4. Comprobar que ahora escucha en el puerto TCP 4000:

sudo rpcinfo -p | grep status
    100024    1   udp   4000  status
    100024    1   tcp   4000  status
  • Fijar puerto de nlockmgr:

1. Backup

sudo cp /etc/modules /etc/modules.old

2. Editar

sudo vim /etc/modules

Y anyadir la siguiente linea:

lockd nlm_udpport=4001 nlm_tcpport=4001

3. Reiniciar sistema para asegurarnos que funciona:

sudo shutdown -r now
  • Fijar puerto de mountd:

1. Backup

sudo cp /etc/default/nfs-kernel-server /etc/default/nfs-kernel-server.old

2. Editar

sudo vim /etc/default/nfs-kernel-server

Y dejar la siguiente linea tal que asi:

...
RPCMOUNTDOPTS="-p 4002 --manage-gids"
..

3. Reiniciar servicios:

sudo /etc/init.d/nfs-kernel-server restart

Stopping NFS kernel daemon: mountd nfsd.
Unexporting directories for NFS kernel daemon....
Exporting directories for NFS kernel daemon....
Starting NFS kernel daemon: nfsd mountd.

4. Comprobar que ahora escucha en el puerto TCP 4000:

sudo rpcinfo -p | grep mountd
    100005    1   udp   4002  mountd
    100005    1   tcp   4002  mountd
    100005    2   udp   4002  mountd
    100005    2   tcp   4002  mountd
    100005    3   udp   4002  mountd
    100005    3   tcp   4002  mountd

Ejemplo reglas iptables

#!/bin/bash

IPTABLES=/sbin/iptables
VIRT_IF="virbr1"
VM="10.0.0.0/24"
KVM_VM_IP="10.0.0.1"

NFS_PORTS="
111
4001
2049
4002
"

for port in $NFS_PORTS
do
    if [[ "$port" != "#"* ]]
    then
        $IPTABLES -A INPUT -i $VIRT_IF -s $VM -d $KVM_VM_IP -p tcp --dport $port -j ACCEPT
        $IPTABLES -A INPUT -i $VIRT_IF -s $VM -d $KVM_VM_IF -p udp --dport $port -j ACCEPT
    fi
done
informatica/linux/nfs.1363086796.txt.gz · Last modified: 2015/04/13 20:19 (external edit)