8.9. NFS et rpcbind

Note

La section suivante s'applique uniquement aux implémentations NFSv3 qui nécessitent le service rpcbind pour une compatibilité ascendante.
L'utilitaire rpcbind[1] mappe les services RPC aux ports qu'ils écoutent. Les processus RPC notifient rpcbind lorsqu'ils démarrent, en enregistrant les ports qu'ils écoutent et les numéros de programme RPC qu'ils prévoient de servir. Le système client contacte ensuite rpcbind sur le serveur avec un numéro de programme RPC particulier. Le service rpcbind redirige le client vers le numéro de port correct afin de pouvoir communiquer avec le service requis.
Comme les services basés RPC se fient à rpcbind pour effectuer toutes les connexions avec les requêtes client entrantes, rpcbind doit être disponible avant que ces services ne démarrent.
Le service rpcbind utilise des enveloppes TCP pour le contrôle d'accès, les règles de contrôle d'accès de rpcbind affectent tous les services basés RPC. De manière alternative, il est possible de spécifier les règles de contrôle d'accès de chacun des démons RPC NFS. Les pages man de rpc.mountd et rpc.statd contiennent des informations concernant la syntaxe précise de ces règles.

8.9.1. Résolution des problèmes NFS et rpcbind

Comme rpcbind[1] fournit la coordination entre les services RPC et les numéros de port utilisés pour communiquer avec ceux-ci, il est utile d'afficher le statut des services RPC en cours à l'aide de rpcbind lors des résolutions de problèmes. La commande rpcinfo affiche chaque service basé RPC avec les numéros de port, un numéro de programme RPC, un numéro de version, et un type de protocole IP (TCP ou UDP).
Pour vous assurer que les bons services NFS basés RPC soient activés pour rpcbind, veuillez saisir la commande suivante :
# rpcinfo -p

Exemple 8.7. Sortie de la comande rpcinfo -p

Ci-dessous figure un exemple de sortie de cette commande :
program vers proto  port service
      100021    1   udp  32774  nlockmgr
      100021    3   udp  32774  nlockmgr
      100021    4   udp  32774  nlockmgr
      100021    1   tcp  34437  nlockmgr
      100021    3   tcp  34437  nlockmgr
      100021    4   tcp  34437  nlockmgr
      100011    1   udp    819  rquotad
      100011    2   udp    819  rquotad
      100011    1   tcp    822  rquotad
      100011    2   tcp    822  rquotad
      100003    2   udp   2049  nfs
      100003    3   udp   2049  nfs
      100003    2   tcp   2049  nfs
      100003    3   tcp   2049  nfs
      100005    1   udp    836  mountd
      100005    1   tcp    839  mountd
      100005    2   udp    836  mountd
      100005    2   tcp    839  mountd
      100005    3   udp    836  mountd
      100005    3   tcp    839  mountd
Si l'un des services NFS ne démarre pas correctement, rpcbind sera incapable de mapper les requêtes RPC des clients de ce service sur le bon port. Dans de nombreux cas, si NFS n'est pas présent dans la sortie rpcinfo, redémarrer NFS entraînera le bon enregistrement du service avec rpcbind et le début de son fonctionnement.
Veuillez consulter la page man rpcinfo pour obtenir des informations supplémentaires ainsi qu'une liste de ses options.