NFS clientaddr sobre VPN: decideix per la versió menor, no pel costum
clientaddr anuncia una adreça de retorn només per a NFSv4.0. Llegeix la versió menor negociada, comprova el camí de tornada i separa’l de les fallades de muntatge.
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.
| 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 |
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.