clientaddr är ett av de monteringsalternativ som kopieras in i en kommandorad långt efter att skälet till det försvunnit. Det talar om för en NFSv4.0-server var den ska kalla tillbaka klienten. Det väljer inte servern, binder inte varje begäran till en källadress och skickar inte trafik in i en tunnel. På en bärbar dator med flera adresser krävs tre frågor för att avgöra om det ens gäller.

Tre villkor avgör om alternativet spelar roll

Det första är den förhandlade mindre versionen, eftersom 4.1 och 4.2 hanterar återkall olika. Det andra är om servern kan nå adressen du skulle annonsera, vilket en routad tunnel vanligtvis tillåter och en översatt väg vanligtvis inte. Det tredje är om felet du jagar ens är ett återkallsfel.

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

Att svara på dem i fel ordning är hur folk lägger till en återkallsadress på en 4.2-montering och drar slutsatsen att alternativet är trasigt.

Läs den mindre versionen först

nfsstat -m

För en befintlig montering skriver detta ut monteringsinformationen och flaggorna, inklusive den effektiva versionen som vers=4.0, vers=4.1 eller vers=4.2. En anteckning som bara säger “NFSv4” utelämnar den enda detalj som avgör om det här alternativet är relevant. Läs siffran, inte ordet.

Om versionssträngen kom från en serverstandard i stället för din kommandorad, fråga vilken mindre version som förhandlades. En server kan avvisa en högre mindre version och falla tillbaka, och just den tillbakagången är fallet där ett återkall plötsligt spelar roll. Monteringsraden du skrev beskriver kanske inte monteringen du har.

För 4.0, annonsera en adress som servern kan nå

En NFSv4.0-server kan behöva en separat anslutning tillbaka till klienten, till exempel när den återkallar en delegering. Med flera gränssnitt eller en ovanlig routingtabell kan den automatiska upptäckten av en återkallsadress välja en som servern inte kan använda.

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

Adressen före kolonet är servern och förblir målet. Återkallsadressen tillhör klienten och måste vara nåbar från serverns sida av tunneln. En loopback-adress pekar servern tillbaka mot sig själv. En privat klientadress utan returväg är lika oanvändbar, även om den ser korrekt ut på klienten.

Använd detta som en illustration, inte som skäl att nedgradera en fungerande montering. Byt ut adresserna och exportvägen och behåll autentiseringen och de andra alternativ som servern kräver. Att lämna dem för att ett exempel ska passa är en annan ändring med ett annat resultat, och på en server som kräver en säkerhetstyp misslyckas det innan något återkall försöks.

4.1 och 4.2 använder inte alternativet

Linux NFSv4.1 och 4.2 bär återkall över anslutningar som klienten har upprättat, och 4.1 kallar den funktionen backchannel. De är inte beroende av att servern öppnar en ny anslutning till en annonserad adress, så clientaddr reparerar inte en återkallsväg för 4.1 eller 4.2.

Det betyder inte att 4.1 och 4.2 inte har återkallsproblem. Det betyder att diagnosen är en annan: undersök den upprättade sessionen och dess backchannel-tillstånd i stället för att leta efter en inkommande återkallsport som aldrig var menad att finnas. En saknad inkommande regel är det förväntade tillståndet, inte ett fel att rätta.

Skilj ett monteringsfel från ett återkallsfel

Fastställ först om klienten når NFS-tjänsten och om servern accepterar exporten och autentiseringsbegäran. En tidsgräns före det utbytet säger ingenting om en återkallsadress. Att ändra en medan monteringen fortfarande misslyckas för inte undersökningen närmare, och det döljer det ursprungliga felet bakom ett nytt monteringsalternativ.

Först när bevisen visar ett misslyckat 4.0-återkall spelar den annonserade adressen roll, tillsammans med serverns returväg, lyssnaren på klientsidan och all filtrering däremellan. Att ändra siffran i monteringsalternativet kan inte skapa dessa vägar; det kan bara peka på en som redan finns. Skriv ned vilken av de fyra du verifierade, för nästa rapport kommer utan någon av dem.

En NFS-rot vid tidig start är en separat miljö med egna förutsättningar: initramfs behöver verktygen och nätverket innan monteringen kan ske. En montering som fungerar efter inloggning bevisar ingenting om den sekvensen, och felet vid start nämner sällan initramfs eller nätverket.

Relaterade artiklar