NFS clientaddr sobre VPN: decida pola versión menor, non polo costume
clientaddr anuncia un enderezo de devolución de chamada só para NFSv4.0. Lea a versión menor negociada, comprobe a ruta de retorno e sepárea dos fallos de montaxe.
clientaddr é unha desas opcións de montaxe que se copian nunha liña de ordes moito despois de que a razón desaparecese. Dille a un servidor NFSv4.0 onde devolver a chamada ao cliente. Non escolle o servidor, non ata cada petición a un enderezo de orixe nin empurra o tráfico cara a un túnel. Nun portátil con varios enderezos, decidir se se aplica sequera require tres preguntas.
Tres condicións deciden se a opción importa
A primeira é a versión menor negociada, porque 4.1 e 4.2 tratan as devolucións de chamada de forma distinta. A segunda é se o servidor pode alcanzar o enderezo que vostede anunciaría, algo que un túnel encamiñado adoita permitir e unha ruta traducida adoita non permitir. A terceira é se o fallo que persegue é sequera un fallo de devolución de chamada.
| Condition | If yes | If no |
|---|---|---|
| Version is 4.0 | The option can matter | Skip it; inspect the session instead |
| Server can reach the address | Advertise it | Fix reachability first |
| Failure is a callback | Diagnose callback path | Look at mount and export |
Respondelas fóra de orde é como a xente acaba engadindo un enderezo de devolución de chamada a unha montaxe 4.2 e concluíndo que a opción está rota.
Lea primeiro a versión menor
nfsstat -m
Para unha montaxe existente, isto imprime a información e os indicadores da montaxe, incluída a versión efectiva como vers=4.0, vers=4.1 ou vers=4.2. Unha nota que só di “NFSv4” omite o único detalle que decide se esta opción é relevante. Lea o número, non a palabra.
Se a cadea de versión veu dun valor predeterminado do servidor e non da súa liña de ordes, pregunte que versión menor se negociou. Un servidor pode rexeitar unha versión menor superior e retroceder, e ese retroceso é exactamente o caso en que unha devolución de chamada de súpeto importa. A liña de montaxe que escribiu pode non describir a montaxe que ten.
Para 4.0, anuncie un enderezo que o servidor poida alcanzar
Un servidor NFSv4.0 pode necesitar unha conexión separada de volta ao cliente, por exemplo cando revoga unha delegación. Con varias interfaces ou unha táboa de rutas pouco habitual, o descubrimento automático dun enderezo de devolución de chamada pode escoller un que o servidor non poida usar.
mount -t nfs -o vers=4.0,clientaddr=10.8.0.6 10.8.0.1:/export /mnt/share
O enderezo antes dos dous puntos é o servidor e segue a ser o destino. O enderezo de devolución de chamada pertence ao cliente, e ten que ser alcanzable desde o lado do servidor do túnel. Un enderezo de bucle devolve o servidor cara a si mesmo. Un enderezo privado de cliente sen ruta de retorno é igual de inútil, aínda que pareza correcto no cliente.
Use isto como ilustración, non como razón para degradar unha montaxe que funciona. Substitúa os enderezos e a ruta de exportación, e conserve a autenticación e as demais opcións que esixe o servidor. Omitilas para que encaixe un exemplo é outro cambio con outro resultado, e nun servidor que impón un tipo de seguridade falla antes de que se tente calquera devolución de chamada.
4.1 e 4.2 non usan a opción
Linux NFSv4.1 e 4.2 levan as devolucións de chamada por conexións que o cliente estableceu, e 4.1 chama a esa instalación o backchannel. Non dependen de que o servidor abra unha conexión nova a un enderezo anunciado, así que clientaddr non repara unha ruta de devolución de chamada de 4.1 nin de 4.2.
Iso non significa que 4.1 e 4.2 non teñan problemas de devolucións de chamada. Significa que o diagnóstico é distinto: examine a sesión establecida e o estado do seu backchannel en lugar de buscar un porto de devolución de chamada entrante que nunca debería existir. Unha regra de entrada ausente é o estado esperado, non un fallo que corrixir.
Separe un fallo de montaxe dun fallo de devolución de chamada
Estableza primeiro se o cliente chega ao servizo NFS e se o servidor acepta a exportación e a petición de autenticación. Un tempo de espera antes dese intercambio non di nada sobre un enderezo de devolución de chamada. Cambiar un mentres a montaxe segue fallando non achega a investigación e agocha o erro orixinal detrás dunha nova opción de montaxe.
Só cando as probas mostran unha devolución de chamada 4.0 fallida importa o enderezo anunciado, xunto coa ruta de retorno do servidor, o oínte do lado do cliente e calquera filtrado entre eles. Cambiar o número da opción de montaxe non pode crear esas rutas; só pode apuntar a unha que xa existe. Anote cal daquelas catro verificou, porque o próximo informe chegará sen ningunha delas.
Unha raíz NFS de arranque temperán é un ambiente aparte cos seus propios requisitos: o initramfs necesita as ferramentas e a rede antes de que a montaxe poida ocorrer. Unha montaxe que funciona tras iniciar sesión non demostra nada sobre esa secuencia, e o fallo no arranque raramente menciona o initramfs ou a rede.