clientaddr gehört zu den Mount-Optionen, die noch lange in eine Befehlszeile kopiert werden, nachdem der Grund dafür verschwunden ist. Sie teilt einem NFSv4.0-Server mit, wohin er den Client zurückrufen soll. Sie wählt nicht den Server, bindet nicht jede Anfrage an eine Quelladresse und leitet nicht den Datenverkehr in einen Tunnel. Auf einem Laptop mit mehreren Adressen braucht es drei Fragen, um zu entscheiden, ob sie überhaupt greift.

Drei Bedingungen entscheiden, ob die Option zählt

Die erste ist die ausgehandelte Minor-Version, weil 4.1 und 4.2 Rückrufe unterschiedlich behandeln. Die zweite ist, ob der Server die Adresse erreichen kann, die Sie ankündigen würden; ein gerouteter Tunnel erlaubt das meist, ein übersetzter Pfad meist nicht. Die dritte ist, ob der Fehler, dem Sie nachgehen, überhaupt ein Rückruf-Fehler ist.

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

Sie in falscher Reihenfolge zu beantworten, führt dazu, dass Leute einem 4.2-Mount eine Rückrufadresse hinzufügen und schließen, die Option sei kaputt.

Lesen Sie zuerst die Minor-Version

nfsstat -m

Für einen vorhandenen Mount gibt dies die Mount-Informationen und Flags aus, einschließlich der wirksamen Version als vers=4.0, vers=4.1 oder vers=4.2. Eine Notiz, die nur „NFSv4“ sagt, lässt das eine Detail weg, das entscheidet, ob diese Option relevant ist. Lesen Sie die Zahl statt das Wort.

Wenn die Versionszeichenfolge aus einer Servervorgabe statt aus Ihrer Befehlszeile stammt, fragen Sie, welche Minor-Version ausgehandelt wurde. Ein Server kann eine höhere Minor-Version ablehnen und zurückfallen, und genau dieser Rückfall ist der Fall, in dem ein Rückruf plötzlich zählt. Die Mount-Zeile, die Sie geschrieben haben, beschreibt möglicherweise nicht den Mount, den Sie haben.

Für 4.0 eine Adresse ankündigen, die der Server erreichen kann

Ein NFSv4.0-Server kann eine eigene Verbindung zurück zum Client brauchen, etwa wenn er eine Delegierung zurückruft. Bei mehreren Schnittstellen oder einer ungewöhnlichen Routentabelle kann die automatische Ermittlung einer Rückrufadresse eine wählen, die der Server nicht nutzen kann.

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

Die Adresse vor dem Doppelpunkt ist der Server und bleibt das Ziel. Die Rückrufadresse gehört zum Client und muss von der Serverseite des Tunnels aus erreichbar sein. Eine Loopback-Adresse zeigt den Server auf sich selbst zurück. Eine private Clientadresse ohne Rückroute ist ebenso unbrauchbar, auch wenn sie auf dem Client korrekt aussieht.

Nehmen Sie dies als Beispiel, nicht als Grund, einen funktionierenden Mount herabzustufen. Ersetzen Sie die Adressen und den Exportpfad, und behalten Sie die Authentifizierung und die anderen Optionen, die der Server verlangt. Sie wegzulassen, damit ein Beispiel passt, ist eine andere Änderung mit anderem Ergebnis, und auf einem Server, der eine Sicherheitsstufe erzwingt, scheitert sie, bevor ein Rückruf versucht wird.

4.1 und 4.2 nutzen die Option nicht

Linux NFSv4.1 und 4.2 übertragen Rückrufe über Verbindungen, die der Client aufgebaut hat, und 4.1 nennt diese Einrichtung den Backchannel. Sie hängen nicht davon ab, dass der Server eine neue Verbindung zu einer angekündigten Adresse öffnet, daher repariert clientaddr keinen Rückrufpfad von 4.1 oder 4.2.

Das heißt nicht, dass 4.1 und 4.2 keine Rückrufprobleme haben. Es heißt, die Diagnose ist anders: Untersuchen Sie die bestehende Sitzung und ihren Backchannel-Zustand, statt nach einem eingehenden Rückrufport zu suchen, den es nie geben sollte. Eine fehlende eingehende Regel ist der erwartete Zustand, kein zu korrigierender Fehler.

Trennen Sie einen Mount-Fehler von einem Rückruf-Fehler

Stellen Sie zuerst fest, ob der Client den NFS-Dienst erreicht und ob der Server den Export und die Authentifizierungsanfrage akzeptiert. Ein Timeout vor diesem Austausch sagt nichts über eine Rückrufadresse. Eines zu ändern, während der Mount noch scheitert, bringt die Untersuchung nicht näher, und es verdeckt den ursprünglichen Fehler hinter einer neuen Mount-Option.

Erst wenn die Belege einen fehlgeschlagenen 4.0-Rückruf zeigen, zählt die angekündigte Adresse, zusammen mit dem Rückweg des Servers, dem Listener auf Clientseite und jeder Filterung dazwischen. Die Zahl in der Mount-Option zu ändern, kann diese Wege nicht erzeugen; sie kann nur auf einen zeigen, der bereits existiert. Notieren Sie, welche dieser vier Sie geprüft haben, denn der nächste Bericht kommt ohne jede davon.

Ein NFS-Root beim frühen Start ist eine eigene Umgebung mit eigenen Voraussetzungen: Die initramfs braucht die Werkzeuge und das Netzwerk, bevor der Mount stattfinden kann. Ein Mount, der nach der Anmeldung funktioniert, beweist nichts über diese Abfolge, und der Fehler beim Start erwähnt selten die initramfs oder das Netzwerk.

Ähnliche Artikel