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

> Создание мостового соединения в pfSense - настройка участников моста, STP/RSTP, правила файрвола, прозрачный межсетевой экран и устранение неполадок

Source: https://opennix.org/docs/pfsense/bridging/pfsense-bridge-setup/


Мост объединяет несколько сетевых интерфейсов 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 поддерживает два варианта:

| Протокол | Стандарт | Время сходимости | Применение |
|---|---|---|---|
| STP | IEEE 802.1D | 30-50 секунд | Совместимость со старым оборудованием |
| RSTP | IEEE 802.1w | 1-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. Создайте правила [файрвола](/docs/pfsense/firewall/pfsense-firewall-rules/) на интерфейсах-участниках моста

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

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

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

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

Объединение проводного и беспроводного интерфейсов в мост позволяет разместить устройства обоих типов подключения в одном L2-сегменте. Правила файрвола на беспроводном интерфейсе-участнике моста обеспечивают дополнительный контроль доступа для Wi-Fi клиентов. При необходимости авторизации гостевых пользователей на беспроводной сети используйте [Captive Portal](/docs/pfsense/captive-portal/pfsense-captive-portal-setup/) в сочетании с мостом.

## Ограничения

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

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

### CARP и мосты

Использование [CARP](/docs/pfsense/high-availability/) (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](/docs/pfsense/vlans/pfsense-vlan-setup/) для сегментации

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

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

