Насколько я понимаю, клиенты NFSv4 должны немедленно подключиться к службе NFSv4 на сервере, полностью пропуская взаимодействия службы rpcbind portmapper и mountd, но я вижу, что мой клиент RHEL6 всегда сначала связывается со службой rpcbind, чтобы получить порт mountd, получая список экспортировать из mountd, а затем, наконец, подключиться к службе NFSv4. Наблюдается с помощью tcpdump.
Судя по всему (вывод команды монтирования и проверка TCP), когда операция монтирования завершена, клиент и сервер используют NFSv4.
Это происходит даже тогда, когда я делаю все, с чем сталкивался, пытаясь принудительно установить на клиенте только NFSv4. Примеры:
Я совершенно не в себе или что-то не так? Это проблема для меня, потому что клиент NFS настаивает на том, чтобы иметь возможность достичь rpcbind на сервере через UDP, прежде чем он смонтирует любой экспорт NFSv4, и я получаю загадочную потерю пакетов UDP (да, я работаю с сетевым парнем над этот фронт), из-за которого крепления время от времени полностью выходят из строя или просто требуют много времени для завершения.
Я взглянул на источник libtirpc и кое-что увидел в нем, всегда использующем UDP для подключения к RPC portmapper, но я хочу полностью исключить portmapper и mountd сервис из уравнения.
Я попытался отменить регистрацию службы сопоставления портов UDP на сервере NFS с помощью «rpcinfo -d», но это привело к сбою всех монтирований NFS, нацеленных на этот сервер (опять же, клиенты настаивают на том, чтобы сервер rpcbind прослушивал порт 111 UDP). Я также попытался возиться с / etc / netconfig, но безуспешно.
Кто-нибудь сталкивался с таким поведением или знал достаточно о NFSv4, чтобы сказать мне, что у меня нереалистичные ожидания?
Я проследил это до autofs. Он был настроен на использование /etc/auto.net для получения списка экспортов с помощью команды showmount. Команда showmount отвечала за доступ к rpcbind и mountd до того, как монтирование NFS когда-либо происходило, поэтому попытки изменить параметры монтирования не имели никакого эффекта.
Я отредактировал /etc/auto.net, и моя проблема исправлена.
Боковое примечание: использование опций «-hosts» в auto.master, как я видел в разных местах, также приводило к доступам rpcbind и mountd. В итоге я просто установил auto.net в корень всех серверов NFSv4, что, как я понимаю, нормально, если все мои хосты являются NFSv4.