Сбой монтирования NFS, разрешение отклонено, запись экспорта отсутствует

10

У меня проблема с подключением общего ресурса NFS, который я не могу решить, что сводит меня с ума. Это ситуация:

Вовлекаются три машины:
Хост A: Mandrake, IP 192.168.1.4, NFS-сервер
Хост B: athlon64, IP 192.168.1.64, NFS-клиент
Хост C: lap-fzs-2, IP 192.168.1.27, NFS-клиент

На хосте A работает сервер NFS, который экспортирует каталог, который монтируется на хосте B. Это работает безупречно и работает с незапамятных времен. Без проблем. Теперь хост C входит в картину. Ubuntu 12.04 LTS, современная система. Я попытался смонтировать тот же общий ресурс с хоста A, но получил ошибку отказа в разрешении:

root@lap-fzs-2:~# mount -t nfs mandrake:/data /data -onfsvers=2
mount.nfs: access denied by server while mounting mandrake:/data

Тот факт, что он работает между хостами A и B, должен доказать, что экспорт NFS сам по себе работает. Вот информация, которую я могу дать, которая заставляет меня думать, что это должно работать. Может быть, кто-то видит то, чего нет у меня, и знает, почему это не работает на новом хосте C.

Экспорт сервера:

[root@mandrake /root]# cat /etc/exports
/suse 192.168.1.0/16(ro,no_root_squash)
/data 192.168.1.0/24(rw)
#/data3 192.168.2.0/24(rw)
#/data 192.168.2.0/16(rw,all_squash,anonuid=500,anongid=500)
#/data3 192.168.2.0/16(rw,all_squash,anonuid=500,anongid=500)

[root@mandrake /root]# exportfs
/suse           192.168.1.0/16
/data           192.168.1.0/24

Portmapper работает, экспорт известен и смонтирован хостом B "athlon64".

[root@mandrake /root]# showmount -e
Export list for mandrake:
/data 192.168.1.0/24
/suse 192.168.1.0/16
[root@mandrake /root]# showmount -a
All mount points on mandrake:
atlhon64.acme.local:/data

Когда хост athlon64 монтирует общий ресурс NFS, журнал сервера показывает успех:

Feb 11 20:06:46 mandrake mountd[460]: authenticated mount request from atlhon64.acme.local:770 for /data (/data)

Но когда хост C пытается смонтировать тот же общий ресурс, журнал сервера показывает:

Feb 11 20:12:42 mandrake mountd[460]: refused mount request from lap-fzs-2 for /data (/): no export entry

Хост C видит сервер, достигает portmapper и nfsd, но не работает с разрешениями.

root@lap-fzs-2:~# showmount -e 192.168.1.4
Export list for 192.168.1.4:
/data 192.168.1.0/24
/suse 192.168.1.0/16


root@lap-fzs-2:~# mount -t nfs -v mandrake:/data /data -onfsvers=2,proto=udp
mount.nfs: timeout set for Mon Feb 11 21:49:23 2013
mount.nfs: trying text-based options 'nfsvers=2,proto=udp,addr=192.168.1.4'
mount.nfs: prog 100003, trying vers=2, prot=17
mount.nfs: trying 192.168.1.4 prog 100003 vers 2 prot UDP port 2049
mount.nfs: prog 100005, trying vers=1, prot=17
mount.nfs: trying 192.168.1.4 prog 100005 vers 1 prot UDP port 636
mount.nfs: mount(2): Permission denied
mount.nfs: access denied by server while mounting mandrake:/data

Я должен использовать NFSv2 на клиенте. Использование NFSv4 не удастся, так как сервер его не поддерживает. Не удается, так как он пытается подключиться через TCP напрямую к 2049, но порт не открыт. Никакого отступления не происходит. Использование NFSv3 приведет к несоответствию программы / версии RPC.

Что мне не хватает?

Обновление:
все три машины находятся в одной локальной сети на одном коммутаторе. На хосте C отсутствует брандмауэр:

root@lap-fzs-2:~# iptables -vnL
Chain INPUT (policy ACCEPT 17 packets, 1853 bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain OUTPUT (policy ACCEPT 20 packets, 5611 bytes)
 pkts bytes target     prot opt in     out     source               destination

Ни на хосте А:

[root@mandrake /root]# ipchains -L 
Chain input (policy ACCEPT):
Chain forward (policy ACCEPT):
Chain output (policy ACCEPT):
Florian
источник
Брандмауэр на хосте C (или реже хосте A)? (Что показывает / sbin / iptables -vnL?)
davidgo
Нет, нет брандмауэров, один сегмент локальной сети.
Флориан,
1
попробуйте exportfs -aкоманду на хосте A, затем попробуйте mountкоманду на хосте C. попробуйте явное имя хоста или полный IP-адрес в /etc/exports.
опилки
1
Как это поможет? Сервер выполняет exportfs -aзагрузку, и поскольку это не новая запись, она уже экспортирована. Файл экспорта не изменился, это просто новый хост, который должен его смонтировать и не может.
Флориан
@sawdust ваша правка содержала правильную подсказку: использование полного IP-адреса /etc/exportsфактически делает его работоспособным . Теперь у меня есть / 24 net плюс полный IP-адрес в списке, и хост C может монтироваться. Еще не пробовали хост B. Есть идеи, почему это так? Я заметил, что хост B (рабочий) действительно использовал вызов MNT версии 2, в то время как хост C прибегал к вызову MNT версии 1.
Флориан

Ответы:

0

11 февраля 20:12:42 mandrake mountd [460]: отказано в запросе монтирования от lap-fzs-2 для / data (/): нет записи об экспорте

Поскольку в уведомлении об отказе сервера говорится, что для хоста C «нет записи об экспорте» , возможно, вам следует попробовать ввести в /etc/exportsфайл однозначную строку с явным именем хоста или полным IP-адресом для C.

Также попробуйте ввести exportfs -aкоманду на сервере.
У меня часто возникают проблемы с доступом к моему NFS-серверу даже после перезагрузки. Явное выполнение exportfs -aкоманды - надежное решение (для меня).

опилки
источник
Явное, повторное exportfs -aничего не изменило для меня. Использование полного IP-адреса для одного проблемного хоста решило мою проблему. Так что, хотя это не объясняет и я не понимаю, это был ответ на мою проблему и то, что я могу порекомендовать попробовать другим людям с той же проблемой.
Флориан
Добавление записи о проблемном IP-адресе в / etc / exports решило и мою проблему. Weird.
PLA
1

Проверьте и посмотрите, совпадают ли UID и GUID для пользователей NFS на сервере и клиенте. Кроме того, убедитесь, что на сервере есть разрешение 777. Это мой файл / etc / exports на моем сервере для доступа моего клиента.

Создайте общий каталог NFS: (Создайте каждый сервер с IP, разделив пространство)

mkdir / var / nfs vim / etc / exports / var / nfs 10.180.82.250 (rw, синхронизация, root_squash, anonuid = 530, anongid = 530, no_subtree_check)

Tony-Caffe
источник
UID и GID не совпадают. Они не должны быть, это работает, как только я установил общий ресурс на клиенте NFS. А для операции монтирования пользовательские UID не должны иметь значения. Я сомневаюсь, что установка папки в 777 является хорошей идеей, особенно если пользователи могут войти на сервер. Снова, это работало без того, как только я установил это.
Флориан
1

В моем случае ответ -o верс = 3:

$ sudo mount -o vers=3 192.168.172.1:/A/DIR /mnt
  • NFS-сервер: Ubuntu desktop 12.04 32-разрядный хост VMware
  • Клиент NFS: сервер Ubuntu 12.04, 64-разрядная гостевая виртуальная машина (режим только хоста)
Фумиски Уэллс
источник