Partage réseau sous Linux : NFS
NFS est un système de partage de fichiers, respectant les protocoles d'accès aux fichiers Linux.
Il est nécessaire d'avoir deux ordinateurs, au moins, pour mettre en œuvre un partage NFS. Par exemple :
- Serveur NFS : rpinas001.acegrp.lan - 192.168.100.1
- Client NFS : dskcdc001.acegrp.lan - 192.168.100.155
Il est possible d'avoir plusieurs Serveur NFS et plusieurs Clients.
Il est nécessaire d'autoriser le dialogue réseau entre le Serveur et le Client. L'utilisation de la commande ping pour confirmer la communication entre les deux systèmes.
Table des matières
- Créer un partage NFS sous Linux
- Installer NFS
- Monter un partage NFS sous Linux
1. Éditer la configuration
Modifier le fichier /etc/idmapd.conf
en admin pour intégrer le domaine dans la configuration :
Décommenter la ligne et indiquer le nom du domaine :
Domain = acegrp.lan
Vérifier la configuration du mapping :
Nobody-User = nobody Nobody-Group = nogroup
1.1 Indiquer les dossiers à partager
L'idée est de centraliser les dossiers à partager dans le dossier /export
. Pour exemple, on partage dans ce dossier export
, le dossier /mnt
.
—
Créer le dossier /export/media
:
$ sudo mkdir -p /export/media
—
Créer un point de montage de /mnt
vers /export/media
. Ajouter une entrée dans le fichier /etc/fstab
:
/mnt /export/media none bind 0 0
—
Monter le dossier /export/media
:
$ sudo mount /export/media
—
Modifier le fichier /etc/exports :
/export 192.168.1.0/24(rw,fsid=0,insecure,no_subtree_check,async) /export/media 192.168.1.0/24(rw,nohide,insecure,no_subtree_check,async)
—
Mettre à jour les exports :
$ sudo exportfs -ra
1.2 Gérer les services
Fedora 28 Sous Fedora 28, deux services doivent être activé et démarrés : RPCbind et nfs :
$ sudo systemctl start rpcbind nfs-server
$ sudo systemctl enable rpcbind nfs-server
Raspbian 10
Sous Raspbian 10, il faut activer le service nfs-kernel-server :
$ sudo systemctl enable nfs-kernel-server
Puis démarrer le service nfs-kernel-server :
$ sudo systemctl start nfs-kernel-server
2. Ajouter une exception dans Firewalld
On rajoute 4 exceptions exactement :
- 2049 en udp et tcp
- 111 en udp et tcp
sudo firewall-cmd --add-port=2049/udp sudo firewall-cmd --add-port=2049/tcp sudo firewall-cmd --add-port=111/udp sudo firewall-cmd --add-port=111/tcp
ou encore plus rapidement
sudo firewall-cmd --add-service=nfs --permanent sudo firewall-cmd --reload
FAQ
1. Connaître les services RPC d'un host
rpcinfo -p 192.168.100.5
Résultat
program vers proto port service 100000 4 tcp 111 portmapper 100000 3 tcp 111 portmapper 100000 2 tcp 111 portmapper 100000 4 udp 111 portmapper 100000 3 udp 111 portmapper 100000 2 udp 111 portmapper 100024 1 udp 40258 status 100024 1 tcp 41279 status 100005 1 udp 20048 mountd 100005 1 tcp 20048 mountd 100005 2 udp 20048 mountd 100005 2 tcp 20048 mountd 100005 3 udp 20048 mountd 100005 3 tcp 20048 mountd 100003 3 tcp 2049 nfs 100003 4 tcp 2049 nfs 100227 3 tcp 2049 nfs_acl 100003 3 udp 2049 nfs 100003 4 udp 2049 nfs 100227 3 udp 2049 nfs_acl 100021 1 udp 60788 nlockmgr 100021 3 udp 60788 nlockmgr 100021 4 udp 60788 nlockmgr 100021 1 tcp 35701 nlockmgr 100021 3 tcp 35701 nlockmgr 100021 4 tcp 35701 nlockmgr
2. clnt_create: RPC: Unable to receive
Le message clnt_create: RPC: Unable to receive
apparaît après l'utilisation de la commande showmount
. Que faire ?
# showmount -e 192.168.100.6 clnt_create: RPC: Unable to receive
1. Vérifier la connectivité au serveur avec la commande ping
# ping 192.168.100.6 PING 192.168.100.6 (192.168.100.6) 56(84) bytes of data. 64 bytes from 192.168.100.6: icmp_seq=1 ttl=64 time=0.224 ms 64 bytes from 192.168.100.6: icmp_seq=2 ttl=64 time=0.209 ms ^C --- 192.168.100.6 ping statistics --- 2 packets transmitted, 2 received, 0% packet loss, time 1009ms rtt min/avg/max/mdev = 0.209/0.216/0.224/0.016 ms
Si la commande ping
ne répond pas, vérifier par une connexion ssh
# ssh cedric@192.168.100.6 cedric@192.168.100.6's password: Last login: Sat May 5 07:03:20 2018 from 192.168.100.29 [cedric@srv06 ~]$
2. Lister les informations RPC avec la commande rpcinfo
# rpcinfo -p 192.168.100.6 192.168.100.6: RPC: Remote system error - Connection refused