Клиент RHEL6 NFSv4 действует как NFSv3?

Клиент RHEL6 NFSv4 действует как NFSv3?

Насколько я понимаю, клиенты NFSv4 должны немедленно подключаться к службе NFSv4 на сервере, полностью пропуская взаимодействия rpcbind portmapper и mountd, но я вижу, что мой клиент RHEL6 всегда сначала обращается к службе rpcbind, чтобы получить порт mountd, получает список экспорта из mountd, а затем, наконец, подключается к службе NFSv4. Наблюдается с помощью tcpdump.

По всем признакам (вывод команды mount и проверка TCP), после завершения операции монтирования клиент и сервер используют NFSv4.

Это происходит даже тогда, когда я делаю все, что только могу, чтобы принудительно установить на клиенте только NFSv4. Примеры:

  • Установка Nfsvers=4 в /etc/nfsmount.conf
  • Явное монтирование с опцией vers=4
  • Явно укажите порт NFS (через команду mount и в nfsmount.conf)

Я совсем не прав или что-то не так? Для меня это проблема, потому что клиент NFS настаивает на возможности доступа к rpcbind на сервере через UDP, прежде чем он смонтирует какие-либо экспорты NFSv4, и я получаю загадочную потерю пакетов UDP (да, я работаю с сетевым парнем по этому вопросу), из-за чего монтирования время от времени полностью падают или просто долго завершаются.

Я посмотрел исходный код libtirpc и увидел, что он всегда использует UDP для подключения к RPC portmapper, но я хочу полностью исключить portmapper и службу mountd из уравнения.

Я попытался отменить регистрацию службы UDP portmapper на сервере NFS с помощью "rpcinfo -d", но это привело к тому, что все монтирования NFS, нацеленные на этот сервер, терпят неудачу (опять же клиенты настаивают на том, чтобы сервер прослушивал порт UDP 111 с помощью rpcbind). Я также попытался повозиться с /etc/netconfig, но безуспешно.

Кто-нибудь сталкивался с таким поведением или знает достаточно о NFSv4, чтобы сказать мне, что у меня нереалистичные ожидания?

решение1

Я проследил это до autofs. Он был настроен на использование /etc/auto.net для получения списка экспортов с помощью команды showmount. Команда showmount отвечала за доступ к rpcbind и mountd до того, как произошло монтирование NFS, поэтому попытки изменить параметры монтирования не имели никакого эффекта.

Я исправил /etc/auto.net, и проблема устранена.

Примечание: использование опций "-hosts" в auto.master, как я видел в разных местах, также приводило к доступам rpcbind и mountd. В итоге я просто заставил auto.net смонтировать корень всех серверов NFSv4, что, как я понимаю, нормально, если предположить, что все мои хосты — NFSv4.

Связанный контент