Настройка моста (Bridge) в pfSense - пошаговое руководство

Мост объединяет несколько сетевых интерфейсов pfSense в единый широковещательный домен, позволяя фильтровать трафик между ними на уровне межсетевого экрана. В данном руководстве рассматривается создание моста, настройка Spanning Tree Protocol, применение правил файрвола к мостовому трафику, развёртывание прозрачного файрвола и решение типичных проблем. Перед созданием моста убедитесь, что участвующие интерфейсы назначены в системе через Interfaces > Assignments, но не обязательно должны иметь IP-адреса.

Создание моста

Базовая настройка

Для создания моста перейдите в Interfaces > Assignments на вкладку Bridges и нажмите Add.

  1. В поле Member Interfaces выберите интерфейсы, которые будут объединены в мост. Используйте Ctrl+Click для выбора нескольких интерфейсов
  2. Введите описание моста в поле Description
  3. Нажмите Save

После сохранения система создаёт виртуальный интерфейс bridgeX (где X - порядковый номер, начиная с 0). Этот интерфейс необходимо назначить через Interfaces > Assignments для дальнейшей настройки IP-адреса и правил файрвола.

Назначение IP-адреса

IP-адрес назначается на интерфейс моста, а не на его участников. Перейдите в Interfaces > [назначенный интерфейс моста], включите его и настройте IP-адрес. Участники моста, как правило, не должны иметь собственных IP-адресов, если только это не требуется для специфических сценариев.

Spanning Tree Protocol

При подключении нескольких интерфейсов моста к одному коммутатору или к коммутаторам, связанным между собой, возникает риск образования петель на канальном уровне. Петля приводит к бесконечной циркуляции кадров и полной остановке работы сети. Spanning Tree Protocol (STP) предотвращает петли, блокируя избыточные пути.

Выбор протокола

pfSense поддерживает два варианта:

ПротоколСтандартВремя сходимостиПрименение
STPIEEE 802.1D30-50 секундСовместимость со старым оборудованием
RSTPIEEE 802.1w1-3 секундыРекомендуется для новых установок

RSTP обратно совместим с STP и обеспечивает значительно более быструю сходимость при изменении топологии.

Параметры STP

Расширенные параметры STP доступны в настройках моста:

  • Valid Time - время жизни BPDU-сообщений (по умолчанию 20 секунд, диапазон 6-40)
  • Forward Time - время перехода порта из состояния блокировки в состояние пересылки (по умолчанию 15 секунд, диапазон 4-30)
  • Bridge Priority - приоритет моста для выбора корневого моста (по умолчанию 32768, меньшее значение = более высокий приоритет)
  • Port Priority - приоритет отдельного порта в мосту (влияет на выбор активного пути)
  • Path Cost - стоимость пути через порт (влияет на выбор оптимального маршрута)

Edge и PTP порты

  • Edge ports - порты, подключённые к конечным устройствам (рабочие станции, серверы). Переходят в состояние пересылки немедленно, минуя фазы прослушивания и обучения
  • PTP ports - порты, подключённые к другим коммутаторам (потенциальный риск петель). Проходят полный цикл STP
  • Auto detect - автоматическое определение типа порта на основании полученных BPDU

Фильтрация трафика на мосту

Правила файрвола

Правила файрвола применяются к интерфейсам-участникам моста, а не к интерфейсу моста. Это ключевое отличие от маршрутизируемых интерфейсов. Для фильтрации трафика между участниками моста создавайте правила на вкладках соответствующих интерфейсов в Firewall > Rules.

Для корректной работы фильтрации на мосту необходимо включить параметры в System > Advanced > System Tunables:

net.link.bridge.pfil_bridge=0
net.link.bridge.pfil_member=1

Параметр pfil_member=1 активирует фильтрацию на интерфейсах-участниках моста. Параметр pfil_bridge=0 отключает фильтрацию на самом интерфейсе моста (что является рекомендуемой конфигурацией для большинства сценариев).

Кэш MAC-адресов

  • Cache Size - максимальное количество записей в таблице MAC-адресов моста (по умолчанию 100)
  • Cache Expire - время жизни записи в таблице в секундах (по умолчанию 240)

Приватные и Sticky порты

  • Private ports - запрещают обмен трафиком между указанными портами моста. Устройства на приватных портах могут общаться только с неприватными портами
  • Sticky ports - фиксируют выученные MAC-адреса в кэше навсегда, предотвращая их вытеснение

Span-порты

Span-порт передаёт копии всех кадров, проходящих через мост, на указанный интерфейс. Это позволяет подключить систему мониторинга (IDS, анализатор трафика) для пассивного наблюдения без влияния на сетевой трафик.

Сценарии использования

Прозрачный файрвол

Прозрачный файрвол фильтрует трафик между WAN и внутренней сетью без изменения маршрутизации. pfSense встраивается в существующую сеть как невидимый мост между сегментами.

Для настройки прозрачного файрвола:

  1. Создайте мост, включающий WAN-интерфейс и внутренний интерфейс
  2. Назначьте мосту IP-адрес для управления (из той же подсети, что и существующая сеть)
  3. Не настраивайте NAT - в прозрачном режиме файрвол не является шлюзом
  4. Создайте правила файрвола на интерфейсах-участниках моста

Устройства во внутренней сети продолжают использовать существующий маршрутизатор в качестве шлюза. NAT не функционирует на прозрачном мосту, так как pfSense не является шлюзом.

Объединение физических портов

Мост позволяет использовать несколько физических портов pfSense как порты одного коммутатора. Это полезно при ограниченном количестве портов на имеющемся коммутаторе или при необходимости подключить устройства непосредственно к портам pfSense с фильтрацией трафика.

Мост для беспроводного интерфейса

Объединение проводного и беспроводного интерфейсов в мост позволяет разместить устройства обоих типов подключения в одном L2-сегменте. Правила файрвола на беспроводном интерфейсе-участнике моста обеспечивают дополнительный контроль доступа для Wi-Fi клиентов. При необходимости авторизации гостевых пользователей на беспроводной сети используйте Captive Portal в сочетании с мостом.

Ограничения

Производительность

Мостовое соединение обрабатывается процессором, а не аппаратным коммутатором. Пропускная способность существенно ниже, чем у выделенного коммутатора. Не используйте мосты в качестве замены коммутаторов для высоконагруженного трафика.

CARP и мосты

Использование CARP (Common Address Redundancy Protocol) с мостовыми интерфейсами имеет ограничения. CARP-адреса должны назначаться на интерфейс моста, а не на его участников. Конфигурация отказоустойчивости с мостами требует тщательного тестирования.

Совместимость сервисов

Некоторые сервисы pfSense требуют дополнительной настройки для работы с мостовыми интерфейсами:

  • Captive Portal - необходимо привязывать зону к интерфейсу моста
  • Limiters - требуют специальной конфигурации
  • Прозрачный прокси - ограниченная совместимость на мостовых интерфейсах

NAT

NAT не работает на прозрачных мостах, так как файрвол не выполняет функции шлюза. Для сценариев с NAT используйте маршрутизируемые интерфейсы вместо мостов.

Устранение неполадок

Петли на канальном уровне

Признаки петли: полная потеря сетевого соединения, высокая загрузка процессора, аномальный объём широковещательного трафика в Diagnostics > States.

  • Убедитесь, что STP или RSTP включён в настройках моста
  • Проверьте, что интерфейсы моста не подключены к одному коммутатору без настройки STP на коммутаторе
  • Временно отключите один из участников моста для разрыва петли

Трафик не проходит через мост

  • Проверьте, что интерфейсы-участники включены и имеют состояние link up
  • Убедитесь, что правила файрвола на интерфейсах-участниках разрешают необходимый трафик
  • Проверьте значение net.link.bridge.pfil_member в System > Advanced > System Tunables
  • Используйте Diagnostics > Packet Capture на интерфейсах моста для анализа трафика

Проблемы с производительностью

  • Проверьте загрузку процессора в Diagnostics > System Activity - высокая загрузка указывает на превышение возможностей мостового соединения
  • Убедитесь, что MTU одинаков на всех участниках моста
  • Рассмотрите замену моста на аппаратный коммутатор с VLAN для сегментации

Мост не отображается в списке интерфейсов

После создания моста его необходимо назначить через Interfaces > Assignments. Неназначенный мост не отображается в настройках интерфейсов и не может быть использован для привязки IP-адреса или правил файрвола.

Last updated on