clientaddr es una de esas opciones de montaje que se copian en una línea de comandos mucho después de que la razón para ella haya desaparecido. Le dice a un servidor NFSv4.0 dónde devolver la llamada al cliente. No elige el servidor, no ata cada petición a una dirección de origen ni empuja el tráfico hacia un túnel. En un portátil con varias direcciones, decidir si se aplica siquiera requiere tres preguntas.

Tres condiciones deciden si la opción importa

La primera es la versión menor negociada, porque 4.1 y 4.2 tratan las devoluciones de llamada de forma distinta. La segunda es si el servidor puede alcanzar la dirección que usted anunciaría, cosa que un túnel enrutado suele permitir y una ruta traducida suele no permitir. La tercera es si el fallo que persigue es siquiera un fallo de devolución de llamada.

ConditionIf yesIf no
Version is 4.0The option can matterSkip it; inspect the session instead
Server can reach the addressAdvertise itFix reachability first
Failure is a callbackDiagnose callback pathLook at mount and export

Responderlas en el orden equivocado es como la gente acaba añadiendo una dirección de devolución de llamada a un montaje 4.2 y concluyendo que la opción está rota.

Lea primero la versión menor

nfsstat -m

Para un montaje existente, esto imprime la información y los indicadores del montaje, incluida la versión efectiva como vers=4.0, vers=4.1 o vers=4.2. Una nota que solo dice “NFSv4” omite el único detalle que decide si esta opción es relevante. Lea el número, no la palabra.

Si la cadena de versión vino de un valor predeterminado del servidor y no de su línea de comandos, pregunte qué versión menor se negoció. Un servidor puede rechazar una versión menor superior y retroceder, y ese retroceso es exactamente el caso en que una devolución de llamada de repente importa. La línea de montaje que escribió puede no describir el montaje que tiene.

Para 4.0, anuncie una dirección que el servidor pueda alcanzar

Un servidor NFSv4.0 puede necesitar una conexión separada de vuelta al cliente, por ejemplo cuando revoca una delegación. Con varias interfaces o una tabla de rutas inusual, el descubrimiento automático de una dirección de devolución de llamada puede elegir una que el servidor no pueda usar.

mount -t nfs -o vers=4.0,clientaddr=10.8.0.6 10.8.0.1:/export /mnt/share

La dirección antes de los dos puntos es el servidor y sigue siendo el destino. La dirección de devolución de llamada pertenece al cliente y debe ser alcanzable desde el lado del servidor del túnel. Una dirección de bucle devuelve el servidor hacia sí mismo. Una dirección privada de cliente sin ruta de retorno es igual de inútil, aunque parezca correcta en el cliente.

Use esto como ilustración, no como razón para degradar un montaje que funciona. Sustituya las direcciones y la ruta de exportación, y conserve la autenticación y las demás opciones que exige el servidor. Omitirlas para que encaje un ejemplo es otro cambio con otro resultado, y en un servidor que impone un tipo de seguridad falla antes de que se intente cualquier devolución de llamada.

4.1 y 4.2 no usan la opción

Linux NFSv4.1 y 4.2 llevan las devoluciones de llamada por conexiones que el cliente ha establecido, y 4.1 llama a esa instalación el backchannel. No dependen de que el servidor abra una conexión nueva a una dirección anunciada, así que clientaddr no repara una ruta de devolución de llamada de 4.1 ni de 4.2.

Eso no significa que 4.1 y 4.2 no tengan problemas de devoluciones de llamada. Significa que el diagnóstico es distinto: examine la sesión establecida y el estado de su backchannel en lugar de buscar un puerto de devolución de llamada entrante que nunca debió existir. Una regla de entrada ausente es el estado esperado, no un fallo que corregir.

Separe un fallo de montaje de un fallo de devolución de llamada

Establezca primero si el cliente llega al servicio NFS y si el servidor acepta la exportación y la petición de autenticación. Un tiempo de espera antes de ese intercambio no dice nada sobre una dirección de devolución de llamada. Cambiar una mientras el montaje sigue fallando no acerca la investigación y esconde el error original detrás de una nueva opción de montaje.

Solo cuando las pruebas muestran una devolución de llamada 4.0 fallida importa la dirección anunciada, junto con la ruta de retorno del servidor, el receptor del lado del cliente y cualquier filtrado entre ellos. Cambiar el número de la opción de montaje no puede crear esas rutas; solo puede apuntar a una que ya existe. Anote cuál de esas cuatro verificó, porque el próximo informe llegará sin ninguna de ellas.

Una raíz NFS de arranque temprano es un entorno aparte con sus propios requisitos: el initramfs necesita las herramientas y la red antes de que pueda ocurrir el montaje. Un montaje que funciona tras iniciar sesión no demuestra nada sobre esa secuencia, y el fallo en el arranque rara vez menciona el initramfs o la red.

Artículos relacionados