clientaddr és una d’aquelles opcions de muntatge que es copien a la línia d’ordres molt després que la raó hagi desaparegut. Diu a un servidor NFSv4.0 on ha de trucar el client de tornada. No tria el servidor, no lliga cada petició a una adreça d’origen ni empeny el trànsit cap a un túnel. En un portàtil amb diverses adreces, decidir si s’aplica al capdavall requereix tres preguntes.

Tres condicions decideixen si l’opció importa

La primera és la versió menor negociada, perquè 4.1 i 4.2 tracten les crides de retorn de manera diferent. La segona és si el servidor pot arribar a l’adreça que anunciaríeu, cosa que un túnel encaminat sol permetre i un camí traduït sol no permetre. La tercera és si la fallada que perseguiu és una fallada de crida de retorn.

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

Respondre-les fora d’ordre és com la gent acaba afegint una adreça de retorn a un muntatge 4.2 i concloent que l’opció està espatllada.

Llegeix primer la versió menor

nfsstat -m

Per a un muntatge existent, això imprimeix la informació i els indicadors del muntatge, inclosa la versió efectiva com a vers=4.0, vers=4.1 o vers=4.2. Una nota que només diu “NFSv4” omet l’únic detall que decideix si aquesta opció és rellevant. Llegeix el número i no la paraula.

Si la cadena de versió prové d’un valor per defecte del servidor i no de la vostra línia d’ordres, pregunteu quina versió menor s’ha negociat. Un servidor pot refusar una versió menor superior i recular, i aquest recul és exactament el cas en què una crida de retorn de sobte importa. La línia de muntatge que vàreu escriure pot no descriure el muntatge que teniu.

Per a 4.0, anuncieu una adreça a la qual el servidor pugui arribar

Un servidor NFSv4.0 pot necessitar una connexió separada de tornada al client, per exemple quan revoca una delegació. Amb diverses interfícies o una taula d’encaminament inusual, el descobriment automàtic d’una adreça de retorn pot triar-ne una que el servidor no pugui utilitzar.

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

L’adreça abans dels dos punts és el servidor i continua essent la destinació. L’adreça de retorn pertany al client i ha de ser abastable des del costat del servidor del túnel. Una adreça de bucle torna el servidor cap a si mateix. Una adreça privada del client sense ruta de tornada és igual d’inútil, encara que sembli correcta al client.

Utilitzeu-ho com a il·lustració, no com a raó per rebaixar un muntatge que funciona. Substituïu les adreces i el camí d’exportació i conserveu l’autenticació i les altres opcions que el servidor requereix. Deixar-les caure perquè un exemple encaixi és un canvi diferent amb un resultat diferent, i en un servidor que imposa un tipus de seguretat falla abans que es provi cap crida de retorn.

4.1 i 4.2 no utilitzen l’opció

Linux NFSv4.1 i 4.2 porten les crides de retorn per connexions que el client ha establert, i 4.1 anomena aquesta instal·lació el backchannel. No depenen que el servidor obri una connexió nova a una adreça anunciada, així que clientaddr no repara un camí de retorn de 4.1 ni de 4.2.

Això no vol dir que 4.1 i 4.2 no tinguin problemes de crides de retorn. Vol dir que el diagnòstic és diferent: examineu la sessió establerta i l’estat del seu backchannel en lloc de buscar un port de retorn d’entrada que mai no havia d’existir. Una regla d’entrada absent és l’estat esperat, no una fallada a corregir.

Separeu una fallada de muntatge d’una fallada de crida de retorn

Establiu primer si el client arriba al servei NFS i si el servidor accepta l’exportació i la petició d’autenticació. Un temps d’espera abans d’aquest intercanvi no diu res sobre una adreça de retorn. Canviar-ne una mentre el muntatge encara falla no acosta la investigació i amaga l’error original darrere d’una opció de muntatge nova.

Només quan les proves mostren una crida de retorn 4.0 fallida importa l’adreça anunciada, juntament amb el camí de tornada del servidor, l’escoltador del costat del client i qualsevol filtratge entre ells. Canviar el número de l’opció de muntatge no pot crear aquests camins; només pot apuntar a un que ja existeixi. Anoteu quin d’aquells quatre heu verificat, perquè el proper informe arribarà sense cap d’ells.

Una arrel NFS d’arrencada primerenca és un entorn a part amb els seus propis requisits: l’initramfs necessita les eines i la xarxa abans que el muntatge pugui tenir lloc. Un muntatge que funciona després d’iniciar sessió no demostra res sobre aquesta seqüència, i la fallada a l’arrencada poques vegades esmenta l’initramfs o la xarxa.

Articles relacionats