Plusieurs services communs doivent être actifs pour que les accès au système de fichiers réseau NFS soient utilisables. Le mécanisme de gestion des appels de procédures distantes, appelé RPC pour Remote Procedure Call, constitue le point de départ de la mise en œuvre de ces services.
Q1. |
Quel est le paquet qui fournit le service de gestion des appels de procédure distants RPC ?. Recherchez les noms de paquets qui contiennent la chaîne 'rpc'. Installez le paquet identifié. |
|||
apt search --names-only ^rpc rpcbind/testing,now 1.2.7-1 amd64 [installé, automatique]
conversion de numéros de programmes RPC en adresses universelles
rpcsvc-proto/testing,now 1.4.3-1 amd64 [installé, automatique]
RPC protocol compiler and definitions
À la lecture de la liste ci-dessus, c'est le paquet rpcbind qu'il faut installer. sudo apt install rpcbind |
||||
Q2. |
Quel est le numéro de port utilisé par le service ? Comment fonctionne le service en écoute sur ce numéro de port ?
|
|||
|
||||
Q3. |
Quelle est a commande qui permet de lister les services accessibles via un appel RPC ? À quel paquet appartient cette commande ? Recherchez dans le support Linux NFS-HOWTO et dans la liste des fichiers du paquet sélectionné pour la gestion des appels RPC. Recherchez dans les pages de manuels de la commande l'option d'affichage la plus synthétique. |
|||
La commande présentée dans le support Linux NFS-HOWTO est appelée rpcinfo. Vérifiez sa présence sur le système serveur et/ou client. dpkg -S $(which rpcinfo) rpcbind: /usr/bin/rpcinfo Ouvrez les pages de manuels de la commande rpcinfo et recherchez l'option
rpcinfo -s program version(s) netid(s) service owner 100000 2,3,4 local,udp,tcp,udp6,tcp6 portmapper superuser La copie d'écran ci-dessus montre que le gestionnaire d'appel
Relevez la liste des versions du service supportées ainsi que l'ordre de priorité associé. Les versions disponibles pour le protocole NFS sont : 2, 3 et 4. |
||||
Q4. |
Donnez deux exemples d'exécution de la commande pour lister le(s) service(s) ouvert sur le système local puis sur le système voisin. Reprenez la commande utilisée dans la question précédente en indiquant l'adresse IPv4 ou IPv6 du système voisin. |
|||
Testez différentes adresses IP pour intérroger les systèmes client et serveur.
Ces copies d'écran montrent la même liste de services. Les configurations sur les deux hôtes sont donc identiques à ce stade de la configuration. |
||||
Q5. |
Réalisez une capture à l'aide de l'analyseur réseau lors de l'exécution de la commande et relevez : le protocole de transport utilisé, les numéros de ports caractéristiques de cette transaction ainsi que le nom de la procédure RPC utilisée. système 1 système 2 ---------------------------------------------------------- <commande> --- requête ---> <processus> <-- réponse ----
|
|||
Lancez une capture de trafic basée sur les adresses de lien local IPv6 pour obtenir l'affichage le plus simple.
Reprenez la même démarche en utilisant une adresse globale pour faire apparaître l'utilisation de la couche transport. tshark -i enp0s1 -f "host 2001:678:3fc:65:baad:caff:fefe:5" Capturing on 'enp0s1' 2001:678:3fc:65:baad:caff:fefe:5 → 2001:678:3fc:65:baad:caff:fefe:6 TCP 94 50522 → 111 [SYN] Seq=0 Win=64800 Len=0 MSS=1440 SACK_PERM TSval=2127598301 TSecr=0 WS=128 2001:678:3fc:65:baad:caff:fefe:6 → 2001:678:3fc:65:baad:caff:fefe:5 TCP 94 111 → 50522 [SYN, ACK] Seq=0 Ack=1 Win=64260 Len=0 MSS=1440 SACK_PERM TSval=4291415952 TSecr=2127598301 WS=128 2001:678:3fc:65:baad:caff:fefe:5 → 2001:678:3fc:65:baad:caff:fefe:6 TCP 86 50522 → 111 [ACK] Seq=1 Ack=1 Win=64896 Len=0 TSval=2127598302 TSecr=4291415952 2001:678:3fc:65:baad:caff:fefe:5 → 2001:678:3fc:65:baad:caff:fefe:6 Portmap 130 V3 DUMP Call 2001:678:3fc:65:baad:caff:fefe:6 → 2001:678:3fc:65:baad:caff:fefe:5 TCP 86 111 → 50522 [ACK] Seq=1 Ack=45 Win=64256 Len=0 TSval=4291415953 TSecr=2127598302 2001:678:3fc:65:baad:caff:fefe:6 → 2001:678:3fc:65:baad:caff:fefe:5 Portmap 774 V3 DUMP Reply (Call In 4) 2001:678:3fc:65:baad:caff:fefe:5 → 2001:678:3fc:65:baad:caff:fefe:6 TCP 86 50522 → 111 [ACK] Seq=45 Ack=689 Win=64256 Len=0 TSval=2127598303 TSecr=4291415954 2001:678:3fc:65:baad:caff:fefe:5 → 2001:678:3fc:65:baad:caff:fefe:6 TCP 86 50522 → 111 [FIN, ACK] Seq=45 Ack=689 Win=64256 Len=0 TSval=2127598303 TSecr=4291415954 2001:678:3fc:65:baad:caff:fefe:6 → 2001:678:3fc:65:baad:caff:fefe:5 TCP 86 111 → 50522 [FIN, ACK] Seq=689 Ack=46 Win=64256 Len=0 TSval=4291415954 TSecr=2127598303 2001:678:3fc:65:baad:caff:fefe:5 → 2001:678:3fc:65:baad:caff:fefe:6 TCP 86 50522 → 111 [ACK] Seq=46 Ack=690 Win=64256 Len=0 TSval=2127598303 TSecr=4291415954 Cette copie d'écran montre que :
Affichez les détails de la transaction RPC en enregistrant la capture de trafic dans un fichier.
|
Q6. |
Quel est le paquet commun au client et au serveur NFS ? Installez ce paquet et listez les commandes fournies par ce paquet. Recherchez dans la liste des paquets disponibles, ceux dont le
nom débute par |
apt search --names-only ^nfs nfs-common/testing,now 1:2.8.3-1+b1 amd64 [installé]
fichiers de prise en charge NFS communs au client et au serveur
Le résultat de la commande de recherche propose une longue liste
de paquets. Retenez le paquet sudo apt install nfs-common Listez les programmes fournis par ce paquet. dpkg -L nfs-common | grep bin /usr/sbin /usr/sbin/blkmapd /usr/sbin/mount.nfs /usr/sbin/mountstats /usr/sbin/nfsconf /usr/sbin/nfsidmap /usr/sbin/nfsiostat /usr/sbin/nfsstat /usr/sbin/rpc.gssd /usr/sbin/rpc.idmapd /usr/sbin/rpc.statd /usr/sbin/rpc.svcgssd /usr/sbin/rpcctl /usr/sbin/rpcdebug /usr/sbin/showmount /usr/sbin/sm-notify /usr/sbin/start-statd /usr/sbin/mount.nfs4 /usr/sbin/umount.nfs /usr/sbin/umount.nfs4 Dans cette liste, on trouve les commandes de montage, de démontage et de suivi d'état du système de fichiers réseau. |