Acontece que havia um recurso de "segurança" ativado em nosso comutador PowerConnect que se ofendia com pacotes NFS SYN com portas de origem < 1024 (tcpflag dos-control). Basta dizer que a desativação do recurso resolveu o problema.
Eu estou batendo minha cabeça contra uma parede com esta. O ambiente é de 2 x CentOS 6 de 64 bits. O cliente e o servidor NFS estão totalmente atualizados em 1 hora atrás.
Eu configurei uma exportação do NFS no servidor:
/opt/nfs 10.1.1.0/24(rw,sync,no_root_squash,no_all_squash)
AFAICT, todos os serviços relevantes do NFS no servidor estão em execução:
(2) (0 Jobs) [root@lb01-cbr01-au ~]$ service rpcbind status
rpcbind (pid 20079) is running...
(2) (0 Jobs) [root@lb01-cbr01-au ~]$ service nfslock status
rpc.statd (pid 19986) is running...
(2) (0 Jobs) [root@lb01-cbr01-au ~]$ service nfs status
rpc.svcgssd is stopped
rpc.mountd (pid 20034) is running...
nfsd (pid 20031 20030 20029 20028 20027 20026 20025 20024) is running...
(2) (0 Jobs) [root@lb01-cbr01-au ~]$
No cliente, tanto o rpcbind quanto o nfslock reportam como sendo executados.
No servidor, a saída de rpcinfo para localhost parece boa:
[root@lb01-cbr01-au ~]# rpcinfo -p localhost
program vers proto port service
100000 4 tcp 111 portmapper
100000 3 tcp 111 portmapper
100000 2 tcp 111 portmapper
100000 4 udp 111 portmapper
100000 3 udp 111 portmapper
100000 2 udp 111 portmapper
100024 1 udp 39893 status
100024 1 tcp 59014 status
100003 2 tcp 2049 nfs
100003 3 tcp 2049 nfs
100003 4 tcp 2049 nfs
100227 2 tcp 2049 nfs_acl
100227 3 tcp 2049 nfs_acl
100003 2 udp 2049 nfs
100003 3 udp 2049 nfs
100003 4 udp 2049 nfs
100227 2 udp 2049 nfs_acl
100227 3 udp 2049 nfs_acl
100021 1 udp 44725 nlockmgr
100021 3 udp 44725 nlockmgr
100021 4 udp 44725 nlockmgr
100021 1 tcp 40736 nlockmgr
100021 3 tcp 40736 nlockmgr
100021 4 tcp 40736 nlockmgr
100005 1 udp 55385 mountd
100005 1 tcp 55481 mountd
100005 2 udp 46027 mountd
100005 2 tcp 59968 mountd
100005 3 udp 45069 mountd
100005 3 tcp 33231 mountd
[root@lb01-cbr01-au ~]#
Da mesma forma, rpcinfo -p localhost no cliente indica um bom estado:
program vers proto port service
100000 4 tcp 111 portmapper
100000 3 tcp 111 portmapper
100000 2 tcp 111 portmapper
100000 4 udp 111 portmapper
100000 3 udp 111 portmapper
100000 2 udp 111 portmapper
100024 1 udp 59519 status
100024 1 tcp 39715 status
O firewall está aberto entre o cliente e o servidor - existe uma regra de permissão para a interface na cadeia de entrada e saída em cada host.
No cliente, quando emito showmount -e <server_ip>
, ele fica pendurado por 20 segundos até produzir a lista de exportação. Emitindo rpcinfo -p <server_ip>
ele também trava por 20 segundos até que, eventualmente, retorne "rpcinfo: não é possível entrar em contato com o portmapper: RPC: Erro de sistema remoto - Tempo limite da conexão esgotado".
Quando tento realmente montar a exportação do cliente, usando:
mount -t nfs 10.1.1.33:/opt/nfs /opt/test/nfs
Ele trava por 3 a 30 segundos, retornando "mount.nfs: Tempo limite da conexão esgotado".
No entanto, se eu tentar montar o UDP:
mount -o udp -t nfs 10.1.1.33:/opt/nfs /opt/test/nfs
Ela é instantaneamente bem-sucedida e a montagem é acessível.
Eu não fiz nada para hosts.allow ou hosts.deny (ambos estão vazios, o que da minha leitura de man 5 hosts_access indica que o acesso será permitido).
O que estou perdendo aqui?
Edit: SELinux é permissivo em ambos os hosts.
Embora o SELinux seja permissivo, tente:
%código%
Reinicie o rpcbind, nfs e nfslock
E então setsebool -P nfs_export_all_rw 1