해결할 수없는 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에는 호스트 B에 의해 마운트 된 디렉토리를 내보내는 NFS 서버가 실행 중입니다. 이는 완벽하게 작동하며 오래 전부터 작동 해 왔습니다. 문제 없습니다. 이제 호스트 C가 그림에 들어옵니다. 우분투 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 프로그램 / 버전 불일치가 발생합니다.
내가 무엇을 놓치고 있습니까?
업데이트 :
세 대의 컴퓨터가 모두 하나의 LAN에 있고 동일한 스위치에 있습니다. 호스트 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
호스트 A도 아닙니다.
[root@mandrake /root]# ipchains -L
Chain input (policy ACCEPT):
Chain forward (policy ACCEPT):
Chain output (policy ACCEPT):
exportfs -a
후 시도, 호스트 A에서 명령을 mount
명시 적으로 호스트 이름 또는 전체 IP 주소를 시도 호스트 C.에 명령을 /etc/exports
.
exportfs -a
부팅시 수행하며 새 항목이 아니므로 이미 내 보냅니다 . 내보내기 파일은 변경되지 않았으며 마운트해야하는 새로운 호스트 일뿐입니다.
/etc/exports
실제로 작동합니다. 이제 / 24 net과 전체 IP가 나열되고 호스트 C를 마운트 할 수 있습니다. 아직 호스트 B를 시도하지 않았습니다. 이것이 왜 그런지 아십니까? 호스트 B (작업중인 호스트)는 버전 2 MNT 호출을 사용하는 반면 호스트 C는 버전 1 MNT 호출에 의존했습니다.