Traffic Shaper в pfSense - управление полосой пропускания
pfSense предоставляет два независимых механизма управления полосой пропускания: ALTQ (Alternate Queuing) и Limiters. Оба механизма решают задачу контроля трафика, но используют принципиально разные подходы и реализованы на различных подсистемах FreeBSD. Выбор между ними определяется требованиями конкретной инфраструктуры - приоритизация трафика и гарантированная полоса пропускания для критичных приложений или жёсткое ограничение скорости для отдельных пользователей и подсетей.
Шейпер работает путём постановки пакетов в очередь в точках, где операционная система контролирует поток данных. Входящие загрузки шейпируются при выходе с LAN-интерфейса, исходящие - при выходе с WAN-интерфейса. Это принципиальное отличие от архитектуры MikroTik, где Simple Queues применяются непосредственно к интерфейсу приёма.
Два подхода к управлению трафиком
ALTQ (Alternate Queuing)
ALTQ - фреймворк управления очередями, интегрированный с pf (packet filter). Поддерживает несколько типов планировщиков (PRIQ, CBQ, HFSC, FAIRQ), позволяет выстраивать иерархию очередей с приоритетами и заимствованием полосы пропускания. ALTQ является предпочтительным выбором, когда необходимо гарантировать минимальную полосу пропускания для критичных сервисов (VoIP, видеоконференции) при одновременном ограничении менее важного трафика.
Существенное ограничение ALTQ - зависимость от драйверов сетевых адаптеров. Не все драйверы поддерживают ALTQ, и активация шейпера снижает максимальную пропускную способность межсетевого экрана.
Limiters (dummynet)
Limiters основаны на подсистеме dummynet(4) FreeBSD и работают независимо от ALTQ. Они устанавливают жёсткие ограничения полосы пропускания, задерживая или отбрасывая пакеты для достижения заданной скорости. Ключевое преимущество Limiters - возможность ограничения скорости per-IP или per-subnet, что недоступно в ALTQ. Limiters не зависят от драйверов сетевых адаптеров и совместимы с любым оборудованием.
Сравнение ALTQ и Limiters
| Характеристика | ALTQ | Limiters (dummynet) |
|---|---|---|
| Приоритизация трафика | Полная поддержка (очереди с приоритетами) | Ограниченная (веса дочерних очередей) |
| Гарантия полосы пропускания | Да (HFSC) | Нет |
| Per-IP ограничение | Нет | Да (через маски) |
| Per-subnet ограничение | Нет | Да (через маски) |
| Заимствование полосы | Да (CBQ, HFSC) | Нет |
| Зависимость от драйверов NIC | Да | Нет |
| Влияние на производительность | Существенное | Умеренное |
| Настройка через визард | Да | Нет |
| DSCP/DiffServ маркировка | Да | Нет |
| Борьба с bufferbloat (CoDel) | Нет | Да |
Выбор механизма по сценарию
ALTQ подходит, когда необходимо:
- Приоритизировать VoIP и видеотрафик над остальным трафиком
- Гарантировать минимальную полосу пропускания для критичных приложений
- Маркировать пакеты DSCP для взаимодействия с провайдером или вышестоящим оборудованием
- Использовать иерархическую модель распределения полосы пропускания
Limiters подходят, когда необходимо:
- Ограничить скорость для каждого пользователя индивидуально (per-IP limit)
- Установить потолок полосы пропускания для гостевой Wi-Fi сети
- Ограничить совокупную полосу пропускания подсети
- Бороться с bufferbloat с помощью CoDel или FQ-CoDel
- Работать с сетевыми адаптерами, не поддерживающими ALTQ
Внимание:
ALTQ и Limiters могут использоваться одновременно, но не следует применять оба механизма к одному и тому же потоку трафика. Это приводит к непредсказуемому поведению и усложняет диагностику проблем с производительностью.
Содержание раздела
- Limiters - ограничение полосы пропускания per-IP и per-subnet, CoDel для bufferbloat, применение через правила файрвола
- ALTQ Traffic Shaper - визарды для приоритизации трафика, типы планировщиков PRIQ и HFSC, ручная настройка очередей
Связанные разделы
- Файрвол pfSense - правила фильтрации, через которые применяются Limiters
- Правила файрвола - настройка In/Out pipes в параметрах правил
- Multi-WAN в pfSense - балансировка нагрузки и отказоустойчивость, влияющие на шейпинг