clientaddr je jedna z tých možností pripájania, ktoré sa do príkazového riadka kopírujú dávno po tom, čo dôvod zmizol. Hovorí serveru NFSv4.0, kam má zavolať klienta späť. Nevyberá server, nepripútava každú požiadavku k zdrojovej adrese ani netlačí prevádzku do tunela. Na notebooku s niekoľkými adresami treba na rozhodnutie, či sa vôbec uplatní, tri otázky.

O tom, či je možnosť dôležitá, rozhodujú tri podmienky

Prvá je dohodnutá vedľajšia verzia, pretože 4.1 a 4.2 spracúvajú spätné volania odlišne. Druhá je, či server dosiahne adresu, ktorú by ste oznámili; smerovaný tunel to zvyčajne umožní a preložená cesta zvyčajne nie. Tretia je, či je zlyhanie, ktoré sledujete, vôbec zlyhaním spätného volania.

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

Odpovedať na ne v nesprávnom poradí je spôsob, akým ľudia pridajú adresu spätného volania k pripájaniu 4.2 a dospejú k záveru, že možnosť je pokazená.

Najprv si prečítajte vedľajšiu verziu

nfsstat -m

Pre existujúce pripájanie to vypíše informácie o pripájaní a príznaky, vrátane efektívnej verzie ako vers=4.0, vers=4.1 alebo vers=4.2. Poznámka, ktorá hovorí len “NFSv4”, vynecháva jediný detail, ktorý rozhoduje o tom, či je táto možnosť podstatná. Čítajte číslo, nie slovo.

Ak reťazec verzie pochádza z predvoleného nastavenia servera a nie z vášho príkazového riadka, opýtajte sa, ktorá vedľajšia verzia bola dohodnutá. Server môže odmietnuť vyššiu vedľajšiu verziu a vrátiť sa nižšie, a práve tento návrat je prípad, keď spätné volanie zrazu záleží. Riadok pripájania, ktorý ste napísali, nemusí opisovať pripájanie, ktoré máte.

Pre 4.0 oznámte adresu, na ktorú server dosiahne

Server NFSv4.0 môže potrebovať samostatné spojenie späť ku klientovi, napríklad keď odvoláva delegovanie. Pri viacerých rozhraniach alebo nezvyčajnej smerovacej tabuľke môže automatické zistenie adresy spätného volania vybrať takú, ktorú server nemôže použiť.

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

Adresa pred dvojbodkou je server a zostáva cieľom. Adresa spätného volania patrí klientovi a musí byť dosiahnuteľná zo strany servera v tuneli. Adresa spätnej slučky obracia server späť na seba. Súkromná adresa klienta bez spiatočnej trasy je rovnako nepoužiteľná, aj keď na klientovi vyzerá správne.

Berte to ako ilustráciu, nie ako dôvod znižovať funkčné pripájanie. Nahraďte adresy a cestu exportu a ponechajte overovanie a ďalšie možnosti, ktoré server vyžaduje. Vynechať ich, aby sedel jeden príklad, je iná zmena s iným výsledkom, a na serveri, ktorý vynucuje bezpečnostný typ, zlyhá skôr, než sa skúsi akékoľvek spätné volanie.

4.1 a 4.2 túto možnosť nepoužívajú

Linux NFSv4.1 a 4.2 prenášajú spätné volania po spojeniach, ktoré nadviazal klient, a 4.1 tento prostriedok nazýva backchannel. Nezávisia od toho, či server otvorí nové spojenie k oznámenej adrese, takže clientaddr neopraví cestu spätného volania 4.1 ani 4.2.

To neznamená, že 4.1 a 4.2 nemajú problémy so spätnými volaniami. Znamená to, že diagnostika je iná: preskúmajte nadviazanú reláciu a stav jej backchannelu, namiesto hľadania prichádzajúceho portu spätného volania, ktorý nikdy nemal existovať. Chýbajúce prichádzajúce pravidlo je očakávaný stav, nie porucha na opravu.

Oddeľte zlyhanie pripájania od zlyhania spätného volania

Najprv zistite, či sa klient dostane k službe NFS a či server prijme export a žiadosť o overenie. Časový limit pred touto výmenou nehovorí nič o adrese spätného volania. Zmena jedného, kým pripájanie stále zlyháva, vyšetrovanie nepriblíži a pôvodnú chybu schová za novú možnosť pripájania.

Až keď dôkazy ukážu neúspešné spätné volanie 4.0, záleží na oznámenej adrese, spolu so spiatočnou cestou servera, poslucháčom na strane klienta a akýmkoľvek filtrovaním medzi nimi. Zmena čísla v možnosti pripájania nedokáže vytvoriť tie cesty; môže len ukázať na cestu, ktorá už existuje. Zapíšte si, ktorú zo štyroch ste overili, pretože nasledujúca správa príde bez ktorejkoľvek z nich.

Koreň NFS pri skorom štarte je samostatné prostredie s vlastnými predpokladmi: initramfs potrebuje nástroje a sieť skôr, než môže dôjsť k pripojeniu. Pripájanie, ktoré funguje po prihlásení, o tomto slede nič nedokazuje, a zlyhanie pri štarte málokedy spomenie initramfs alebo sieť.

Súvisiace články