A reexportación de NFS a través dunha VPN non é reenvío de paquetes
A máquina intermedia é cliente e servidor, non un enrutador. Os identificadores de sistema de ficheiros, os handles de ficheiro envoltos e a falta de soporte de bloqueo cambian o deseño.
Unha máquina Linux únese a unha VPN, monta unha exportación NFS remota e despois serve esa montaxe a outro conxunto de clientes. Este arranxo parece enrutamento con pasos extra, e esa é a primeira suposición errónea. A máquina intermedia é cliente do servidor de augas arriba e servidor dos clientes de augas abaixo, e participa nas dúas relacións de servizo de ficheiros. O reenvío de paquetes non ten opinión sobre os handles de ficheiro, o bloqueo nin a identidade do sistema de ficheiros; unha reexportación si.
Empeza preguntando se os clientes de augas abaixo poderían chegar ao servidor orixinal directamente. Se poden, a máquina intermedia é opcional.
Tres modelos, tres historias de consistencia
A montaxe directa é a máis simple: cada cliente monta o servidor orixinal a través do túnel, e a política de exportación dese servidor goberna o acceso. A reexportación é a máquina intermedia presentando unha fronteira de servizo distinta, o que é útil cando a rede orientada aos clientes non debe chegar directamente ao servidor. A replicación é un terceiro modelo, e cambia a pregunta de consistencia a sincronización e resolución de conflitos.
Non describas unha copia replicada coma se fose unha reexportación viva. Os modos de fallo difiren, e un usuario que espera que cada operación chegue ao sistema de ficheiros orixinal levará unha sorpresa durante unha interrupción da ligazón.
A identidade sobrevive ao comando de montaxe
As reexportacións necesitan un identificador de sistema de ficheiros explícito, e esa identidade debe sobrevivir a reinicios e reconstrucións de configuración. A documentación do núcleo é clara sobre o requisito, e tamén advirte de que crossmnt non elimina a necesidade de exportar sistemas de ficheiros fillos cos seus propios identificadores. Unha árbore de directorios que parece continua a un usuario pode cruzar varias fronteiras de sistema de ficheiros. Os nfs-utils actuais poden asignar identificadores automaticamente para configuracións compatibles, e cando o fan, a súa base de datos pasa a formar parte do estado da pasarela. Trata eses identificadores como identidade de servizo en lugar de ficheiros refugables.
Os handles de ficheiro son a outra fronteira de identidade: unha reexportación envolve o handle orixinal, o que o fai máis grande e pode superar o límite dun cliente. Unha montaxe exitosa non demostra que todo deseño de exportación sexa compatible.
Non toda función de NFS sobrevive á máquina intermedia
A guía de reexportación do núcleo afirma que o servidor que reexporta non admite bloqueo nin solicitudes de delegación. As aplicacións que dependen desas operacións necesitan outra ruta ou un deseño verificado contra elas. Unha montaxe exitosa e unha listaxe de directorios funcional non demostran que as operacións reais da aplicación funcionen.
A identidade de usuario e a política de exportación tamén importan en cada salto. Un inicio de sesión VPN demostra que un participante da rede se autenticou; non autoriza a un usuario de NFS nin reenvía as credenciais dun cliente a través da pasarela.
A pasarela ten dúas dependencias de augas arriba
A pasarela depende da VPN para a montaxe de augas arriba e do servidor de augas arriba para o sistema de ficheiros mesmo. Un proceso de exportación local que aínda se executa non pode facer saudable un almacenamento non dispoñible. Planifica a orde de inicio, o comportamento de reconexión e os reinicios do servidor, incluído que ocorre cos handles de ficheiro que os clientes xa teñen. Un cliente que montou a través da pasarela e perdeu o seu handle necesita volver montar, e iso é un evento operativo e non unha recuperación transparente.
Se todo o que o requisito necesitaba era accesibilidade de IP privadas, o enrutamento directo ao servidor orixinal é a arquitectura máis simple. A reexportación debería existir por unha razón que sobreviva a ser escrita.
Proba a carga de traballo, non a montaxe
Exercita a carga de ficheiros real nun ambiente controlado: as operacións que realiza a aplicación, os tamaños de ficheiro que usa e a concorrencia que espera. Vixía as carencias de funcións e non só os erros de transporte. Despois anota que modelo escolliches e por que, porque doutro xeito a seguinte persoa asumirá que a pasarela é un enrutador.
Unha reexportación é lexítima cando existe por unha razón deliberada, como unha rede de clientes illada ou unha fronteira de versión controlada. É un mal accidente, e a diferenza é se alguén o decidiu.