Вопрос или проблема
Мои NFS экспорты доступны через IPv4 для нескольких хостов в моей локальной сети.
Я хочу сделать эти экспорты доступными через IPv6, чтобы я мог подключаться к ним со своего ноутбука, когда я в away. Когда я отсутствую, я могу получить доступ к этим хостам локальной сети через их IPv6-адрес и оттуда выйти на свой ноутбук через его IPv6-адрес.
Я предполагаю, что проблема заключается в конфигурации NFS где-то.
Вот строка из /etc/exports
сервера:
/export/test 2001:123:a:b:c:d:e:f(rw,nohide,insecure,no_subtree_check,async)
где этот IPv6 адрес – это сетевое устройство ноутбука, через которое я могу пинговать с NFS сервера, открыть SSH-сессию…
А вот соответствующая строка из /etc/fstab
клиента:
[2604:123:c:d:e:f]:/export/test /mnt/test nfs nofail,x-systemd.automount,x-systemd.requires=network-online.target,x-systemd.device-ut=10 0 0
Для IPv6-адреса я пробовал [address]
, '[address]'
и просто address
.
Но в любом случае, попытка монтирования возвращает ошибку:
mount.nfs: доступ запрещен сервером при монтировании `address`:/export/test
Один из ответов: используйте “псевдонимы”.
Вместо того чтобы вводить адрес (вся эта возня с синтаксисом), вы определяете его в /etc/hosts. Правильный старомодный способ.
В /etc/hosts вы определяете пару (IPv6) адрес – имя.домен.
Или пару адрес(IPv6) – имя.
Используйте одно и то же имя.домен (или просто имя) для IPv4 и “постоянных” IPv6 адресов в /etc/hosts. IPv6 дружелюбен: в /etc/hosts просто дайте несколько адресов одному (псевдониму) имени.
Ноутбук имеет Wi-Fi и Ethernet? Дайте ВСЕМ “постоянным” адресам одно имя в /etc/hosts! Это решает проблему разных интерфейсов – адресов!
Пример:
/etc/hosts
fdc5:d54e:dca5:0:8db6:d5f5:86d0:6bd9 lause lause.simulacron lause6 lause6wlan
fdc5:d54e:dca5:0:f051:d54e:dca5:cc43 lause lause.simulacron lause6 lause6ether
192.168.71.234 lause lause.simulacron lause4wlan
192.168.72.234 lause lause.simulacron lause4ether
Псевдоним – это не лучшее слово, но оно может отразить суть:
В /etc/hosts у вас не возникает проблем с синтаксисом / обозначением.
Более того, вы можете определить несколько адресов, которые будут проверяться последовательно, например, mount.nfs.
Далее, вы не используете нотацию [fd….] в вашем монтировании. Вы просто используете имя.домен (или просто имя) вместо этого.
Поместите конфигурацию монтирования в /etc/fstab, если она будет использоваться снова позже. Есть еще больше опций на выбор.
Слово о “постоянных” IPv6 адресах:
Статический IP великолепен для IPv4.
Статический IPv6 глупо, в большинстве случаев. Умное решение – НЕ использовать статический IPv6.
Используйте делегирование префиксов
и / или
используйте просто адреса ULA (просто обе вещи параллельно и для обоих интерфейсов!).
Наиболее универсальным решением является сочетание EUI64 + “расширения конфиденциальности”.
Вы можете просто рассчитать ULA (как фиксированный IP!), но другие люди снаружи видят случайные адреса (случайность лучше, чем NAT).
Наличие PD + ULA решает все потребности в конфиденциальности и постоянных, надежных, предсказуемых адресах – в IPv6.
Это сокращенное описание, основанное на моей существующей сети. Оно может содержать ошибки. Или быть специфичным для моего дистрибутива Linux (Ubuntu 20.04). Пожалуйста, дайте мне знать, если что-то не так.
Ответ или решение
Экспорт NFS для клиента IPv6: полное руководство
Ваша задача — обеспечить доступ к экспортам NFS через IPv6 для клиентов, чтобы иметь возможность монтировать их на вашем ноутбуке, находясь вдали от локальной сети. Если вы уже настроили доступ по IPv4 и хотите сделать то же самое для IPv6, вам необходимо внести некоторые изменения в конфигурацию.
Шаг 1: Настройка файла /etc/exports на сервере
На сервере NFS файл /etc/exports
отвечает за определение разрешений для экспортируемых каталогов. Убедитесь, что у вас правильно указаны следующие параметры:
/export/test 2001:123:a:b:c:d:e:f(rw,nohide,insecure,no_subtree_check,async)
Проверьте, что адрес 2001:123:a:b:c:d:e:f действительно соответствует вашему ноутбуку и что он доступен. Для этого выполните команду ping6 2001:123:a:b:c:d:e:f
на сервере NFS. Убедитесь, что ваш ноутбук настроен на использование статического или предсказуемого IPv6-адреса, чтобы обеспечить постоянный доступ.
После внесения изменений в файл убедитесь, что вы обновили экспорты NFS командой:
sudo exportfs -ra
Шаг 2: Настройка клиента для монтирования через /etc/fstab
Для монтирования экспортируемого каталога на клиенте обновите файл /etc/fstab
следующим образом:
[2604:123:c:d:e:f]:/export/test /mnt/test nfs nofail,x-systemd.automount,x-systemd.requires=network-online.target,x-systemd.device-timeout=10 0 0
Обратите внимание, что в данном случае рекомендуется использовать квадратные скобки, чтобы избежать проблем с синтаксисом, когда вы вводите IPv6 адрес. Если это не помогает, рассмотрите использование доменных имен.
Шаг 3: Настройка файла /etc/hosts
Чтобы упростить процесс и избежать проблем с синтаксисом при использовании IPv6-адресов, вы можете определить адреса в файле /etc/hosts
. Например, добавьте следующие строки:
2001:123:a:b:c:d:e:f mylaptop mylaptop.local
После этого, в файле /etc/fstab
вы можете использовать имя, а не полный адрес:
mylaptop:/export/test /mnt/test nfs nofail,x-systemd.automount,x-systemd.requires=network-online.target,x-systemd.device-timeout=10 0 0
Шаг 4: Проверка конфигураций Firewall
Убедитесь, что ваш брандмауэр не блокирует доступ по протоколу NFS. На большинстве Linux-систем с использованием iptables
или ufw
вам нужно убедиться, что порты NFS (обычно 2049 для NFSv4 и другие динамические порты) открыты. Чтобы проверить и при необходимости разрешить доступ, выполните следующие команды:
Для ufw
:
sudo ufw allow from 2001:123:a:b:c:d:e:f to any port nfs
Для iptables
:
sudo iptables -A INPUT -s 2001:123:a:b:c:d:e:f -p tcp --dport 2049 -j ACCEPT
Шаг 5: Проверка и отладка
После настройки рекомендуется проверить функциональность монтирования:
sudo mount -a
Если вы продолжаете получать ошибку "access denied by server while mounting", перепроверьте конфигурации на сервере и клиенте, а также настройки брандмауэра. Также убедитесь в корректности всех адресов.
Заключение
Экспорт NFS для клиентов IPv6 требует корректной настройки как на сервере, так и на клиенте. Убедитесь в наличии необходимых разрешений, правильно задавайте адреса и настраивайте файрволл. Следуя данным рекомендациям, вы сможете получить доступ к своим данным с любого места, используя мощь технологии IPv6.