246 lines
5.8 KiB
Plaintext
246 lines
5.8 KiB
Plaintext
|
====== - Partage réseau sous Linux : NFS ======
|
||
|
|
||
|
{{ informatique:linux:cfp:nfs-network-file-system:pasted:20210131-231703.png?75x75|Network File System est le système de fichiers pour réseau Linux.}}
|
||
|
|
||
|
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 =====
|
||
|
|
||
|
* [[index|Sommaire]]
|
||
|
* Créer un partage NFS sous Linux
|
||
|
* Installer NFS
|
||
|
* [[..:nfs-network-file-system:installer-nfs-fedora-28]]
|
||
|
* [[..:nfs-network-file-system:installer-nfs-raspbian-os-10]]
|
||
|
* [[..:nfs-network-file-system:verifier-la-version-nfs-installee]]
|
||
|
* [[..:nfs-network-file-system:creer-et-exporter-un-partage]]
|
||
|
* [[..:nfs-network-file-system:modifier-la-parefeu]]
|
||
|
* Monter un partage NFS sous Linux
|
||
|
* [[..:nfs-network-file-system:installer-pilotes-nfs]]
|
||
|
* [[..:nfs-network-file-system:decouvrir-les-exports]]
|
||
|
* [[..:nfs-network-file-system:monter-un-partage-nfs]]
|
||
|
* [[..:nfs-network-file-system:monter-un-partage-nfs-permanent]]
|
||
|
|
||
|
|
||
|
===== - É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 :
|
||
|
|
||
|
<code>
|
||
|
Domain = acegrp.lan
|
||
|
|
||
|
</code>
|
||
|
|
||
|
Vérifier la configuration du mapping :
|
||
|
|
||
|
<code>
|
||
|
Nobody-User = nobody
|
||
|
Nobody-Group = nogroup
|
||
|
|
||
|
</code>
|
||
|
|
||
|
==== - 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'' :
|
||
|
|
||
|
<code bash>
|
||
|
$ sudo mkdir -p /export/media
|
||
|
|
||
|
</code>
|
||
|
|
||
|
---
|
||
|
|
||
|
Créer un point de montage de ''/mnt'' vers ''/export/media''. Ajouter une entrée dans le fichier ''/etc/fstab'' :
|
||
|
|
||
|
<code>
|
||
|
/mnt /export/media none bind 0 0
|
||
|
</code>
|
||
|
|
||
|
---
|
||
|
|
||
|
Monter le dossier ''/export/media'' :
|
||
|
|
||
|
<code bash>
|
||
|
$ sudo mount /export/media
|
||
|
|
||
|
</code>
|
||
|
|
||
|
---
|
||
|
|
||
|
Modifier le fichier **/etc/exports** :
|
||
|
|
||
|
<code>
|
||
|
/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)
|
||
|
|
||
|
</code>
|
||
|
|
||
|
---
|
||
|
|
||
|
Mettre à jour les exports :
|
||
|
|
||
|
<code bash>
|
||
|
$ sudo exportfs -ra
|
||
|
|
||
|
</code>
|
||
|
|
||
|
==== - Gérer les services ====
|
||
|
|
||
|
> Fedora 28 Sous **Fedora 28**, deux services doivent être activé et démarrés : **RPCbind** et **nfs** :
|
||
|
|
||
|
<code bash>
|
||
|
$ sudo systemctl start rpcbind nfs-server
|
||
|
|
||
|
</code>
|
||
|
|
||
|
<code bash>
|
||
|
$ sudo systemctl enable rpcbind nfs-server
|
||
|
|
||
|
</code>
|
||
|
|
||
|
> Raspbian 10
|
||
|
|
||
|
Sous **Raspbian 10**, il faut activer le service **nfs-kernel-server** :
|
||
|
|
||
|
<code bash>
|
||
|
$ sudo systemctl enable nfs-kernel-server
|
||
|
|
||
|
</code>
|
||
|
|
||
|
Puis démarrer le service **nfs-kernel-server** :
|
||
|
|
||
|
<code bash>
|
||
|
$ sudo systemctl start nfs-kernel-server
|
||
|
|
||
|
</code>
|
||
|
|
||
|
===== - Ajouter une exception dans Firewalld =====
|
||
|
|
||
|
On rajoute 4 exceptions exactement :
|
||
|
|
||
|
* 2049 en udp et tcp
|
||
|
* 111 en udp et tcp
|
||
|
|
||
|
<code bash>
|
||
|
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
|
||
|
|
||
|
</code>
|
||
|
|
||
|
ou encore plus rapidement
|
||
|
|
||
|
<code bash>
|
||
|
sudo firewall-cmd --add-service=nfs --permanent
|
||
|
sudo firewall-cmd --reload
|
||
|
|
||
|
</code>
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
====== - FAQ ======
|
||
|
|
||
|
===== - Connaître les services RPC d'un host =====
|
||
|
|
||
|
<code bash>
|
||
|
rpcinfo -p 192.168.100.5
|
||
|
|
||
|
</code>
|
||
|
|
||
|
Résultat
|
||
|
|
||
|
<code>
|
||
|
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
|
||
|
|
||
|
</code>
|
||
|
|
||
|
|
||
|
|
||
|
===== - 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 ?
|
||
|
|
||
|
<code>
|
||
|
# showmount -e 192.168.100.6
|
||
|
|
||
|
clnt_create: RPC: Unable to receive
|
||
|
|
||
|
</code>
|
||
|
|
||
|
1. Vérifier la connectivité au serveur avec la commande ''ping''
|
||
|
|
||
|
<code>
|
||
|
# 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
|
||
|
|
||
|
</code>
|
||
|
|
||
|
Si la commande ''ping'' ne répond pas, vérifier par une connexion ''ssh''
|
||
|
|
||
|
<code>
|
||
|
# 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 ~]$
|
||
|
|
||
|
</code>
|
||
|
|
||
|
2. Lister les informations RPC avec la commande ''rpcinfo''
|
||
|
|
||
|
<code>
|
||
|
# rpcinfo -p 192.168.100.6
|
||
|
|
||
|
192.168.100.6: RPC: Remote system error - Connection refused
|
||
|
|
||
|
</code>
|
||
|
|