Введение: зачем нужна маршрутизация в TrueNAS
TrueNAS отдаёт данные по SMB, NFS и iSCSI, и доступность этих сервисов целиком зависит от сети. Пока NAS стоит в одной подсети с клиентами, хватает одного IP и одного шлюза. Как только появляется вторая подсеть, отдельный сегмент для разработки, VLAN для бэкапов или изолированная сеть управления, схема перестаёт работать: у интерфейса NAS просто нет адреса в той сети, откуда пришёл запрос, и пакет до хранилища не доходит.
Решаются такие задачи тремя инструментами: несколькими сетевыми интерфейсами по одному на подсеть, корректно выбранным шлюзом по умолчанию и статическими маршрутами к сетям, которые подключены не напрямую. Дальше разберём каждый шаг по порядку, от добавления интерфейса в веб-интерфейсе до диагностики ситуации, когда после смены настроек NAS перестал отвечать.
Сразу о главном риске. Любое изменение IP-адреса, маски или шлюза на интерфейсе управления может оборвать текущую сессию Web UI. Перед правками убедитесь, что у вас есть доступ к физической консоли или IPMI/KVM, и сохраните резервную копию конфигурации. Если такой возможности нет, переносите изменения в окно обслуживания.
Основы маршрутизации в TrueNAS: интерфейсы, шлюзы, маршруты
Четыре сущности описывают всю сетевую конфигурацию NAS.
- Сетевой интерфейс - точка подключения к сети. В TrueNAS это физический порт (enp3s0, em0), VLAN-интерфейс поверх него, LAGG для агрегации каналов или мост (bridge). Интерфейс получает имя, состояние up или down и набор адресов.
- IP-адрес и маска подсети - адрес интерфейса и границы локального сегмента. Маска /24 означает, что NAS считает локальными адреса 192.168.1.0-192.168.1.255 и общается с ними напрямую, без маршрутизатора.
- Шлюз по умолчанию - адрес маршрутизатора, которому NAS отдаёт весь трафик к сетям, не описанным в таблице маршрутизации. Он должен находиться в той же подсети, что и один из интерфейсов NAS.
- Статический маршрут - вручную заданное правило вида "сеть назначения плюс шлюз". Пример: сеть 192.168.2.0/24 доступна через роутер 10.0.0.1.
Логика принятия решения проста. NAS смотрит на адрес назначения, сравнивает его со своими подсетями и таблицей маршрутов: при совпадении пакет уходит напрямую или через указанный шлюз, при отсутствии совпадений пакет идёт на шлюз по умолчанию. Отсюда практический вывод: неверный шлюз или отсутствующий маршрут ломает связь с сетями, которые не подключены к NAS напрямую.
Различия между редакциями касаются команд и внутреннего устройства, но не логики. TrueNAS CORE построен на FreeBSD, SCALE на Linux, поэтому диагностика в CORE идёт через ifconfig, netstat -rn и route, а в SCALE через ip addr, ip route и ss. Сетевые настройки в обеих версиях задаются через веб-интерфейс или Console Setup menu, а не ручной правкой системных файлов: официальная документация прямо рекомендует использовать Web UI, поскольку он содержит защитные механизмы, предотвращающие нарушение сетевого доступа к TrueNAS.
Названия пунктов меню и состав диалогов отличаются между версиями TrueNAS, поэтому ориентируйтесь на свою сборку, а схемы проверяйте на тестовом экземпляре до работы с продуктивным хранилищем.
Настройка сетевых интерфейсов в TrueNAS
Добавление и настройка интерфейса через веб-интерфейс
Порядок действий в Web UI:
- Откройте Network и перейдите на вкладку Interfaces. Здесь перечислены все существующие интерфейсы с адресами и состоянием.
- Нажмите Add, чтобы создать новый интерфейс.
- Укажите Type: Physical для физического порта, VLAN для тегированного сегмента, LAGG для агрегации, Bridge для объединения портов.
- В поле Name выберите порт, например enp3s0, или введите имя виртуального интерфейса.
- Задайте адрес: IP Address (например, 10.0.0.10) и Netmask или префикс /24. DHCP для серверного интерфейса отключают и закрепляют адрес статически.
- Поле Gateway заполняйте только для того интерфейса, через который должен идти трафик в другие сети. Для второго и последующих интерфейсов его оставляют пустым.
- Сохраните изменения кнопкой Save, затем примените их.
В SCALE при сохранении сетевых настроек изменения не применяются сразу: включается тестовый режим, защищающий от потери доступа к серверу. На странице появляются кнопки Test Changes и Revert Changes; после нажатия Test Changes на экране сетевой конфигурации запускается обратный отсчёт, и если за 60 секунд не подтвердить настройки кнопкой Save Changes, система автоматически вернёт прежнюю конфигурацию (например, обратно к DHCP, если выполнялся переход от DHCP к статическому IP). Это защита от потери доступа, но полагаться на неё стоит только при наличии консоли: при смене адреса интерфейса управления текущая вкладка Web UI может зависнуть на старом IP.
Типовая схема для NAS с двумя ролями выглядит так:
Interface 1 (management): enp3s0, 192.168.1.10/24, Gateway 192.168.1.1 Interface 2 (data): enp4s0, 10.0.0.10/24, Gateway не указан
Клиенты офисной сети обращаются к 192.168.1.10, серверы в сети данных к 10.0.0.10. Такой вариант исключает конфликт двух шлюзов по умолчанию и оставляет один предсказуемый путь наружу. Настройка интерфейсов через API повторяет шаги Web UI и удобна, когда конфигурацию нужно разворачивать скриптом на нескольких системах.
Настройка интерфейса через командную строку
CLI в TrueNAS нужен для диагностики и временных правок, когда Web UI недоступен. В SCALE (Linux) используются стандартные команды:
ip addr add 10.0.0.10/24 dev enp4s0 ip link set enp4s0 up ip addr show enp4s0
В CORE (FreeBSD) то же действие выполняется так:
ifconfig em1 10.0.0.10 netmask 255.255.255.0 ifconfig em1 up ifconfig em1
Ключевое ограничение: команды ip и ifconfig меняют состояние ядра, но не конфигурацию TrueNAS. После перезагрузки, а в SCALE часто и после применения настроек через Web UI, такие адреса исчезнут. Постоянные изменения вносите через Web UI, API или Console Setup menu, а CLI оставляйте для проверки связности на время работ. Ручная правка системных файлов не является штатным способом настройки: конфигурация управляется через Web UI и Console Setup menu, а защитные механизмы применения настроек рассчитаны именно на этот путь.
Выбор и настройка шлюза по умолчанию
Шлюз по умолчанию в TrueNAS задаётся в глобальной конфигурации сети, а не в настройках отдельного интерфейса. В Console Setup menu для этого служит пункт Configure network settings, а настроенные параметры отображаются в виджете Global Configuration на экране Network веб-интерфейса. Действует правило: маршрут по умолчанию в системе один. Если указать шлюз на двух интерфейсах, поведение выбора пути становится непредсказуемым: ответы могут уходить не через тот интерфейс, откуда пришёл запрос, а межсетевые экраны отбросят такие пакеты как не относящиеся к известной сессии.
Практическое правило выбора: шлюз ставьте на интерфейс, через который идёт основной трафик, администрирование, репликацию, обновления. Для второго интерфейса шлюз не указывайте, а нужные сети описывайте статическими маршрутами.
Пример: NAS имеет адреса 192.168.1.10/24 и 10.0.0.10/24, при этом администрирование и обновления идут из офисной сети 192.168.1.0/24. Шлюз по умолчанию ставят 192.168.1.1, а доступ к сети 10.0.0.0/24 обеспечивает подключённый интерфейс, поскольку эта сеть для NAS локальная.
Отдельно учитывайте ограничение: несколько интерфейсов одного TrueNAS не могут принадлежать одной подсети. Если нужно несколько адресов в одном сегменте, объединяйте интерфейсы через link aggregation (bond) или сетевой мост либо назначайте несколько статических IP одному интерфейсу через алиасы.
При переходе от DHCP к статическому IP сначала убедитесь, что текущий шлюз по умолчанию и серверы имён работают с новым адресом, и добавьте новый шлюз по умолчанию и DNS-серверы в глобальную конфигурацию до смены адреса интерфейса, чтобы успеть проверить изменение.
Проверка текущей таблицы маршрутов:
SCALE: ip route CORE: netstat -rn
В выводе ищите строку вида default via 192.168.1.1 dev enp3s0. Если default-строк больше одной, конфигурацию приводят к одному шлюзу. Выборочная маршрутизация по источнику (policy routing) в веб-интерфейсе не настраивается: если она действительно нужна, планируйте её отдельно и учитывайте, что такие правила живут вне штатной конфигурации и могут исчезнуть при обновлении системы.
Настройка статических маршрутов в TrueNAS
Статический маршрут нужен, когда клиентская подсеть не подключена к NAS напрямую. Пример: NAS находится в 10.0.0.0/24, а к хранилищу должны ходить машины из 192.168.2.0/24, и трафик между сетями проходит через роутер 10.0.0.1. Без маршрута NAS отправит ответ на шлюз по умолчанию, и если тот не знает обратного пути, соединение не установится.
Добавление статического маршрута через веб-интерфейс
- Откройте Network и вкладку Static Routes.
- Нажмите Add.
- В поле Destination укажите сеть назначения с маской: 192.168.2.0/24.
- В поле Gateway укажите адрес маршрутизатора, который доступен из сети NAS: 10.0.0.1. Этот адрес должен лежать в подсети одного из интерфейсов, иначе маршрут не заработает.
- Заполните Description, чтобы через полгода было понятно назначение записи.
- Сохраните и примените изменения.
Статические маршруты в TrueNAS добавляются как через веб-интерфейс, так и через Console Setup menu (пункт Configure static routes). Записи, созданные через Web UI, хранятся в конфигурации системы. Проверить маршрут можно в том же разделе Web UI или командой ip route в SCALE и netstat -rn в CORE. Сценарии связи между сегментами и проверку маршрутов разбирает отдельное руководство по статическим маршрутам в TrueNAS.
Добавление статического маршрута через командную строку
Для SCALE (Linux):
ip route add 192.168.2.0/24 via 10.0.0.1 ip route show
Для CORE (FreeBSD):
route add -net 192.168.2.0/24 10.0.0.1 netstat -rn
Такие команды меняют состояние ядра, но не конфигурацию TrueNAS, поэтому для постоянных правил используйте раздел Static Routes в Web UI или Console Setup menu: там записи хранятся в конфигурации системы. CLI-команды применяйте для проверки гипотезы: если маршрут через ip route add решил задачу, значит адрес шлюза и сеть назначения указаны верно, и запись можно переносить в Web UI.
Конфигурация нескольких сетевых интерфейсов для доступа из разных подсетей
Схема с двумя интерфейсами закрывает большинство задач: NAS получает адрес в каждой нужной подсети, и клиенты обращаются к тому адресу, который доступен им напрямую.
enp3s0: 192.168.1.10/24, Gateway 192.168.1.1 (управление) enp4s0: 10.0.0.10/24, Gateway не указан (данные)
Три условия, без которых схема разваливается.
- Разные подсети на интерфейсах. Несколько интерфейсов одного TrueNAS не могут быть членами одной подсети. Если нужен второй адрес в той же подсети, используйте алиас на существующем интерфейсе, bond или мост.
- Один шлюз по умолчанию. Об этом сказано выше: несколько default-маршрутов приводят к асимметричной маршрутизации.
- Обратный маршрут на роутерах. Если подсети изолированы, администратор каждого сегмента должен знать путь к адресам NAS. Иначе запрос дойдёт, а ответ вернётся не туда.
Асимметричная маршрутизация - самая частая причина странных сбоев: ping проходит, а SMB или NFS отваливается по таймауту. Пакет приходит через enp4s0, ответ уходит через шлюз на enp3s0, и клиентский или промежуточный firewall отбрасывает его. Лечится либо единым шлюзом, либо корректными маршрутами на всех промежуточных узлах.
Если сегментов больше двух, не обязательно добавлять физические порты. На одном интерфейсе поднимают VLAN-подынтерфейсы, а поверх них мосты для виртуальных машин и контейнеров. Пошаговая схема с интерфейсами, мостами и правилами фильтрации трафика разобрана в руководстве по маршрутизации между VLAN в TrueNAS Scale.
Проверка доступности NAS из клиентских сетей
Проверку ведите по цепочке: клиент, маршрутизатор, NAS. Так проще найти звено, где теряется пакет.
- С клиента. ping 10.0.0.10 из сети 192.168.2.0/24. Если адрес не отвечает, проверьте маршрут на самом клиенте: ip route в Linux или route print в Windows.
- Путь. traceroute 10.0.0.10 в Linux или tracert 10.0.0.10 в Windows покажет, на каком хопе трафик останавливается. Если последний отвечающий узел - роутер, смотрите его таблицу маршрутизации.
- На NAS. ip route в SCALE или netstat -rn в CORE подтвердит наличие маршрута к клиентской сети. Обратный маршрут нужен не меньше прямого.
- Сервис, а не только ICMP. ping проверяет сетевой уровень, тогда как SMB и NFS зависят от портов и правил. Проверьте прослушивание: ss -tlnp в SCALE, sockstat -4l в CORE. Затем попробуйте реальное подключение: smbclient -L //10.0.0.10 -U user или showmount -e 10.0.0.10. Настройку самих сервисов описывает материал про сетевой доступ к файлам в TrueNAS.
- Анализ трафика. tcpdump -i enp4s0 host 192.168.2.50 and icmp на NAS покажет, приходят ли пакеты вообще. Если приходят, но ответа нет, проблема в маршруте возврата. Если не приходят, блокировка на клиенте или на промежуточном firewall.
Отдельно проверьте firewall на клиенте и на NAS: правила для частных сетей часто запрещают ICMP целиком, а ping остаётся первым инструментом диагностики и при этом вводит в заблуждение.
Диагностика типичных проблем после смены сетевой конфигурации
| Симптом | Вероятная причина | Как проверить | Что сделать |
|---|---|---|---|
| Web UI не открывается после смены IP | Адрес интерфейса управления изменился, старый не отвечает | ping нового адреса, проверка порта 80 или 443 | Подключиться к консоли, проверить адрес командой ip addr или ifconfig, при ошибке сбросить сетевые настройки в меню консоли |
| NAS виден в своей подсети, но не из соседней | Нет статического маршрута или шлюз указан неверно | ip route или netstat -rn на NAS, traceroute с клиента | Добавить маршрут к сети клиента через доступный роутер, проверить обратный маршрут на роутере |
| Соединения рвутся через несколько секунд работы | Асимметричная маршрутизация: запрос и ответ идут разными путями | tcpdump на обоих интерфейсах, несколько строк default в таблице маршрутов | Оставить один шлюз по умолчанию, остальные сети описать статическими маршрутами |
| Адрес конфликтует, связь пропадает у обоих узлов | Дублирование IP-адреса в подсети | arping -I enp3s0 192.168.1.10, логи коммутатора | Назначить уникальный адрес или закрепить его за MAC на DHCP-сервере |
| Часть узлов недоступна, часть работает | Неверная маска подсети: сеть считается локальной или наоборот | Сравнить маски на NAS и на клиентах | Привести маску и адрес сети к единому виду, проверить расчёт диапазона |
| Маршрут пропал после перезагрузки | Правило добавлено командой ip route или route add, а не через конфигурацию | Сравнить вывод ip route с записями в разделе Static Routes | Перенести маршрут в Web UI или Console Setup menu, чтобы он сохранялся в конфигурации |
Логи помогают, когда симптом неочевиден. В TrueNAS есть главный системный журнал, куда попадают сообщения ядра, системных служб и драйверов, а также расширенный отладочный журнал с более детальной информацией о работе middleware TrueNAS. CORE использует классический syslogd, а SCALE, основанная на Linux, использует systemd-journald, поэтому конкретные пути к файлам журналов и команды просмотра различаются между редакциями. Смотрите журналы сразу после применения настроек: ошибки вида "network is unreachable" или "no route to host" прямо указывают на проблему маршрутизации, а не на сервис хранилища.
Риски и рекомендации по безопасному изменению сетевых настроек
Сетевые правки в TrueNAS способны отрезать вас от системы быстрее, чем любая другая операция. Снизить риск помогают несколько привычек.
- Резервная копия конфигурации. Сохраните её до правок: в SCALE через System Settings, в CORE через System, пункт сохранения конфигурации. Файл с базой настроек позволит восстановить сеть после неудачного эксперимента.
- Доступ к консоли. Физическая клавиатура и монитор, IPMI или KVM обязательны, если вы меняете адрес интерфейса управления. Обратный отсчёт при применении настроек помогает не всегда.
- Окно обслуживания. Меняйте адреса и шлюзы в период низкой нагрузки: перезагрузка сети рвёт активные сессии SMB, NFS и iSCSI, а незавершённые операции записи дают ошибки на клиентах.
- Проверка на стенде. Схему с двумя интерфейсами, VLAN и статическими маршрутами стоит один раз прогнать на тестовом экземпляре или виртуальной машине: так вы увидите поведение системы до того, как оно коснётся продуктивного хранилища.
- Документирование. Фиксируйте адрес каждого интерфейса, шлюз, добавленные маршруты и дату правок. Через несколько месяцев именно эти записи помогут отличить осознанную конфигурацию от случайного наслоения правил.
- План отката. В SCALE система хранит загрузочные среды, которые можно выбрать при старте. Если изменения сделали NAS недоступным, загрузка в прежнюю среду даст запас времени на разбор конфигурации.
Проверяйте каждое изменение сразу: применили настройку, выполнили ping и traceroute из нужных подсетей, убедились, что сервисы отвечают. Последовательная проверка на каждом шаге стоит пары минут, тогда как поиск причины после серии правок занимает часы.
Заключение
Маршрутизация в TrueNAS строится на трёх элементах: интерфейсы с адресами в нужных подсетях, один шлюз по умолчанию и статические маршруты к сетям, подключённым через роутер. Настройка выполняется в разделе Network веб-интерфейса или через Console Setup menu, командная строка служит для диагностики и временных проверок.
Чек-лист для быстрой проверки конфигурации:
- у каждого нужного сегмента есть интерфейс или VLAN-подынтерфейс с адресом;
- шлюз по умолчанию указан ровно на одном интерфейсе;
- для всех удалённых подсетей есть записи в разделе Static Routes, а не временные правила CLI;
- таблица маршрутов проверена через ip route или netstat -rn;
- связность подтверждена ping и traceroute с реального клиента каждой подсети;
- SMB, NFS и iSCSI отвечают на нужных адресах, а не молчат при работающем ping;
- резервная копия конфигурации сохранена, доступ к консоли проверен.
Если после этих шагов проблема остаётся, начинайте с маршрута возврата: смотрите, куда уходит ответ и совпадает ли этот путь с тем, откуда пришёл запрос.