Nieudane podłączenie NFS, odmowa dostępu, brak wpisu eksportu

10

Mam problem z zamontowaniem udziału NFS, którego nie mogę rozwiązać, co doprowadza mnie do szału. Oto sytuacja:

Zaangażowane trzy maszyny:
Host A: mandrake, IP 192.168.1.4, serwer NFS
Host B: athlon64, IP 192.168.1.64, klient NFS
Host C: lap-fzs-2, IP 192.168.1.27, klient NFS

Host A ma uruchomiony serwer NFS, który eksportuje katalog montowany przez host B. Działa to bezbłędnie i działa od wieków. Bez problemu. Teraz host C pojawia się na zdjęciu. Ubuntu 12.04 LTS, nowoczesny system. Próbowałem zamontować ten sam udział z hosta A, ale dostałem błąd odmowy uprawnień:

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

Fakt, że działa między hostami A i B, powinien udowodnić, że sam eksport NFS działa. Oto informacje, które mogę podać, które sprawiają, że myślę, że powinno działać. Może ktoś zobaczy to, czego ja nie, i wie, dlaczego nie udaje się to na nowym hoście C.

Eksport serwerów:

[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 jest uruchomiony, eksport jest znany i montowany przez hosta 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

Gdy host athlon64 montuje udział NFS, dziennik serwera pokazuje sukces:

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

Ale gdy host C próbuje zamontować ten sam udział, dziennik serwera pokazuje:

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

Host C widzi serwer, osiąga portmapper i nfsd, ale kończy się niepowodzeniem na uprawnieniach.

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

Muszę użyć NFSv2 na kliencie. Korzystanie z NFSv4 zakończy się niepowodzeniem, ponieważ serwer go nie obsługuje. Nie udaje się, ponieważ próbuje połączyć się bezpośrednio przez TCP z 2049, ale port nie jest otwarty. Nie następuje awaria. Użycie NFSv3 spowoduje niezgodność programu / wersji RPC.

czego mi brakuje?

Aktualizacja:
Wszystkie trzy maszyny są w jednej sieci LAN, na tym samym przełączniku. Na hoście C nie ma aktywnej zapory ogniowej:

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

Ani na hoście A:

[root@mandrake /root]# ipchains -L 
Chain input (policy ACCEPT):
Chain forward (policy ACCEPT):
Chain output (policy ACCEPT):
Florian
źródło
Zapora na hoście C (lub mniej prawdopodobne na hoście A)? (Co pokazuje / sbin / iptables -vnL?)
davidgo
Nie, brak zapór ogniowych, jeden segment LAN.
Florian
1
spróbuj exportfs -apolecenia na hoście A, a następnie spróbuj mountpolecenia na hoście C. Spróbuj podać jawną nazwę hosta lub pełny adres IP w /etc/exports.
trociny
1
Jak to by pomogło? Serwer wykonuje exportfs -apodczas rozruchu, a ponieważ nie jest to nowy wpis, został już wyeksportowany. Plik eksportu nie zmienił się, to tylko nowy host, który powinien go zamontować i nie może.
Florian
@sawdust twoja edycja zawierała właściwą wskazówkę: użycie pełnego adresu IP w /etc/exportsrzeczywistości sprawia, że ​​działa. Mam teraz sieć / 24 plus pełny adres IP na liście, a host C może zostać zamontowany. Nie próbowałem jeszcze hosta B. Wiesz, dlaczego to jest? Zauważyłem, że host B (działający) używał wywołania MNT w wersji 2, a host C uciekł się do wywołania MNT w wersji 1.
Florian

Odpowiedzi:

0

11 lutego 20:12:42 mandrake mountd [460]: odmówiono żądania montowania z lap-fzs-2 dla / data (/): brak wpisu eksportu

Ponieważ powiadomienie o odrzuceniu serwera twierdzi, że Host C nie ma „ wpisu eksportu ” , być może powinieneś wypróbować jednoznaczną linię w /etc/exportspliku z jawną nazwą hosta lub pełnym adresem IP dla C.

Spróbuj także wydać exportfs -apolecenie na serwerze.
Często mam problemy z dostępem do mojego serwera NFS nawet po ponownym uruchomieniu. Jawne wydanie exportfs -apolecenia jest niezawodnym rozwiązaniem (dla mnie).

trociny
źródło
Wyraźne, powtarzane exportfs -anic dla mnie nie zmieniło. Wykorzystanie pełnego adresu IP dla jednego problematycznego hosta rozwiązało mój problem. Chociaż to nie wyjaśnia tego i nie rozumiem, to była odpowiedź na mój problem i to, co mogę polecić innym osobom z tym samym problemem.
Florian
Dodanie wpisu dla problematycznego adresu IP w / etc / export rozwiązało również mój problem. Dziwne.
PLA,
1

Sprawdź i sprawdź, czy UID i GUID dla użytkowników NFS są takie same na serwerze i kliencie. Upewnij się również, że na serwerze folder ma uprawnienia 777. To mój / etc / export na mój serwer, do którego mój klient ma dostęp.

Utwórz katalog udostępniania NFS: (Utwórz każdy serwer z adresem IP, oddzielone przestrzenią)

mkdir / var / nfs vim / etc / export / var / nfs 10.180.82.250 (rw, sync, root_squash, anonuid = 530, anongid = 530, no_subtree_check)

Tony-Caffe
źródło
UID i GID nie są takie same. Nie muszą tak być, to działa, kiedy mam udział zamontowany na kliencie NFS. A dla operacji montowania identyfikatory UID użytkownika powinny być nieistotne. Wątpię, aby ustawienie folderu na 777 było dobrym pomysłem, zwłaszcza jeśli użytkownicy mogą zalogować się na serwerze. Ponownie działało bez tego, kiedy już go zamontowałem.
Florian
1

W moim przypadku odpowiedź -o vers = 3 to:

$ sudo mount -o vers=3 192.168.172.1:/A/DIR /mnt
  • Serwer NFS: Ubuntu Desktop 12.04 32-bitowy host vmware
  • Klient NFS: Ubuntu server 12.04 64-bitowy gość vmware (tryb tylko hosta)
Fumisky Wells
źródło