Что такое сетевой мост (Bridge) в TrueNAS и зачем он нужен?
Представь, что у тебя есть несколько виртуальных машин или контейнеров, которым нужно общаться между собой и с внешней сетью. Если подключать каждую VM напрямую к физическому интерфейсу — это неудобно и ограниченно. Вот здесь на помощь приходит сетевой мост (bridge) — виртуальный коммутатор, который объединяет несколько сетевых интерфейсов в одну логическую сеть.
В контексте TrueNAS, bridge особенно важен для:
Виртуальных машин (VMs) — чтобы VM получали IP из твоей локальной сети
Контейнеров Docker/Kubernetes — для сетевой изоляции и коммуникации
Объединения физических интерфейсов — создание bond/aggregation
Сетевой сегментации — разделение трафика между разными сервисами
Важно: В TrueNAS Scale (на базе Linux) и TrueNAS Core (на базе FreeBSD) реализация мостов отличается. Scale использует стандартный Linux bridge, а Core — bridge из FreeBSD.
Сравнение подходов: TrueNAS Scale vs TrueNAS Core
Аспект
TrueNAS Scale (Linux)
TrueNAS Core (FreeBSD)
Технология
Linux Bridge (brctl)
FreeBSD Bridge
Управление
Web UI + systemd-networkd
Web UI + ifconfig
Поддержка Docker
Нативная (Kubernetes)
Ограниченная (Jails)
Сложность настройки
Средняя
Высокая
Создание моста в TrueNAS Scale через Web UI
Давай разберем самый распространенный сценарий — создание bridge для виртуальных машин. Это пошаговое руководство для TrueNAS Scale (актуально для версий 22.02+).
Шаг 1: Подготовка и планирование
Перед созданием bridge определись с конфигурацией:
Какой физический интерфейс будет основным (например, enp3s0)
Нужен ли статический IP или DHCP для моста
Какие порты будут в мосту (можно добавить позже)
Внимание: При создании bridge через Web UI текущее соединение может разорваться, если меняется IP адрес. Рекомендую иметь консольный доступ (IPMI, iDRAC, прямое подключение).
Шаг 2: Создание интерфейса Bridge
Зайди в Network → Interfaces
Нажми Add → Bridge
Заполни параметры:
Name: br0 (или любое другое имя)
Description: Основной мост для VMs
IP Address: Выбери DHCP или укажи статический IP
Шаг 3: Добавление физических интерфейсов в мост
После создания пустого bridge, нужно добавить в него физические интерфейсы:
Web UI Configuration
# Пример конфигурации bridge в TrueNAS Scale:
# Интерфейсы, которые будут добавлены в мост:
# - enp3s0 (основной Ethernet)
# - enp4s0 (резервный, для агрегации)
Bridge Settings:
Name: br0
MTU: 1500
DHCP: enabled
Bridge Members: [enp3s0, enp4s0]
Options: stp=true (Spanning Tree Protocol)
Шаг 4: Настройка виртуальных машин для использования bridge
Теперь при создании VM в TrueNAS Scale выбери сетевой интерфейс:
VM Network Configuration
Продвинутая настройка: Bridge через командную строку
Иногда через Web UI не получается настроить всё необходимое. Давай посмотрим, как работать с bridge через терминал в TrueNAS Scale.
Создание bridge с помощью iproute2
bash
# 1. Создаем bridge интерфейс
sudo ip link add name br0 type bridge
# 2. Настраиваем MTU (если нужно jumbo frames)
sudo ip link set dev br0 mtu 9000
# 3. Добавляем физический интерфейс в bridge
sudo ip link set dev enp3s0 master br0
# 4. Поднимаем интерфейсы
sudo ip link set dev br0 up
sudo ip link set dev enp3s0 up
# 5. Назначаем IP адрес (статический пример)
sudo ip addr add 192.168.1.10/24 dev br0
# 6. Добавляем маршрут по умолчанию
sudo ip route add default via 192.168.1.1 dev br0
Персистентная конфигурация через netplan
Чтобы настройки сохранились после перезагрузки, нужно отредактировать конфиг netplan:
Симптомы: После создания bridge теряется доступ к Web UI.
Решение:
Подключись через консоль (прямой доступ или IPMI)
Проверь, что физический интерфейс добавлен в bridge: ip link show master br0
Убедись, что bridge получил IP адрес: ip addr show br0
Проблема 2: VM не получают сеть
Симптомы: Виртуальные машины работают, но нет сетевого подключения.
Решение:
bash
# 1. Проверь, включена ли forwarding
sudo sysctl net.ipv4.ip_forward
# Должно быть: net.ipv4.ip_forward = 1
# 2. Если нет, включи:
sudo sysctl -w net.ipv4.ip_forward=1
# 3. Для постоянного включения:
echo "net.ipv4.ip_forward=1" | sudo tee -a /etc/sysctl.conf
# 4. Проверь iptables/nftables правила
sudo iptables -t nat -L -n -v
Проблема 3: Конфликт IP адресов
Решение: Убедись, что у физического интерфейса и bridge разные IP или физический интерфейс не имеет IP (работает только на L2).
Оптимизация производительности bridge
Для серьезных нагрузок (виртуализация, NAS) настройки по умолчанию могут быть неоптимальны:
bash
# Отключение ненужных фич для внутренних мостов
sudo ip link set dev br0 type bridge \
multicast_snooping 0 \
vlan_filtering 0 \
stp_state 0
# Настройка очередей для лучшей производительности
sudo tc qdisc add dev br0 root fq
# Увеличение буферов сокетов
sudo sysctl -w net.core.rmem_max=134217728
sudo sysctl -w net.core.wmem_max=134217728
sudo sysctl -w net.core.netdev_max_backlog=30000
Безопасность сетевого моста
Внимание к безопасности: Bridge работает на уровне L2, что означает — весь трафик между VM виден другим участникам моста. Для изоляции используй VLAN или отдельные bridge.
Включи STP если есть физические петли
Используй VLAN tagging для разделения трафика
Ограничь MAC адресацию:bridge link set dev vnet0 learning off
Регулярно обновляй TrueNAS — сетевой стек получает исправления уязвимостей
Автоматизация и мониторинг
Для мониторинга состояния bridge используй эти команды:
bash
# Показать все bridge интерфейсы
bridge link show
# Детальная информация о конкретном bridge
bridge -d link show master br0
# Статистика по пакетам и ошибкам
ip -s link show br0
# Показать MAC таблицу bridge
bridge fdb show br br0
# Мониторинг в реальном времени
watch -n 1 "bridge -s fdb show br br0"
Часто задаваемые вопросы (FAQ)
Можно ли создать несколько bridge на одном интерфейсе?
Нет, физический интерфейс может быть только в одном bridge одновременно. Но можно создать несколько VLAN интерфейсов на физическом порту и каждый VLAN добавить в свой bridge.
Как мигрировать с существующей конфигурации на bridge?
Постепенно: 1) Создай bridge без IP, 2) Добавь физический интерфейс, 3) Назначь IP на bridge, 4) Обнови настройки DHCP/статики, 5) Перезагрузи сеть.
Bridge vs Bond: что выбрать?
Bond (агрегация) объединяет интерфейсы для увеличения пропускной способности или отказоустойчивости. Bridge объединяет сети на канальном уровне. Часто их используют вместе: создают bond из двух физических портов, а потом добавляют bond в bridge.
Почему не работает DHCP на bridge?
Проверь: 1) Включен ли forwarding, 2) Не блокирует ли firewall DHCP запросы (порт 67/68), 3) Правильно ли настроен DHCP relay если нужно.
Как удалить bridge и вернуть исходную конфигурацию?
bash
# Удаление bridge в TrueNAS Scale
sudo ip link set br0 down
sudo ip link delete br0
# Возврат IP на физический интерфейс
sudo ip addr add 192.168.1.10/24 dev enp3s0
sudo ip link set enp3s0 up
Сетевой мост в TrueNAS — мощный инструмент для построения гибкой сетевой инфраструктуры. Начни с простой конфигурации через Web UI, а по мере роста опыта переходи к тонкой настройке через командную строку. Помни: всегда тестируй изменения в тестовой среде перед применением в production.