
Meu entendimento é que os clientes NFSv4 devem se conectar imediatamente ao serviço NFSv4 no servidor, ignorando totalmente as interações do portmapper rpcbind e do serviço mountd, mas estou vendo meu cliente RHEL6 sempre entrando em contato primeiro com o serviço rpcbind para obter a porta mountd, obtendo a lista de exporte o formulário montado e, finalmente, conecte-se ao serviço NFSv4. Observado usando tcpdump.
Ao que tudo indica (saída do comando mount e inspeção do TCP), quando a operação de montagem for concluída, o cliente e o servidor usarão NFSv4.
Isso acontece mesmo quando eu faço tudo que encontrei para tentar forçar apenas o NFSv4 no cliente. Exemplos:
- Configurando Nfsvers=4 em /etc/nfsmount.conf
- Montando explicitamente com a opção vers=4
- Defina explicitamente a porta NFS. (via comando mount e em nfsmount.conf)
Estou completamente errado ou algo não está certo? Isso é um problema para mim porque o cliente NFS insiste em ser capaz de acessar o rpcbind no servidor via UDP antes de montar qualquer exportação NFSv4 e estou tendo uma perda misteriosa de pacotes UDP (sim, estou trabalhando com o cara da rede no esta frente) que está fazendo com que as montagens falhem completamente de tempos em tempos ou simplesmente demorem muito para serem concluídas.
Dei uma olhada na fonte libtirpc e vi algo sobre ele sempre usar UDP para se conectar ao portmapper RPC, mas quero tirar o portmapper e o serviço mountd totalmente da equação.
Tentei cancelar o registro do serviço UDP portmapper no servidor NFS usando "rpcinfo -d", mas isso resultou na falha de todas as montagens NFS direcionadas a esse servidor (novamente os clientes insistem que o servidor tenha o rpcbind escutando na porta UDP 111). Eu também tentei mexer com /etc/netconfig sem sorte.
Alguém se deparou com esse comportamento ou sabe o suficiente sobre o NFSv4 para me dizer que tenho expectativas irrealistas?
Responder1
Eu rastreei isso até o autofs. Foi configurado para usar /etc/auto.net para obter uma lista de exportações usando o comando showmount. O comando showmount era responsável pelos acessos a rpcbind e mountd antes que a montagem NFS acontecesse, portanto, as tentativas de alterar as opções de montagem não surtiram efeito.
Revisei /etc/auto.net e meu problema foi corrigido.
Nota lateral: usar as opções "-hosts" em auto.master como já vi em vários lugares também resultou nos acessos rpcbind e mountd. Acabei fazendo com que o auto.net montasse a raiz de todos os servidores NFSv4, o que eu entendo que está OK, assumindo que todos os meus hosts sejam NFSv4.