clientaddr fait partie de ces options de montage qui sont recopiées dans une ligne de commande bien après que la raison en a disparu. Elle indique à un serveur NFSv4.0 où rappeler le client. Elle ne choisit pas le serveur, ne lie pas chaque requête à une adresse source et ne pousse pas le trafic dans un tunnel. Sur un portable doté de plusieurs adresses, décider si elle s’applique du tout demande trois questions.

Trois conditions décident si l’option compte

La première est la version mineure négociée, car 4.1 et 4.2 traitent les rappels différemment. La deuxième est de savoir si le serveur peut atteindre l’adresse que vous annonceriez, ce qu’un tunnel routé permet généralement et qu’un chemin traduit ne permet généralement pas. La troisième est de savoir si la panne que vous poursuivez est bien une panne de rappel.

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

Y répondre dans le désordre, c’est ainsi que des gens finissent par ajouter une adresse de rappel à un montage 4.2 et par conclure que l’option est cassée.

Lisez d’abord la version mineure

nfsstat -m

Pour un montage existant, cette commande affiche les informations et les indicateurs du montage, dont la version effective sous la forme vers=4.0, vers=4.1 ou vers=4.2. Une note qui ne dit que « NFSv4 » omet le seul détail qui décide si cette option est pertinente. Lisez le nombre, pas le mot.

Si la chaîne de version vient d’un réglage par défaut du serveur et non de votre ligne de commande, demandez quelle version mineure a été négociée. Un serveur peut refuser une version mineure plus élevée et retomber, et cette retombée est exactement le cas où un rappel compte soudain. La ligne de montage que vous avez écrite ne décrit peut-être pas le montage que vous avez.

Pour 4.0, annoncez une adresse que le serveur peut atteindre

Un serveur NFSv4.0 peut avoir besoin d’une connexion séparée vers le client, par exemple lorsqu’il rappelle une délégation. Avec plusieurs interfaces ou une table de routage inhabituelle, la découverte automatique d’une adresse de rappel peut en choisir une que le serveur ne peut pas utiliser.

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

L’adresse avant les deux-points est le serveur et reste la destination. L’adresse de rappel appartient au client et doit être joignable depuis le côté serveur du tunnel. Une adresse de bouclage renvoie le serveur vers lui-même. Une adresse privée de client sans route de retour est tout aussi inutilisable, même si elle paraît correcte côté client.

Utilisez ceci comme illustration, pas comme raison de rétrograder un montage qui fonctionne. Remplacez les adresses et le chemin d’export, et conservez l’authentification et les autres options exigées par le serveur. Les omettre pour faire tenir un exemple est un autre changement avec un autre résultat, et sur un serveur qui impose un type de sécurité, cela échoue avant toute tentative de rappel.

4.1 et 4.2 n’utilisent pas l’option

Linux NFSv4.1 et 4.2 transportent les rappels sur des connexions établies par le client, et 4.1 nomme ce dispositif le backchannel. Ils ne dépendent pas de l’ouverture par le serveur d’une nouvelle connexion vers une adresse annoncée, donc clientaddr ne répare pas un chemin de rappel 4.1 ou 4.2.

Cela ne signifie pas que 4.1 et 4.2 n’ont aucun problème de rappel. Cela signifie que le diagnostic est différent : inspectez la session établie et l’état de son backchannel au lieu de chercher un port de rappel entrant qui n’aurait jamais dû exister. Une règle entrante absente est l’état attendu, pas un défaut à corriger.

Séparez un échec de montage d’un échec de rappel

Établissez d’abord si le client atteint le service NFS et si le serveur accepte l’export et la demande d’authentification. Un délai d’expiration avant cet échange ne dit rien d’une adresse de rappel. Changer l’un alors que le montage échoue encore ne rapproche pas l’enquête et cache l’erreur d’origine derrière une nouvelle option de montage.

Ce n’est que lorsque les preuves montrent un rappel 4.0 en échec que l’adresse annoncée compte, avec le chemin de retour du serveur, l’écouteur côté client et tout filtrage entre eux. Changer le nombre dans l’option de montage ne peut pas créer ces chemins ; cela peut seulement pointer vers un chemin qui existe déjà. Notez lequel de ces quatre vous avez vérifié, car le prochain rapport arrivera sans aucun d’eux.

Une racine NFS au démarrage précoce est un environnement distinct avec ses propres prérequis : l’initramfs a besoin des outils et du réseau avant que le montage puisse avoir lieu. Un montage qui fonctionne après la connexion ne prouve rien sur cette séquence, et la panne au démarrage mentionne rarement l’initramfs ou le réseau.

Articles similaires