NFS clientaddr over VPN: avgjer etter mindre versjon, ikkje av vane
clientaddr annonserer ein tilbakekallsadresse berre for NFSv4.0. Les den forhandla mindre versjonen, kontroller returvegen og skil han frå monteringsfeil.
clientaddr er eit av dei monteringsvala som blir kopierte inn i ei kommandolinje lenge etter at grunnen til det er borte. Det fortel ein NFSv4.0-tenar kvar han skal kalle klienten tilbake. Det vel ikkje tenaren, bind ikkje kvar førespurnad til ei kjeldeadresse og sender ikkje trafikk inn i ein tunnel. På ein berbar datamaskin med fleire adresser krevst det tre spørsmål for å avgjere om det i det heile gjeld.
Tre vilkår avgjer om valet har noko å seie
Det første er den forhandla mindre versjonen, fordi 4.1 og 4.2 handterer tilbakekall ulikt. Det andre er om tenaren kan nå adressa du ville annonsere, noko ein ruta tunnel vanlegvis tillèt og ein omsett veg vanlegvis ikkje. Det tredje er om feilen du jagar i det heile er ein tilbakekallsfeil.
| 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 |
Å svare på dei i feil rekkjefølgje er måten folk endar med å leggje til ei tilbakekallsadresse på ei 4.2-montering og konkludere med at valet er øydelagt.
Les den mindre versjonen først
nfsstat -m
For ei eksisterande montering skriv dette ut monteringsinformasjonen og flagga, inkludert den effektive versjonen som vers=4.0, vers=4.1 eller vers=4.2. Eit notat som berre seier “NFSv4”, utelèt den eine detaljen som avgjer om dette valet er relevant. Les talet, ikkje ordet.
Viss versjonsstrengen kom frå ein tenarstandard i staden for kommandolinja di, spør kva mindre versjon som vart forhandla. Ein tenar kan avvise ein høgare mindre versjon og falle tilbake, og nettopp denne tilbakefallinga er tilfellet der eit tilbakekall plutseleg har noko å seie. Monteringslinja du skreiv, skildrar kanskje ikkje monteringa du har.
For 4.0, annonser ei adresse tenaren kan nå
Ein NFSv4.0-tenar kan trenge ei eiga sambinding tilbake til klienten, til dømes når han kallar tilbake ein delegasjon. Med fleire grensesnitt eller ei uvanleg rutetabell kan den automatiske oppdaginga av ei tilbakekallsadresse velje ei som tenaren ikkje kan bruke.
mount -t nfs -o vers=4.0,clientaddr=10.8.0.6 10.8.0.1:/export /mnt/share
Adressa før kolon er tenaren og blir verande målet. Tilbakekallsadressa høyrer til klienten, og ho må vere nåbar frå tenarsida av tunnelen. Ei loopback-adresse peikar tenaren tilbake mot seg sjølv. Ei privat klientadresse utan returveg er like ubrukeleg, sjølv om ho ser rett ut på klienten.
Bruk dette som ein illustrasjon, ikkje som grunn til å nedgradere ei fungerande montering. Bytt ut adressene og eksportstien, og hald på autentiseringa og dei andre vala tenaren krev. Å droppe dei for at eitt døme skal passe, er ei anna endring med eit anna resultat, og på ein tenar som handhevar ein tryggleikstype feilar det før noko tilbakekall blir forsøkt.
4.1 og 4.2 brukar ikkje valet
Linux NFSv4.1 og 4.2 ber tilbakekall over sambindingar klienten har oppretta, og 4.1 kallar den fasiliteten backchannel. Dei er ikkje avhengige av at tenaren opnar ei ny sambinding til ei annonsert adresse, så clientaddr reparerer ikkje ein tilbakekallsveg for 4.1 eller 4.2.
Det tyder ikkje at 4.1 og 4.2 ikkje har tilbakekallsproblem. Det tyder at diagnosen er ein annan: gransk den etablerte økta og tilstanden til backchannelen hennar i staden for å leite etter ein innkommande tilbakekallsport som aldri var meint å finnast. Ein manglande innkommande regel er den forventa tilstanden, ikkje ein feil som skal rettast.
Skil ein monteringsfeil frå ein tilbakekallsfeil
Fastslå først om klienten når NFS-tenesta og om tenaren godtek eksporten og autentiseringsførespurnaden. Ein tidsavbrot før den utvekslinga seier ingenting om ei tilbakekallsadresse. Å endre éin medan monteringa framleis feilar, bringar ikkje granskinga nærare, og det gøymer den opphavlege feilen bak eit nytt monteringsval.
Først når prova viser eit mislukka 4.0-tilbakekall, har den annonserte adressa noko å seie, saman med returvegen til tenaren, lyttaren på klientsida og all filtrering imellom. Å endre talet i monteringsvalet kan ikkje skape desse vegane; det kan berre peike på ein som alt finst. Skriv ned kva av dei fire du stadfesta, for den neste rapporten kjem utan nokon av dei.
Ei NFS-rot ved tidleg oppstart er eit eige miljø med eigne føresetnader: initramfs treng verktøya og nettet før monteringa kan skje. Ei montering som verkar etter innlogging, provar ingenting om den sekvensen, og feilen ved oppstart nemner sjeldan initramfs eller nettet.