Perché NFS non mi consente di montare una condivisione?


14

Il padrone di casa

Ho un host, con Ubuntu 12.04, su 10.0.0.202. Fornisce una condivisione NFS per altre macchine sulla rete. Ecco il contenuto di /etc/exports:

/media/storagedrive 10.0.0.0/24(rw,sync,no_subtree_check)

L'intenzione qui è quella di condividere il contenuto di /media/storagedrivealtre macchine sulla rete nell'intervallo IP 10.0.0.0 - 10.0.0.255.

Client di lavoro

Funziona correttamente con un computer client 10.0.0.40su Ubuntu 13.10, noto come MattDev. Quella macchina è /etc/fstabcosì:

UUID=8f8c838e-3ea2-457a-87f0-57b12dfab06c /               ext4    errors=remount-ro 0       1
UUID=427089d4-46a2-432d-9df4-7016bdfc7df2 none            swap    sw              0       0
10.0.0.202:/media/storagedrive /mnt/NetworkStorageDrive nfs rsize=8192,wsize=8192,timeo=14,intr

E ls -al /mnt/su quella macchina si presenta così:

total 12K
drwxr-xr-x  3 root root    4.0K Feb  4 17:48 .
drwxr-xr-x 23 root root    4.0K Feb  5 08:44 ..
drwxrwxr-x  7 root plugdev 4.0K Feb  5 11:43 NetworkStorageDrive

L'output di idassomiglia a questo:

uid=1000(matt) gid=1000(matt) groups=1000(matt),4(adm),24(cdrom),27(sudo),30(dip),33(www-data),46(plugdev),112(lpadmin),124(sambashare)

Client virtuale non funzionante

Ho una seconda macchina client, che esegue Ubuntu 12.10, come sistema operativo guest su una macchina host Windows 7. La macchina host è sulla rete come 10.0.0.28. La macchina ospite è gestita da Vagrant, utilizzando VirtualBox 4.3.6 come provider. Chiamerò l'host Windows 7 AlexDevHost e l'ospite Ubuntu AlexDevGuest.

L'esecuzione showmount -e 10.0.0.202su AlexDevGuest produce:

Export list for 10.0.0.202:
/media/storagedrive 10.0.0.0/24

Tuttavia, quando provo a montare la condivisione, non riesce:

$ sudo mount 10.0.0.202:/media/storagedrive /mnt/NetworkStorageDrive
mount.nfs: access denied by server while mounting 10.0.0.202:/media/storagedrive

Quindi ho iniziato a cercare problemi:

$ ls -alh /mnt/
total 12K
drwxr-xr-x  3 root root 4.0K Feb  5 12:23 .
drwxr-xr-x 26 root root 4.0K Feb  5 12:23 ..
drwxr-xr-x  2 root root 4.0K Feb  5 12:23 NetworkStorageDrive
$ id
uid=1001(vagrant) gid=1001(vagrant) groups=1001(vagrant)
$

Quel uid e gid sono diversi dall'utente matt su MattDev. Quindi mi sono destreggiato con l'UID per Vagrant, poiché ho letto che l'accesso a NFS è controllato abbinando l'indirizzo IP e gli UID. Così ora:

$ id
uid=1000(vagrant) gid=1001(vagrant) groups=1001(vagrant)
$ sudo mount 10.0.0.202:/media/storagedrive /mnt/NetworkStorageDrive
mount.nfs: access denied by server while mounting 10.0.0.202:/media/storagedrive
$

Ancora nessun successo. Quindi ora sto finendo le idee.

  1. Che cosa sto facendo di sbagliato?
  2. Se la parte uid è corretta, c'è un modo per verificare che la macchina del server NFS stia vedendo il mio tentativo di accesso come proveniente 10.0.0.28e non un altro IP non compreso nell'intervallo consentito?

Risposte:


16

Ok, l'ho risolto (o almeno, l'ho fatto funzionare, e penso di sapere cosa lo stava causando).

Ho aggiunto il insecureflag alla /etc/exportslinea sul server NFS, quindi ora è così:

/media/storagedrive 10.0.0.0/24(rw,sync,no_subtree_check,insecure)

Questo flag consente alle connessioni di provenire dalle porte client sopra IPPORT_RESERVED (1024).

Il comando mount ora funziona.

La mia ipotesi sul motivo per cui la mancanza del insecureflag era il problema è che VirtualBox utilizzava NAT per passare la richiesta alla rete fisica, quindi mentre la porta sull'host Ubuntu (AlexDevGuest) potrebbe essere stata inferiore a 1024, la porta tradotta su l'host di Windows 7 (AlexDevHost) era probabilmente superiore a 1024 e quindi bloccato. Impostare la insecurebandiera significava che era permesso però.

Questo problema ovviamente non influisce sulla macchina non virtuale DevMatt.


Fantastico lavoro investigativo su questo. Uso abitualmente le VM VirtualBox di Unbuntu come ambienti "sandbox" su cui posso lanciare o testare invece di utilizzare server a livello di produzione o persino un server di sviluppo in fasi e questo mi aiuta immensamente.
Jake:

Vuoi dire grazie a te in un ciclo infinito, cercando questo da molto tempo e tu mi hai aiutato. Qualche idea sul perché abbiano posto tali restrizioni perché non possono permettere alle connessioni provenienti da qualsiasi numero di porta come il numero di porta influirà su qualcosa. Grazie mille.
mSatyam,

@mSatyam Sarà perché devi essere root per collegarti a una porta inferiore a 1024, ed è probabilmente prudente aspettarti che le cose NFS funzionino come root, almeno per impostazione predefinita. Il port forwarding che stavo facendo era in qualche modo un "caso speciale".
Alex

Ma come posso convincere il networking di VirtualBox a utilizzare una porta inferiore a 1024? ..
Mikhail T.

Grazie mille ..
johnmin
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.