Вопрос Почему NFS не позволяет мне устанавливать общий ресурс?


Гостья

У меня есть хост, запущенный Ubuntu 12.04, на 10.0.0.202, Он предоставляет общий ресурс NFS для других компьютеров в сети. Вот содержание /etc/exports:

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

Цель состоит в том, чтобы поделиться содержимым /media/storagedrive к другим машинам в сети в диапазоне IP 10.0.0.0 - 10.0.0.255,

Рабочий клиент

Это правильно работает с клиентской машиной в 10.0.0.40, запуская Ubuntu 13.10, известный как MattDev. Эта машина /etc/fstab выглядит так:

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

А также ls -al /mnt/ на этой машине выглядит так:

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

Выход id выглядит так:

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)

Нерабочий виртуальный клиент

У меня есть вторая клиентская машина, работающая под Ubuntu 12.10, в качестве гостевой ОС на хост-машине Windows 7. Хост-компьютер находится в сети как 10.0.0.28, Для гостевой машины управляет Vagrant, используя VirtualBox 4.3.6 в качестве поставщика. Я позвоню хозяину Windows 7 AlexDevHost и гостю Ubuntu AlexDevGuest.

Бег showmount -e 10.0.0.202 на AlexDevGuest производит:

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

Однако, когда я пытаюсь установить общий ресурс, он терпит неудачу:

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

Поэтому я начал искать проблемы:

$ 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)
$

Этот uid и gid отличаются от пользователя matt на MattDev. Поэтому я жонглировал uid для бродяг, так как я читал, что доступ к NFS контролируется путем сопоставления IP-адреса и uids. А сейчас:

$ 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
$

Все еще нет успеха. Так что теперь у меня заканчиваются идеи.

  1. Что я делаю не так?
  2. Если часть uid верна, есть ли способ проверить, что сервер NFS-сервера видит мою попытку доступа, исходящую из 10.0.0.28, а не какой-либо другой IP-адрес не в разрешенном диапазоне?

14
2018-02-05 12:52


происхождения




ответы:


Хорошо, я работал над этим (или, по крайней мере, я заработал его, и я думаю, что знаю, что его вызывает).

Я добавил insecure флаг /etc/exports line на сервере NFS, так что теперь это выглядит так:

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

Этот флаг позволяет подключаться к клиентским портам выше IPPORT_RESERVED (1024).

Теперь команда монтирования работает.

Мое предположение о том, почему отсутствие insecure флаг был проблемой в том, что VirtualBox использовал NAT для передачи запроса в физическую сеть, поэтому, хотя порт на гостевой Ubuntu (AlexDevGuest), возможно, был ниже 1024, переведенный порт на хосте Windows 7 (AlexDevHost) был, вероятно, выше 1024 и, следовательно, заблокирован. Настройка insecure флаг означал, что это разрешено.

Эта проблема, очевидно, не влияет на не виртуальную машину DevMatt.


15
2018-02-05 15:40



Фантастическая детективная работа над этим. Я обычно использую виртуальные виртуальные машины VirtualBox Unbuntu в качестве среды «песочницы», которые я могу опробовать или протестировать, вместо использования серверов уровня производительности или даже поэтапного сервера-разработчика, и это очень помогает. - JakeGould
Хотите сказать спасибо вам в бесконечном цикле, ищите это долго, и вы помогли. Любая идея, почему такое ограничение они поставили, почему они не могут позволить соединениям, поступающим из любого номера порта, как номер порта влияет на что-либо. Любые Пути большое спасибо. - mSatyam
@mSatyam Это будет потому, что вы должны быть root, чтобы привязываться к порту ниже 1024, и, вероятно, разумно ожидать, что материал NFS будет запущен как root, по крайней мере по умолчанию. Переадресация портов, которую я делал, была скорее «особым случаем». - Alex
Но как я могу убедить сеть VirtualBox использовать порт ниже 1024? .. - Mikhail T.