Вопрос или проблема
У меня есть машины с 24.04.1 LTS, полностью обновленные. Я использую Avahi/mdns для разрешения имен/обнаружения и DHCP от маршрутизатора моего провайдера как по IPV4, так и по IPV6. NFS-сервер и клиент настроены на использование NFS V4. Все работает хорошо, кроме ™ для монтирования NFS с использованием IPV6.
Когда я пытаюсь смонтировать общий ресурс nfs на своем клиенте, используя IPV6-адреса, я получаю:
# mount -t nfs -vvvv server.local:/home/user /mnt
mount.nfs: тайм-аут установлен на Вс Дек 1 17:47:27 2024
mount.nfs: пробую текстовые параметры 'vers=4.2,addr=ivp6serveraddress%3,clientaddr=<IPV6-client-addr>:6070'
mount.nfs: mount(2): Неверный аргумент
mount.nfs: пробую текстовые параметры 'vers=4,minorversion=1,addr=ivp6serveraddress%3,clientaddr=<IPV6-client-addr>:6070'
mount.nfs: mount(2): Неверный аргумент
mount.nfs: пробую текстовые параметры 'vers=4,addr=ivp6serveraddress%3,clientaddr=<IPV6-client-addr>:6070'
mount.nfs: mount(2): Неверный аргумент
mount.nfs: пробую текстовые параметры 'addr=ivp6serveraddress%3'
mount.nfs: prog 100003, пробую vers=3, prot=6
mount.nfs: пробую ivp6serveraddress%3 prog 100003 vers 3 prot TCP port 2049
mount.nfs: prog 100005, пробую vers=3, prot=17
mount.nfs: portmap query retrying: RPC: Время ожидания истекло
mount.nfs: prog 100005, пробую vers=3, prot=6
mount.nfs: пробую ivp6serveraddress%3 prog 100005 vers 3 prot TCP port 60349
mount.nfs: portmap query failed: RPC: Ошибка удаленной системы - Время ожидания истекло
mount.nfs: пробую текстовые параметры 'addr=serveurIPV4Addr'
mount.nfs: prog 100003, пробую vers=3, prot=6
mount.nfs: пробую serveurIPV4Addr prog 100003 vers 3 prot TCP port 2049
mount.nfs: prog 100005, пробую vers=3, prot=17
mount.nfs: portmap query retrying: RPC: Время ожидания истекло
mount.nfs: prog 100005, пробую vers=3, prot=6
mount.nfs: пробую serveurIPV4Addr prog 100005 vers 3 prot TCP port 36855
mount.nfs: portmap query failed: RPC: Ошибка удаленной системы - Время ожидания истекло
mount.nfs: был указан неверный параметр монтирования для /mnt
Когда я пытаюсь использовать IPV4, монтирование происходит мгновенно под /mnt. Сначала я думал, что это проблема UFW на стороне сервера, но поведение такое же, даже при отключенном UFW.
Мой файл exports на сервере дает:
# exportfs
/home/user 2xxx:xxxx:xxxx:xxxx::/64
/home/user 192.168.0.0/24
Я потратил много времени, пытаясь отладить это, но так как меня не обучали IPV6 перед выходом на пенсию (я слишком стар), я не могу найти, что неправильно/что делать, чтобы это работало. Поэтому любая помощь будет оценена. Хорошего и светлого дня!
Я не很熟悉 NTS или что-то подобное, но вы указываете адрес в квадратных скобках? например, [2606:4700:4700::1111]:53?
Ответ или решение
Проблема с монтированием NFS через IPv6 может быть вызвана несколькими факторами. В данном случае, мы имеем систему, работающую на Ubuntu 24.04.1 LTS, где вы используете Avahi/mdns для разрешения имен и DHCP от маршрутизатора вашего интернет-провайдера. Это создает некоторые нюансы, которые необходимо учитывать при настройке NFS с поддержкой IPv6.
1. Проверка конфигурации NFS
Для начала убедитесь, что на сервере правильно настроен NFS. Файл экспорта /etc/exports
выглядит следующим образом:
/home/user 2xxx:xxxx:xxxx:xxxx::/64
/home/user 192.168.0.0/24
Важно убедиться, что формат адреса IPv6 корректен. Для монтирования через IPv6 убедитесь, что адрес указан без ошибок и соответствует формату. Если ваш адрес включает двоеточия, рекомендуется использовать квадратные скобки:
mount -t nfs [2xxx:xxxx:xxxx:xxxx::]:/home/user /mnt
2. Проверка Dнфвсшшн
Проверьте настройки сети на обоих системах. Выполните команду ip a
на обеих машинах для проверки настройки IPv6. Убедитесь, что ваши адреса правильно настроены и что обе машины могут "видеть" друг друга по IPv6. Если вам нужно протестировать соединение, вы можете использовать команду ping6
:
ping6 2xxx:xxxx:xxxx:xxxx::
3. Проверка службы NFS и portmap
Убедитесь, что службы nfs-server
и rpcbind
(или portmap
) работают на сервере:
systemctl status nfs-server
systemctl status rpcbind
Если они не запущены, выполните команду для их запуска:
sudo systemctl start rpcbind
sudo systemctl start nfs-server
4. Проверка брандмауэра
Поскольку вы уже проверили настройки UFW (Uncomplicated Firewall) на сервере, убедитесь, что необходимые порты для NFS открыты. По умолчанию NFS использует следующие порты:
- TCP 2049 для NFS
- TCP/UDP 111 для rpcbind
Вы можете временно отключить UFW для тестирования, но помните о безопасности. Чтобы проверить, что порты открыты, используйте команду:
sudo ufw status
Если у вас есть другой брандмауэр или маршрутизатор, убедитесь, что он не блокирует необходимые порты.
5. Логи системы
Если после всех вышеперечисленных шагов проблема сохраняется, проверьте системные логи для получения дополнительной информации:
journalctl -xe
Здесь вы можете найти записи, которые могут указать на причины, по которым монтирование через IPv6 не работает.
Заключение
Работа NFS через IPv6 может иметь свои специфические нюансы, и важно убедиться, что все настройки выполнены правильно. Последовательно пройдите через вышеуказанные шаги, обращая внимание на детали, и, вероятно, вы сможете решить возникшую проблему. Если у вас возникнут дополнительные вопросы или потребуется дополнительная помощь, пожалуйста, не стесняйтесь обращаться за поддержкой. Желаю вам удачи в настройке вашей системы!