211 lines
4.9 KiB
Markdown
211 lines
4.9 KiB
Markdown

|
|
|
|
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
|
|
- Sommaire
|
|
- Créer un partage NFS sous Linux
|
|
1. Installer NFS
|
|
1.
|
|
1.
|
|
1.
|
|
1.
|
|
1.
|
|
- Monter un partage NFS sous Linux
|
|
1.
|
|
1.
|
|
1.
|
|
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
|
|
```
|
|
|
|
### - 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` :
|
|
|
|
```bash
|
|
$ 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` :
|
|
|
|
```bash
|
|
$ 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 :
|
|
|
|
```bash
|
|
$ sudo exportfs -ra
|
|
```
|
|
|
|
### - Gérer les services
|
|
> Fedora 28 Sous **Fedora 28**, deux services doivent être activé et démarrés : **RPCbind** et **nfs** :
|
|
|
|
```bash
|
|
$ sudo systemctl start rpcbind nfs-server
|
|
```
|
|
|
|
```bash
|
|
$ sudo systemctl enable rpcbind nfs-server
|
|
```
|
|
|
|
> Raspbian 10
|
|
|
|
Sous **Raspbian 10**, il faut activer le service **nfs-kernel-server** :
|
|
|
|
```bash
|
|
$ sudo systemctl enable nfs-kernel-server
|
|
```
|
|
|
|
Puis démarrer le service **nfs-kernel-server** :
|
|
|
|
```bash
|
|
$ sudo systemctl start nfs-kernel-server
|
|
```
|
|
|
|
## - Ajouter une exception dans Firewalld
|
|
On rajoute 4 exceptions exactement :
|
|
|
|
- 2049 en udp et tcp
|
|
- 111 en udp et tcp
|
|
|
|
```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
|
|
```
|
|
|
|
ou encore plus rapidement
|
|
|
|
```bash
|
|
sudo firewall-cmd --add-service=nfs --permanent
|
|
sudo firewall-cmd --reload
|
|
```
|
|
|
|
# - FAQ
|
|
## - Connaître les services RPC d'un host
|
|
```bash
|
|
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
|
|
```
|
|
|
|
## - 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
|
|
``` |