Я провел 3 ночи и часть дня, гугля и перенастраивая серверы домашней сети с двумя серверами nfs vers=3, которые внезапно перестали работать.
Они работали без проблем, используя автомонтирование с 3-4 клиентов. Это непродуктивно, они у меня дома, просто для тестирования или около того, но есть несколько фотографий и фильмов, и так, лежащих на ZFS на одном или другом сервере.
Ничего не сработало внезапно, и никакого прогресса не было достигнуто.. ни rm /etc/default/nfs-* apt-get purge&install, ни различные попытки запустить rpc.mountd или statd и посмотреть его вывод.. Ну, но есть третья машина с сервером nfs3, маршрутизатор с OpenWRT, обслуживающий только USB-ключ. Этот работает без проблем со всех ПК, несмотря на то, что эти два сервера Ubuntu мертвы.. Так что я подозревал обновления Ubuntu. Я обнаружил, что пакет nfs-utils удален несколько месяцев назад.. И я не был уверен, когда он перестал работать.
Симптомы: showmount -e server занимает от 2 до 3 минут, чтобы показать ответ, но ответ правильный. rpcinfo -p server занимает около минуты или больше, показывает правильный вывод. mount.nfs xx:/x/x /mnt/test -o vers=3 завершается через минуту или две с ошибкой. ping или mount samba этих серверов работают без проблем, iperf показывает около 1 гигабита, как и ожидалось (или меньше, но все равно хорошо, когда клиент использует Wi-Fi). telnet на порт portmapper и порт nfs открывает сеанс. Брандмауэр отключен. Даже добавил ALL:lanip в Hosts.allow. - все проблемы касаются только серверов Ubuntu, OpenWrt один отвечает за доли секунды и работает так, как и ожидалось от всех клиентов. Но он не поддерживает nfs4. - один из серверов - 12.04.5 LTS со стеком Trusty HWE, - второй сервер - 14.04 LTS Trusty. Все обновления установлены. Один из них использует сетевое соединение (режим 0) двух интерфейсов, второй — нет.
Причина, без объяснения:
Чтобы сделать длинную историю немного короче, несколько минут назад мне пришла в голову безумная идея попробовать, и я обменял свой новый управляемый коммутатор ZyXel GS1900-8 на старый дешевый (но тоже гигабитный) tplink. И я сошёл с ума, так как мои NFS-серверы в тот момент заработали.
Глядя на коммутатор, я понятия не имею, что с ним не так. Теперь я припоминаю, что я включил LLTP и установил lltpd на всех ПК, просто чтобы повеселиться, увидев их имя в списке портов. И я провел несколько тестов с использованием 803.ad LACP, который не поддерживался старым коммутатором и работает на новом, но я отключил его (вернул в режим 0), так как он избегал WoL, который я использую регулярно и считаю необходимым..
Подскажите, пожалуйста, что проверить, или попытайтесь предположить, в чем может быть причина.. Где искать и какими командами попытаться найти разницу? Мне стало очень любопытно.
решение1
В конце концов, обнаруживается, что управляемые коммутаторы с функцией DoS (отказ в обслуживании) включаются, обнаруживают запросы SYN<1024 portmap и начинают их блокировать. Отключение этой функции полностью решает проблему.
Я не могу обнаружить проблему, кроме как попробовав rpcinfo -p или showmount -e, поскольку при попытке использовать только telnet все порты доступны.
Google нашел общие сообщения, после того как я уже знаю, что искать, напримерhttps://serverfault.com/questions/367107/cant-mount-nfs-share-over-tcp И упоминаются разные марки коммутаторов (мой — ZyXel, их PoweConnect, а также Cisco).
IMHO, с удешевлением и распространением управляемых коммутаторов эта проблема может возникнуть снова и снова, и, возможно, именно она является причиной других проблем с nfs, упомянутых на askubuntu.