Настройка маршрутизации IPv6 в TrueNAS Scale 2026: полное руководство по CLI и веб-интерфейсу | AdminWiki
Timeweb Cloud — сервера, Kubernetes, S3, Terraform. Лучшие цены IaaS.
Попробовать

Настройка маршрутизации IPv6 в TrueNAS Scale 2026: полное руководство по CLI и веб-интерфейсу

03 апреля 2026 13 мин. чтения
Содержание статьи

Настройка маршрутизации IPv6 в TrueNAS Scale — критически важный навык для интеграции вашего хранилища в современные сети. В отличие от IPv4, протокол IPv6 вносит фундаментальные изменения в принципы адресации и обнаружения соседей, что часто приводит к ошибкам при механическом переносе старых конфигураций. Это руководство предоставляет проверенные на практике инструкции для TrueNAS Scale версий 2026 года, охватывающие как безопасную настройку через веб-интерфейс, так и гибкое управление через командную строку. Вы получите готовые решения для добавления статических маршрутов, настройки шлюза и диагностики типичных проблем, что позволит избежать простоев и обеспечить стабильную работу сервисов в сетях с двойным стеком (Dual-Stack) или чисто IPv6 окружении.

Подготовка к настройке IPv6 в TrueNAS Scale: что проверить перед началом

Правильная подготовка исключает большинство проблем, связанных с несовместимостью версий или конфликтами в сетевом окружении. Перед любыми изменениями убедитесь, что ваша среда готова к работе с IPv6.

Первым делом проверьте актуальность вашей системы. Инструкции, актуальные для TrueNAS Scale 2026, могут не работать на более старых выпусках из-за изменений в API или веб-интерфейсе. Убедитесь в совместимости:

  • Веб-интерфейс: Перейдите в System → General. Версия системы указана в верхней части страницы.
  • Командная строка (CLI): Выполните команду midclt call system.info | grep version или cat /etc/version.

Следующий шаг — анализ текущей сетевой конфигурации и окружения IPv6. Выполните базовую диагностику:

  • Определите тип IPv6-адресации в вашей сети: статическая, SLAAC (Stateless Address Autoconfiguration) или DHCPv6. Это можно понять, посмотрев на адреса, назначенные другим узлам в сети, или обратившись к сетевому администратору.
  • Проверьте текущую конфигурацию интерфейсов TrueNAS: ip -6 addr show или ifconfig.
  • Просмотрите таблицу маршрутизации IPv6: ip -6 route show или netstat -rn -f inet6.
  • Проверьте доступность IPv6-сети, выполнив ping до маршрутизатора: ping6 -c 4 fe80::1%eno1 (где fe80::1 — link-local адрес шлюза, а eno1 — ваш интерфейс).

Важнейшее правило безопасности: всегда создавайте резервную копию сетевых настроек перед внесением изменений. В TrueNAS Scale это делается просто:

  • Веб-интерфейс: System → Backup/Restore → Create Backup. Убедитесь, что в конфигурации включены сетевые настройки.
  • Командная строка: Экспортируйте конфигурацию через API: midclt call config.save или создайте полный бэкап системы.

Как проверить версию TrueNAS Scale и сделать бэкап сетевых настроек

Этот этап минимизирует риски и подтверждает актуальность инструкций для вашей системы. Для проверки версии через CLI используйте команду midclt call system.info, которая выведет детальную информацию, включая строку версии. В веб-интерфейсе перейдите в System → General, где версия отображается в разделе «Operating System».

Для резервного копирования конфигурации сети через веб-интерфейс выполните следующие шаги:

  1. Перейдите в System → Backup/Restore.
  2. Нажмите Create Backup.
  3. Введите имя файла бэкапа (например, network_config_pre_ipv6).
  4. Убедитесь, что опция «Include Network Configuration» отмечена.
  5. Нажмите Save. Файл будет сохранен и доступен для скачивания.

Через командную строку вы можете быстро создать резервную копию ключевых сетевых файлов конфигурации:

cp /data/freenas-v1.db /data/freenas-v1.db.backup_ipv6
# Или экспорт через API
midclt call config.save '{"secretseed": false}' > /tmp/truenas_config_backup.json

Эта простая процедура гарантирует возможность быстрого отката в случае, если новая конфигурация IPv6 приведет к потере сетевого доступа.

Ключевые отличия IPv6 от IPv4 в контексте TrueNAS

Понимание фундаментальных различий между IPv4 и IPv6 — залог успешной настройки. Основная ошибка — попытка настроить IPv6 по аналогии с IPv4, что приводит к неработающим маршрутам и недоступности шлюза.

Главное отличие — замена протокола ARP (Address Resolution Protocol) на NDP (Neighbor Discovery Protocol). NDP выполняет функции обнаружения соседей, автоматической конфигурации адресов и определения шлюза по умолчанию через рассылку Router Advertisement (RA) сообщений. Это означает, что в сетях с работающим RA сервер TrueNAS может автоматически получить адрес и шлюз, и явное указание шлюза в настройках интерфейса часто не требуется или даже может вызвать конфликт.

Вторая ключевая концепция — разделение адресов на типы:

  • Link-local адреса (fe80::/10): Формируются автоматически на каждом интерфейсе. Используются для связи только в пределах одного канального уровня (L2 сегмента), например, для общения со шлюзом в этой же подсети. Не маршрутизируются.
  • Global Unicast адреса (2000::/3): Публичные, маршрутизируемые адреса, используемые для глобальной связи. Именно их вы будете указывать в статических маршрутах для удаленных сетей.

Синтаксис также изменился: адреса длиннее, используется шестнадцатеричная система счисления с двоеточиями в качестве разделителей. Шлюз по умолчанию в IPv6 часто указывается как link-local адрес маршрутизатора, и при его ручном задании необходимо указывать и интерфейс (например, fe80::1%eno1).

NDP против ARP: почему шлюз по умолчанию настраивается иначе

В IPv4 шлюз по умолчанию всегда указывается явно в настройках интерфейса (например, 192.168.1.1). В IPv6 этот процесс часто делегирован протоколу NDP. Маршрутизатор периодически отправляет RA-сообщения, в которых, среди прочего, объявляет себя шлюзом по умолчанию для сегмента сети.

Практический вывод для администратора TrueNAS: если в вашей сети работает RA (типично для домашних сетей и многих корпоративных), поле «IPv6 Default Route» в настройках интерфейса TrueNAS следует оставить пустым. Система автоматически добавит шлюз, полученный через RA, в таблицу маршрутизации. Явное указание шлюза в этом поле может создать дублирующий маршрут и привести к нестабильной маршрутизации.

Явный шлюз требуется только в сетях со статической адресацией, где RA отключен или не содержит информации о шлюзе. В этом случае вы указываете его вручную, часто используя link-local адрес маршрутизатора с указанием интерфейса.

Путаница между этими типами адресов — частая причина ошибок. Запомните простое правило:

  • Для маршрутов на удаленные сети в поле «Gateway» формы добавления статического маршрута или в команде ip -6 route add указывается global unicast адрес следующего прыжка (например, 2001:db8:1::1).
  • Сам шлюз по умолчанию (если его нужно указать явно) часто задается как link-local адрес (например, fe80::1). Однако при добавлении такого маршрута через CLI или в некоторых конфигурационных файлах необходимо явно указать интерфейс, к которому привязан этот адрес: fe80::1%eno1.

В веб-интерфейсе TrueNAS Scale 2026 при добавлении статического маршрута, если шлюз является link-local адресом, интерфейс определяется автоматически на основе выбранного сетевого интерфейса, к которому привязан маршрут.

Настройка статической маршрутизации IPv6 через веб-интерфейс (Network → Interfaces)

Веб-интерфейс — самый безопасный и наглядный способ настройки для большинства администраторов. Все изменения, внесенные через GUI, сохраняются в конфигурационной базе данных и применяются автоматически после перезагрузки сети.

Пошаговая инструкция:

  1. Перейдите в Network → Interfaces.
  2. Выберите интерфейс, который будет работать с IPv6 (например, eno1), и нажмите на него для редактирования.
  3. В разделе «IP Address» вы можете добавить статический IPv6-адрес. Нажмите Add и введите адрес с маской (например, 2001:db8:100::10/64).
  4. Ключевой момент — поле «IPv6 Default Route»:
    • Оставьте его пустым, если ваш маршрутизатор отправляет RA-сообщения с информацией о шлюзе (типичный сценарий).
    • Заполните его только если RA отключен и вам нужно указать шлюз явно. Обычно это link-local адрес маршрутизатора (например, fe80::1).
  5. Прокрутите вниз до раздела Static Routes и нажмите Add для добавления статического маршрута.
  6. Сохраните настройки и примените их. Система предупредит о возможном разрыве сетевого соединения.

Добавление статического маршрута IPv6: разбор полей и типичных ошибок

При заполнении формы добавления статического маршрута обратите внимание на следующие поля:

  • Destination: Сеть назначения в формате CIDR. Пример: 2001:db8:200::/48.
  • Gateway: IPv6-адрес следующего маршрутизатора (следующего прыжка). Это должен быть адрес, достижимый в непосредственно подключенной сети. Типичная ошибка №1: указание link-local адреса шлюза (fe80::1) без контекста. В веб-интерфейсе TrueNAS интерфейс определяется автоматически, но если вы копируете команду для CLI, не забудьте добавить идентификатор интерфейса: fe80::1%eno1.
  • Description: Описание маршрута для удобства администрирования.

Типичная ошибка №2: попытка добавить маршрут по умолчанию (::/0) в этом разделе. Маршрут по умолчанию настраивается не здесь, а в основном разделе редактирования интерфейса (поле «IPv6 Default Route») или определяется автоматически через RA. Добавление ::/0 в «Static Routes» может привести к конфликту.

Пример корректной настройки для корпоративного сценария: необходимо направить трафик в подсеть 2001:db8:fab1::/64 через маршрутизатор с адресом 2001:db8:100::1.
Destination: 2001:db8:fab1::/64
Gateway: 2001:db8:100::1
Description: Route to Development VLAN

Настройка статической маршрутизации IPv6 через командную строку (CLI)

Использование командной строки дает больше контроля, подходит для автоматизации и является спасательным кругом, когда веб-интерфейс недоступен из-за ошибочной сетевой конфигурации. Доступ к CLI осуществляется через встроенную Shell в веб-интерфейсе (System → Shell) или по SSH.

Сначала всегда проверяйте текущее состояние:

  • Таблица маршрутизации IPv6: ip -6 route show или netstat -rn -f inet6.
  • Адреса на интерфейсах: ip -6 addr show dev eno1.

Для временного добавления маршрута (действует до перезагрузки или перезапуска сети) используйте утилиту ip из пакета iproute2:

ip -6 route add 2001:db8:200::/48 via 2001:db8:100::1 dev eno1

Для добавления маршрута по умолчанию через link-local адрес шлюза:

ip -6 route add default via fe80::1 dev eno1

Эти команды идеальны для тестирования конфигурации перед ее постоянным применением.

Команда ip route add и midclt call: в чем разница и когда что использовать

Критически важно понимать разницу между этими двумя подходами:

  • ip -6 route add: Изменяет состояние ядра Linux напрямую. Маршрут добавляется в таблицу маршрутизации немедленно, но не сохраняется после перезагрузки системы или службы сети. Используется исключительно для тестирования и отладки.
  • midclt call: Это вызов внутреннего API TrueNAS. Изменения, внесенные через midclt, записываются в конфигурационную базу данных (/data/freenas-v1.db) и становятся постоянными. Они будут повторно применены при каждой загрузке системы. Это правильный способ для production-среды.

Пример добавления постоянного статического маршрута через API TrueNAS (midclt) более сложен, так как требует изменения конфигурации интерфейса целиком. Более безопасный и рекомендуемый способ — сначала протестировать маршрут командой ip -6 route add, убедиться в его работоспособности с помощью ping6 и traceroute6, а затем добавить этот же маршрут через веб-интерфейс для постоянного хранения.

Для автоматизации можно использовать следующий Bash-скрипт, который сначала проверяет доступность шлюза, а затем добавляет временный маршрут:

#!/bin/bash
DEST_NET="2001:db8:200::/48"
NEXT_HOP="2001:db8:100::1"
INTERFACE="eno1"

# Проверка доступности шлюза
if ping6 -c 2 -I $INTERFACE $NEXT_HOP &> /dev/null; then
    echo "Шлюз $NEXT_HOP доступен. Добавляю маршрут."
    ip -6 route add $DEST_NET via $NEXT_HOP dev $INTERFACE
    if [ $? -eq 0 ]; then
        echo "Маршрут успешно добавлен (временно)."
        ip -6 route show | grep "$DEST_NET"
    else
        echo "Ошибка при добавлении маршрута."
    fi
else
    echo "Ошибка: шлюз $NEXT_HOP недоступен. Проверьте конфигурацию IPv6 на интерфейсе $INTERFACE."
fi

Диагностика и решение типичных проблем маршрутизации IPv6

Даже при точном следовании инструкциям могут возникнуть проблемы. Умение их быстро диагностировать — ключевой навык. Используйте систематический подход.

Последовательность диагностики:

  1. Проверка адреса на интерфейсе: ip -6 addr show dev eno1. Убедитесь, что интерфейс имеет корректный global unicast или link-local адрес.
  2. Проверка доступности шлюза: ping6 -c 4 -I eno1 fe80::1%eno1 (для link-local) или ping6 -c 4 2001:db8:100::1. Отсутствие ответа указывает на проблему на канальном уровне (L2) или с NDP.
  3. Проверка таблицы маршрутизации: ip -6 route show. Ищите нужный маршрут или маршрут по умолчанию.
  4. Трассировка пути: traceroute6 2001:db8:200::1. Покажет, на каком прыжке обрывается связь.

Использование ping6, traceroute6 и ip -6 route для поиска узких мест

Эти три инструмента — основа диагностики.

  • ping6 -I <интерфейс> <адрес>: Ключевой параметр -I (интерфейс) обязателен для проверки link-local адресов и для указания, с какого интерфейса отправлять пакеты, если у системы несколько адресов. Пример: ping6 -I eno1 fe80::1%eno1.
  • traceroute6 <удаленный_хост>: Показывает путь пакетов. Если трассировка обрывается на первом же прыжке (вашем шлюзе), проблема в локальной конфигурации или NDP. Если проходит дальше, но не доходит до цели, проблема в маршрутизации где-то выше по цепочке.
  • ip -6 route get <адрес_назначения>: Пожалуй, самая полезная команда. Она показывает, по какому именно маршруту ядро отправит пакет до указанного адреса, какой шлюз и интерфейс будут использованы. Пример: ip -6 route get 2001:db8:200::10.

Кейс «Нет связи через шлюз»:
Причины: 1) Неверно указан адрес шлюза. 2) На маршрутизаторе заблокирован ICMPv6 (это нарушает работу NDP). 3) На интерфейсе TrueNAS отключен или не работает NDP.
Решение: Проверьте таблицу соседей NDP: ndp -an | grep eno1. В ней должен быть запись для адреса вашего шлюза со статусом «REACHABLE» или «STALE». Если записи нет, проверьте настройки фаервола на маршрутизаторе и убедитесь, что он отправляет RA или отвечает на запросы NDP.

Откат ошибочной конфигурации и восстановление доступа

Если после настройки вы потеряли доступ к веб-интерфейсу и SSH, действуйте по плану:

  1. Восстановление через консоль: Если у вас есть физический или IPMI-доступ к серверу, войдите в консоль. Удалите ошибочные маршруты:
    ip -6 route del 2001:db8:200::/48 via 2001:db8:100::1
    ip -6 route del default via fe80::1
    
  2. Сброс настроек интерфейса: В консоли TrueNAS можно временно отключить и снова включить интерфейс, чтобы сбросить все временные настройки:
    ifconfig eno1 down && ifconfig eno1 up
    
    После этого должен восстановиться доступ по IPv4 или автоматически полученный IPv6.
  3. Восстановление из бэкапа: Если вы создали бэкап конфигурации через веб-интерфейс, и у вас есть доступ к системе (например, через консоль), вы можете загрузить его обратно, используя утилиту midclt, предварительно скопировав файл на сервер. Однако проще, имея консольный доступ, просто удалить проблемные маршруты через ip -6 route del и затем зайти в веб-интерфейс для корректировки постоянных настроек.

Интеграция с сетевой инфраструктурой: корпоративная и домашняя среда

Настройка TrueNAS не происходит в вакууме. Ее необходимо согласовать с параметрами вашей сетевой инфраструктуры.

Сценарий для корпоративной сети со статической адресацией:
Скорее всего, ваши сетевые инженеры предоставят вам блок статических адресов IPv6 (например, /64 или /48), адрес шлюза по умолчанию и, возможно, список статических маршрутов для внутренних сетей. В этом случае:

  1. В настройках интерфейса TrueNAS укажите предоставленный статический адрес (например, 2001:db8:100::10/64).
  2. В поле «IPv6 Default Route» укажите предоставленный адрес шлюза (часто это link-local адрес, например, fe80::1).
  3. В разделе «Static Routes» добавьте все предоставленные маршруты до внутренних подсетей.
  4. Согласуйте настройки фаервола на корпоративном маршрутизаторе: должен быть разрешен протокол ICMPv6 для корректной работы NDP.

Сценарий для домашней сети или сети с SLAAC/DHCPv6:
Большинство домашних роутеров и многие корпоративные разворачивают IPv6 с использованием SLAAC или DHCPv6. В этом случае настройка TrueNAS максимально проста:

  1. В настройках интерфейса оставьте поле «IP Address» пустым для IPv6 (или удалите все статические записи).
  2. Поле «IPv6 Default Route» также оставьте пустым.
  3. Установите флажок «Enable DHCPv6» (если используется DHCPv6) или убедитесь, что система настроена на автоматическую конфигурацию (это поведение по умолчанию при получении RA).
  4. После сохранения TrueNAS автоматически получит адрес и шлюз от маршрутизатора. Проверьте это командами ip -6 addr show и ip -6 route show.
В этом сценарии добавление статических маршрутов обычно не требуется, так как шлюз по умолчанию знает пути ко всем сетям.

Автоматизация настройки IPv6-маршрутов для DevOps

Для управления парком серверов TrueNAS или включения настройки сети в процесс автоматического развертывания (Infrastructure as Code) необходимы инструменты автоматизации.

Использование Ansible: Сообщество разрабатывает коллекцию community.truenas для управления TrueNAS через API. Пример playbook для добавления статического IPv6-адреса и маршрута (концептуально, так как конкретные модули могут меняться):

---
- name: Configure IPv6 on TrueNAS Scale
  hosts: truenas_servers
  tasks:
    - name: Ensure static IPv6 address is present on interface
      community.truenas.truenas_interface:
        state: present
        name: eno1
        ipv6_addresses:
          - address: "2001:db8:100::10/64"
        ipv6_default_route: "fe80::1"
        # Добавление статического маршрута может потребовать отдельного модуля
        # или выполнения через команду midclt

Использование CLI API (midclt) в Bash-скриптах: Для массового применения конфигурации можно написать скрипт, который подключается к нескольким серверам по SSH и выполняет API-вызовы. Пример фрагмента скрипта, который добавляет статический маршрут через midclt (требует глубокого знания структуры API TrueNAS):

#!/bin/bash
SERVER_LIST=("truenas1" "truenas2")
for SERVER in "${SERVER_LIST[@]}"; do
    ssh admin@$SERVER << 'EOF'
        # Команда для изменения конфигурации интерфейса через midclt
        # Внимание: Это пример, реальная команда зависит от структуры API.
        # Сначала нужно получить текущую конфигурцию интерфейса, модифицировать ее и отправить обратно.
        CONFIG=$(midclt call interface.query | jq '.[] | select(.name=="eno1")')
        # ... модификация CONFIG для добавления маршрута ...
        # midclt call interface.update $ID "$CONFIG"
        echo "Конфигурация на $SERVER обновлена."
EOF
done

Более надежный подход для автоматизации — использовать официальный TrueNAS API (RESTful) напрямую из Python, Go или другого языка программирования, что позволяет создавать сложные инструменты управления конфигурацией. Однако для большинства задач начать стоит с тестирования команд через веб-интерфейс и CLI, а затем переноса рабочей последовательности действий в скрипты или playbook Ansible.

Для комплексного управления сетевыми сервисами в контейнеризированной среде рекомендуем ознакомиться с нашим руководством по продвинутому Docker, где подробно разбираются сетевые модели, включая bridge и overlay, что может быть полезно при развертывании служб на самом TrueNAS. Если же вы рассматриваете оркестрацию нескольких нод, материал про Docker Swarm 2026 предлагает простую альтернативу Kubernetes.

Поделиться:
Сохранить гайд? В закладки браузера