Я бьюсь головой об стену этим. Среда - это 2 64-битные установки CentOS 6. И клиент, и сервер NFS полностью обновлены по состоянию на 1 час назад.
Я настроил экспорт NFS на сервере:
/opt/nfs 10.1.1.0/24(rw,sync,no_root_squash,no_all_squash)
AFAICT, все соответствующие службы NFS на сервере работают:
(2) (0 Jobs) [root@lb01-cbr01-au ~]$ service rpcbind status
rpcbind (pid 20079) is running...
(2) (0 Jobs) [root@lb01-cbr01-au ~]$ service nfslock status
rpc.statd (pid 19986) is running...
(2) (0 Jobs) [root@lb01-cbr01-au ~]$ service nfs status
rpc.svcgssd is stopped
rpc.mountd (pid 20034) is running...
nfsd (pid 20031 20030 20029 20028 20027 20026 20025 20024) is running...
(2) (0 Jobs) [root@lb01-cbr01-au ~]$
На клиенте и rpcbind, и nfslock сообщают, что работают.
На сервере вывод rpcinfo для localhost выглядит хорошо:
[root@lb01-cbr01-au ~]# rpcinfo -p localhost
program vers proto port service
100000 4 tcp 111 portmapper
100000 3 tcp 111 portmapper
100000 2 tcp 111 portmapper
100000 4 udp 111 portmapper
100000 3 udp 111 portmapper
100000 2 udp 111 portmapper
100024 1 udp 39893 status
100024 1 tcp 59014 status
100003 2 tcp 2049 nfs
100003 3 tcp 2049 nfs
100003 4 tcp 2049 nfs
100227 2 tcp 2049 nfs_acl
100227 3 tcp 2049 nfs_acl
100003 2 udp 2049 nfs
100003 3 udp 2049 nfs
100003 4 udp 2049 nfs
100227 2 udp 2049 nfs_acl
100227 3 udp 2049 nfs_acl
100021 1 udp 44725 nlockmgr
100021 3 udp 44725 nlockmgr
100021 4 udp 44725 nlockmgr
100021 1 tcp 40736 nlockmgr
100021 3 tcp 40736 nlockmgr
100021 4 tcp 40736 nlockmgr
100005 1 udp 55385 mountd
100005 1 tcp 55481 mountd
100005 2 udp 46027 mountd
100005 2 tcp 59968 mountd
100005 3 udp 45069 mountd
100005 3 tcp 33231 mountd
[root@lb01-cbr01-au ~]#
Точно так же rpcinfo -p localhost на клиенте указывает хорошее состояние:
program vers proto port service
100000 4 tcp 111 portmapper
100000 3 tcp 111 portmapper
100000 2 tcp 111 portmapper
100000 4 udp 111 portmapper
100000 3 udp 111 portmapper
100000 2 udp 111 portmapper
100024 1 udp 59519 status
100024 1 tcp 39715 status
Межсетевой экран открыт между клиентом и сервером - разрешающее правило существует для интерфейса как для входной, так и для выходной цепочки на каждом хосте.
От клиента, когда я выдаю showmount -e <server_ip>
, он зависает на 20 секунд, пока не будет создан список экспорта. Выдача rpcinfo -p <server_ip>
он также зависает на 20 секунд, пока в конечном итоге не вернется «rpcinfo: невозможно связаться с portmapper: RPC: удаленная системная ошибка - время ожидания соединения истекло».
Когда я пытаюсь смонтировать экспорт из клиента, используя:
mount -t nfs 10.1.1.33:/opt/nfs /opt/test/nfs
Он зависает на 3 м 30 секунд, возвращая "mount.nfs: Connection timed out".
Однако, если я попытаюсь подключиться через UDP:
mount -o udp -t nfs 10.1.1.33:/opt/nfs /opt/test/nfs
Это мгновенно срабатывает, и крепление становится доступным.
Я ничего не сделал с hosts.allow или hosts.deny (оба пустые, что из моего чтения man 5 hosts_access указывает, что доступ будет разрешен).
Что мне здесь не хватает?
Изменить: SELinux разрешен на обоих хостах.
Оказывается, на нашем коммутаторе PowerConnect была включена функция «безопасности», которая нарушала SYN-пакеты NFS с исходными портами <1024 (dos-control tcpflag). Достаточно сказать, что отключение функции решило проблему.
Хотя SELinux разрешает, попробуйте: setsebool -P nfs_export_all_rw 1
Перезапустите rpcbind, nfs и nfslock, а затем exportfs -a