A reexportação de NFS através de uma VPN não é encaminhamento de pacotes
A máquina intermediária é cliente e servidor, não um roteador. Os IDs de sistema de arquivos, os handles de arquivo encapsulados e a falta de suporte a bloqueio mudam o projeto.
Uma máquina Linux entra em uma VPN, monta uma exportação NFS remota e depois serve essa montagem a outro conjunto de clientes. Esse arranjo parece roteamento com etapas extras, e essa é a primeira suposição errada. A máquina intermediária é cliente do servidor a montante e servidor para os clientes a jusante, e participa das duas relações de serviço de arquivos. O encaminhamento de pacotes não tem opinião sobre handles de arquivo, bloqueio ou identidade de sistema de arquivos; uma reexportação tem.
Comece perguntando se os clientes a jusante poderiam alcançar o servidor original diretamente. Se puderem, a máquina intermediária é opcional.
Três modelos, três histórias de consistência
A montagem direta é a mais simples: cada cliente monta o servidor original pelo túnel, e a política de exportação desse servidor rege o acesso. A reexportação é a máquina intermediária apresentando uma fronteira de serviço diferente, o que é útil quando a rede voltada aos clientes não pode alcançar o servidor diretamente. A replicação é um terceiro modelo, e desloca a pergunta de consistência para sincronização e resolução de conflitos.
Não descreva uma cópia replicada como se fosse uma reexportação viva. Os modos de falha diferem, e um usuário que espera que toda operação alcance o sistema de arquivos original vai se surpreender durante uma interrupção do enlace.
A identidade sobrevive ao comando de montagem
Reexportações precisam de um ID de sistema de arquivos explícito, e essa identidade deve sobreviver a reinicializações e reconstruções de configuração. A documentação do kernel é clara sobre o requisito, e também avisa que crossmnt não elimina a necessidade de exportar sistemas de arquivos filhos com seus próprios IDs. Uma árvore de diretórios que parece contínua para um usuário pode cruzar várias fronteiras de sistema de arquivos. Os nfs-utils atuais podem alocar IDs automaticamente para configurações suportadas, e quando o fazem, seu banco de dados passa a fazer parte do estado do gateway. Trate esses IDs como identidade de serviço, não como arquivos descartáveis.
Os handles de arquivo são a outra fronteira de identidade: uma reexportação encapsula o handle original, o que o torna maior e pode exceder o limite de um cliente. Uma montagem bem-sucedida não prova que todo layout de exportação seja compatível.
Nem toda funcionalidade do NFS sobrevive à máquina intermediária
O guia de reexportação do kernel afirma que o servidor que reexporta não oferece suporte a bloqueio nem a solicitações de delegação. Aplicações que dependem dessas operações precisam de outro caminho ou de um projeto verificado contra elas. Uma montagem bem-sucedida e uma listagem de diretório funcional não mostram que as operações reais da aplicação funcionam.
A identidade do usuário e a política de exportação também importam a cada salto. Um login de VPN prova que um participante da rede se autenticou; ele não autoriza um usuário de NFS e não encaminha as credenciais de um cliente pelo gateway.
O gateway tem duas dependências a montante
O gateway depende da VPN para a montagem a montante e do servidor a montante para o próprio sistema de arquivos. Um processo de exportação local que ainda está em execução não consegue tornar saudável um armazenamento indisponível. Planeje a ordem de inicialização, o comportamento de reconexão e as reinicializações do servidor, incluindo o que acontece com os handles de arquivo que os clientes já mantêm. Um cliente que montou pelo gateway e perdeu seu handle precisa remontar, e isso é um evento operacional e não uma recuperação transparente.
Se tudo o que o requisito sempre precisou foi de acessibilidade de IP privado, o roteamento direto ao servidor original é a arquitetura mais simples. A reexportação deve existir por uma razão que sobreviva a ser escrita.
Teste a carga de trabalho, não a montagem
Exercite a carga real de arquivos em um ambiente controlado: as operações que a aplicação executa, os tamanhos de arquivo que usa e a concorrência que espera. Observe as lacunas de funcionalidade e não apenas os erros de transporte. Depois registre qual modelo você escolheu e por quê, porque, caso contrário, a próxima pessoa assumirá que o gateway é um roteador.
Uma reexportação é legítima quando existe por uma razão deliberada, como uma rede de clientes isolada ou uma fronteira de versão controlada. É um acidente ruim, e a diferença é se alguém decidiu isso.