clientaddr er en af de monteringsindstillinger, der kopieres ind i en kommandolinje længe efter, at grunden til den er væk. Den fortæller en NFSv4.0-server, hvor den skal kalde klienten tilbage. Den vælger ikke serveren, binder ikke hver anmodning til en kildeadresse og sender ikke trafik ind i en tunnel. På en bærbar computer med flere adresser kræver det tre spørgsmål at afgøre, om den overhovedet gælder.

Tre betingelser afgør, om indstillingen betyder noget

Den første er den forhandlede mindre version, fordi 4.1 og 4.2 håndterer tilbagekald forskelligt. Den anden er, om serveren kan nå den adresse, du ville annoncere, hvilket en routet tunnel normalt tillader og en oversat vej normalt ikke. Den tredje er, om den fejl, du jagter, overhovedet er en tilbagekaldsfejl.

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

At besvare dem i den forkerte rækkefølge er måden, hvorpå folk føjer en tilbagekaldsadresse til en 4.2-montering og konkluderer, at indstillingen er i stykker.

Læs den mindre version først

nfsstat -m

For en eksisterende montering udskriver dette monteringsoplysningerne og flagene, herunder den effektive version som vers=4.0, vers=4.1 eller vers=4.2. En note, der kun siger “NFSv4”, udelader den ene detalje, der afgør, om denne indstilling er relevant. Læs tallet i stedet for ordet.

Hvis versionsstrengen kom fra en serverstandard i stedet for din kommandolinje, så spørg, hvilken mindre version der blev forhandlet. En server kan afvise en højere mindre version og falde tilbage, og netop det fald er tilfældet, hvor et tilbagekald pludselig betyder noget. Den monteringslinje, du skrev, beskriver måske ikke den montering, du har.

For 4.0 skal du annoncere en adresse, som serveren kan nå

En NFSv4.0-server kan have brug for en separat forbindelse tilbage til klienten, for eksempel når den tilbagekalder en delegation. Med flere grænseflader eller en usædvanlig rutetabel kan den automatiske registrering af en tilbagekaldsadresse vælge en, som serveren ikke kan bruge.

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

Adressen før kolon er serveren og forbliver destinationen. Tilbagekaldsadressen tilhører klienten, og den skal kunne nås fra serverens side af tunnelen. En loopback-adresse peger serveren tilbage mod sig selv. En privat klientadresse uden returrute er lige så ubrugelig, selv om den ser rigtig ud på klienten.

Brug dette som en illustration, ikke som en grund til at nedgradere en fungerende montering. Erstat adresserne og eksportstien, og behold godkendelsen og de andre indstillinger, som serveren kræver. At droppe dem for at få et eksempel til at passe er en anden ændring med et andet resultat, og på en server, der håndhæver en sikkerhedstype, fejler den, før noget tilbagekald forsøges.

4.1 og 4.2 bruger ikke indstillingen

Linux NFSv4.1 og 4.2 bærer tilbagekald over forbindelser, som klienten har oprettet, og 4.1 kalder den facilitet backchannel. De afhænger ikke af, at serveren åbner en ny forbindelse til en annonceret adresse, så clientaddr reparerer ikke en 4.1- eller 4.2-tilbagekaldsvej.

Det betyder ikke, at 4.1 og 4.2 ikke har tilbagekaldsproblemer. Det betyder, at diagnosen er en anden: undersøg den etablerede session og dens backchannel-tilstand i stedet for at lede efter en indgående tilbagekaldsport, som aldrig var meningen skulle findes. En manglende indgående regel er den forventede tilstand, ikke en fejl, der skal rettes.

Skil en monteringsfejl fra en tilbagekaldsfejl

Fastslå først, om klienten når NFS-tjenesten, og om serveren accepterer eksporten og godkendelsesanmodningen. En timeout før den udveksling siger intet om en tilbagekaldsadresse. At ændre én, mens monteringen stadig fejler, bringer ikke undersøgelsen nærmere, og det skjuler den oprindelige fejl bag en ny monteringsindstilling.

Først når beviserne viser et mislykket 4.0-tilbagekald, betyder den annoncerede adresse noget, sammen med serverens returvej, lytteren på klientsiden og enhver filtrering imellem dem. At ændre tallet i monteringsindstillingen kan ikke skabe disse veje; den kan kun pege på en, der allerede findes. Skriv ned, hvilke af de fire du har verificeret, for den næste rapport ankommer uden nogen af dem.

En NFS-rod ved tidlig opstart er et separat miljø med sine egne forudsætninger: initramfs har brug for værktøjerne og netværket, før monteringen kan ske. En montering, der virker efter login, beviser intet om den sekvens, og fejlen ved opstart nævner sjældent hverken initramfs eller netværket.

Relaterede artikler