Содержание
Создание HTB, TBF полисера через файл с разметкой
Профиль полисинга (тарифный план) описывается текстовым файлом с расширением .cfg. В файле задаются ограничения полосы для каждого из 8 классов трафика. Тот же профиль можно задать в формате JSON.
Как назначить профиль абоненту и чем именованный профиль отличается от анонимного, описано в разделе Управление полисингом (тарифным планом). Именованные профили полисинга.
Формат файла
Каждая строка задаёт ограничение для одного класса трафика в одном направлении. Строка, начинающаяся с #, считается комментарием.
| Ключ | Направление | Назначение |
|---|---|---|
tbf_inbound_class0 … tbf_inbound_class7 | Входящий (к абоненту) | Ограничение класса для TBF |
tbf_class0 … tbf_class7 | Исходящий (от абонента) | Ограничение класса для TBF |
htb_inbound_root | Входящий (к абоненту) | Общая полоса тарифа для HTB |
htb_root | Исходящий (от абонента) | Общая полоса тарифа для HTB |
htb_inbound_class0 … htb_inbound_class7 | Входящий (к абоненту) | Полоса класса для HTB |
htb_class0 … htb_class7 | Исходящий (от абонента) | Полоса класса для HTB |
Параметры в значении ключа:
| Параметр | Механизм | Описание |
|---|---|---|
rate | TBF, HTB | Для TBF — ограничение полосы класса. Для HTB — гарантированная (минимальная) полоса класса, а для root — общая полоса тарифа |
ceil | HTB | Максимальная полоса, которую класс может занять, заимствуя свободную полосу корневого класса |
burst, cburst | TBF, HTB | Необязательные. Размер всплеска для rate и ceil |
peakrate | TBF | Необязательный. Пиковая скорость |
static | HTB | Выводит класс из иерархии: ограничение rate действует независимо, без привязки к root |
Номер класса (class0 … class7) соответствует классу трафика cs0 … cs7. По умолчанию класс cs0 имеет наивысший приоритет, cs7 — наименьший. Протоколы и направления распределяются по классам глобальной разметкой Классы трафика по протоколам и направлениям. Разметка трафика. или индивидуальной разметкой по протоколам (18 услуга): Полисинг по сессии и переопределение классов трафика.
Полисер TBF
TBF ограничивает каждый класс трафика независимо. Если ограничение для класса не указано, полоса для него не ограничена.
rate 20mbit для всех 8 классов, абонент в сумме может получить больше 20 Мбит/с. Для тарифа с общей полосой используйте HTB.
Пример: ограничение торрентов 3 Мбит/с
Торренты выделены в класс cs7 (разметка — как в примере для HTB ниже). Остальной трафик не ограничивается.
# Входящий трафик (к абоненту) tbf_inbound_class7=rate 3mbit # Исходящий трафик (от абонента) tbf_class7=rate 3mbit
Полисер HTB
HTB реализует иерархический QoS: задаётся общая полоса тарифа (root), которая распределяется между классами трафика. Класс получает гарантированную полосу rate и может заимствовать свободную полосу до ceil.
- Необходимо описать все 8 классов, даже неиспользуемые.
- Сумма
rateпо классам должна быть меньшеrateкорневого класса.
Пример 1: тариф 10 Мбит/с с ограничением торрентов
Тариф с общей полосой 10 Мбит/с, в котором торренты ограничены 3 Мбит/с на скачивание и на отдачу.
Сначала выделим торренты в отдельный класс трафика глобальной разметкой на DPI, как описано в разделе Назначение приоритетов в зависимости от протокола:
default cs0 bittorrent cs7
Здесь весь трафик разделён на 2 класса:
- cs0 — DSCP=0, QoS (IPP)=0, Best Effort;
- cs7 — DSCP=56, QoS (IPP)=7, Priority.
Обозначения Best Effort и Priority относятся к значениям DSCP в заголовках пакетов. В полисинге СКАТ приоритеты по умолчанию обратные: cs0 — наивысший, cs7 — наименьший. Поэтому торренты в примере выделены в cs7.
Создадим файл rateplan_1.cfg. Торрентам (class7) гарантируем 1 Мбит/с и разрешаем занимать не больше 3 Мбит/с. Остальной трафик может занимать всю полосу тарифа.
# Входящий трафик (к абоненту) htb_inbound_root=rate 10mbit htb_inbound_class0=rate 8bit ceil 10mbit htb_inbound_class1=rate 8bit ceil 10mbit htb_inbound_class2=rate 8bit ceil 10mbit htb_inbound_class3=rate 8bit ceil 10mbit htb_inbound_class4=rate 8bit ceil 10mbit htb_inbound_class5=rate 8bit ceil 10mbit htb_inbound_class6=rate 8bit ceil 10mbit htb_inbound_class7=rate 1mbit ceil 3mbit # Исходящий трафик (от абонента) htb_root=rate 10mbit htb_class0=rate 8bit ceil 10mbit htb_class1=rate 8bit ceil 10mbit htb_class2=rate 8bit ceil 10mbit htb_class3=rate 8bit ceil 10mbit htb_class4=rate 8bit ceil 10mbit htb_class5=rate 8bit ceil 10mbit htb_class6=rate 8bit ceil 10mbit htb_class7=rate 1mbit ceil 3mbit
Классы 1–6 в этом примере не используются, так как разметка задаёт только cs0 и cs7, но описать их всё равно необходимо. Позже их можно задействовать, изменив разметку на DPI, без изменения профиля.
Пример 2: независимая скорость для пиринга, CDN и кеш-серверов
Локальный трафик (пиринг, CDN, кеш-серверы) выделяется в отдельный класс разметкой по направлению для всей платформы DPI: Назначение приоритетов в зависимости от направления.
Если для класса указать ключевое слово static, он выводится из иерархии HTB и его ограничение действует независимо от общей полосы тарифа. В примере тариф 10 Мбит/с, а трафик класса cs6 ограничен отдельно 100 Мбит/с:
# Входящий трафик (к абоненту) htb_inbound_root=rate 10mbit htb_inbound_class0=rate 8bit ceil 10mbit htb_inbound_class1=rate 8bit ceil 10mbit htb_inbound_class2=rate 8bit ceil 10mbit htb_inbound_class3=rate 8bit ceil 10mbit htb_inbound_class4=rate 8bit ceil 10mbit htb_inbound_class5=rate 8bit ceil 10mbit htb_inbound_class6=rate 100mbit static htb_inbound_class7=rate 8bit ceil 10mbit # Исходящий трафик (от абонента) htb_root=rate 10mbit htb_class0=rate 8bit ceil 10mbit htb_class1=rate 8bit ceil 10mbit htb_class2=rate 8bit ceil 10mbit htb_class3=rate 8bit ceil 10mbit htb_class4=rate 8bit ceil 10mbit htb_class5=rate 8bit ceil 10mbit htb_class6=rate 100mbit static htb_class7=rate 8bit ceil 10mbit
Назначение профиля
На один IP-адрес:
fdpi_ctrl load --policing rateplan_1.cfg --ip 10.10.10.10
На login. Если адрес абонента выдаётся динамически, профиль назначается на login, а IP связывается с ним отдельной командой:
fdpi_ctrl load --bind --user DEMO:10.10.10.10 fdpi_ctrl load --policing rateplan_1.cfg --login DEMO
На абонента с несколькими IP (например, корпоративный клиент или Dual Stack IPv4/IPv6). При связке bind_multi все адреса login считаются одним абонентом и делят полосу тарифа:
fdpi_ctrl load --bind_multi --user CORP:10.10.20.0/30 fdpi_ctrl load --bind_multi --user CORP:2001:db8:2000:1200::/64 fdpi_ctrl load --policing rateplan_1.cfg --login CORP
Подробнее:
- назначение на список IP и диапазон CIDR, создание именованных профилей — Управление полисингом (тарифным планом). Именованные профили полисинга;
Профиль полисинга (тарифный план) описывается текстовым файлом с расширением .cfg. В файле задаются ограничения полосы для каждого из 8 классов трафика. Тот же профиль можно задать в формате JSON.
Как назначить профиль абоненту и чем именованный профиль отличается от анонимного, описано в разделе Управление полисингом (тарифным планом). Именованные профили полисинга.
Формат файла
Каждая строка задаёт ограничение для одного класса трафика в одном направлении. Строка, начинающаяся с #, считается комментарием.
| Ключ | Направление | Назначение |
|---|---|---|
tbf_inbound_class0 … tbf_inbound_class7 | Входящий (к абоненту) | Ограничение класса для TBF |
tbf_class0 … tbf_class7 | Исходящий (от абонента) | Ограничение класса для TBF |
htb_inbound_root | Входящий (к абоненту) | Общая полоса тарифа для HTB |
htb_root | Исходящий (от абонента) | Общая полоса тарифа для HTB |
htb_inbound_class0 … htb_inbound_class7 | Входящий (к абоненту) | Полоса класса для HTB |
htb_class0 … htb_class7 | Исходящий (от абонента) | Полоса класса для HTB |
Параметры в значении ключа:
| Параметр | Механизм | Описание |
|---|---|---|
rate | TBF, HTB | Для TBF — ограничение полосы класса. Для HTB — гарантированная (минимальная) полоса класса, а для root — общая полоса тарифа |
ceil | HTB | Максимальная полоса, которую класс может занять, заимствуя свободную полосу корневого класса |
burst, cburst | TBF, HTB | Необязательные. Размер всплеска для rate и ceil |
peakrate | TBF | Необязательный. Пиковая скорость |
static | HTB | Выводит класс из иерархии: ограничение rate действует независимо, без привязки к root |
Номер класса (class0 … class7) соответствует классу трафика cs0 … cs7. Протоколы и направления распределяются по классам глобальной разметкой Классы трафика по протоколам и направлениям. Разметка трафика. или индивидуальной разметкой по протоколам (18 услуга): Полисинг по сессии и переопределение классов трафика.
Полисер TBF
TBF ограничивает каждый класс трафика независимо. Если ограничение для класса не указано, полоса для него не ограничена.
rate 20mbit для всех 8 классов, абонент в сумме может получить больше 20 Мбит/с. Для тарифа с общей полосой используйте HTB.
Пример: ограничение торрентов 3 Мбит/с
Торренты выделены в класс cs7 (разметка — как в примере для HTB ниже). Остальной трафик не ограничивается.
# Входящий трафик (к абоненту) tbf_inbound_class7=rate 3mbit # Исходящий трафик (от абонента) tbf_class7=rate 3mbit
Полисер HTB
HTB реализует иерархический QoS: задаётся общая полоса тарифа (root), которая распределяется между классами трафика. Класс получает гарантированную полосу rate и может заимствовать свободную полосу до ceil.
- Необходимо описать все 8 классов, даже неиспользуемые.
- Сумма
rateпо классам должна быть меньшеrateкорневого класса.
Пример 1: тариф 10 Мбит/с с ограничением торрентов
Тариф с общей полосой 10 Мбит/с, в котором торренты ограничены 3 Мбит/с на скачивание и на отдачу.
Сначала выделим торренты в отдельный класс трафика глобальной разметкой на DPI, как описано в разделе Назначение приоритетов в зависимости от протокола:
default cs0 bittorrent cs7
Здесь весь трафик разделён на 2 класса:
- cs0 — DSCP=0, QoS (IPP)=0, Best Effort;
- cs7 — DSCP=56, QoS (IPP)=7, Priority.
Создадим файл rateplan_1.cfg. Торрентам (class7) гарантируем 1 Мбит/с и разрешаем занимать не больше 3 Мбит/с. Остальной трафик может занимать всю полосу тарифа.
# Входящий трафик (к абоненту) htb_inbound_root=rate 10mbit htb_inbound_class0=rate 8bit ceil 10mbit htb_inbound_class1=rate 8bit ceil 10mbit htb_inbound_class2=rate 8bit ceil 10mbit htb_inbound_class3=rate 8bit ceil 10mbit htb_inbound_class4=rate 8bit ceil 10mbit htb_inbound_class5=rate 8bit ceil 10mbit htb_inbound_class6=rate 8bit ceil 10mbit htb_inbound_class7=rate 1mbit ceil 3mbit # Исходящий трафик (от абонента) htb_root=rate 10mbit htb_class0=rate 8bit ceil 10mbit htb_class1=rate 8bit ceil 10mbit htb_class2=rate 8bit ceil 10mbit htb_class3=rate 8bit ceil 10mbit htb_class4=rate 8bit ceil 10mbit htb_class5=rate 8bit ceil 10mbit htb_class6=rate 8bit ceil 10mbit htb_class7=rate 1mbit ceil 3mbit
Классы 1–6 в этом примере не используются, так как разметка задаёт только cs0 и cs7, но описать их всё равно необходимо. Позже их можно задействовать, изменив разметку на DPI, без изменения профиля.
Пример 2: независимая скорость для пиринга, CDN и кеш-серверов
Локальный трафик (пиринг, CDN, кеш-серверы) выделяется в отдельный класс разметкой по направлению для всей платформы DPI: Назначение приоритетов в зависимости от направления.
Если для класса указать ключевое слово static, он выводится из иерархии HTB и его ограничение действует независимо от общей полосы тарифа. В примере тариф 10 Мбит/с, а трафик класса cs6 ограничен отдельно 100 Мбит/с:
# Входящий трафик (к абоненту) htb_inbound_root=rate 10mbit htb_inbound_class0=rate 8bit ceil 10mbit htb_inbound_class1=rate 8bit ceil 10mbit htb_inbound_class2=rate 8bit ceil 10mbit htb_inbound_class3=rate 8bit ceil 10mbit htb_inbound_class4=rate 8bit ceil 10mbit htb_inbound_class5=rate 8bit ceil 10mbit htb_inbound_class6=rate 100mbit static htb_inbound_class7=rate 8bit ceil 10mbit # Исходящий трафик (от абонента) htb_root=rate 10mbit htb_class0=rate 8bit ceil 10mbit htb_class1=rate 8bit ceil 10mbit htb_class2=rate 8bit ceil 10mbit htb_class3=rate 8bit ceil 10mbit htb_class4=rate 8bit ceil 10mbit htb_class5=rate 8bit ceil 10mbit htb_class6=rate 100mbit static htb_class7=rate 8bit ceil 10mbit
Назначение профиля
На один IP-адрес:
fdpi_ctrl load --policing rateplan_1.cfg --ip 10.10.10.10
На login. Если адрес абонента выдаётся динамически, профиль назначается на login, а IP связывается с ним отдельной командой:
fdpi_ctrl load --bind --user DEMO:10.10.10.10 fdpi_ctrl load --policing rateplan_1.cfg --login DEMO
На абонента с несколькими IP (например, корпоративный клиент или Dual Stack IPv4/IPv6). При связке bind_multi все адреса login считаются одним абонентом и делят полосу тарифа:
fdpi_ctrl load --bind_multi --user CORP:10.10.20.0/30 fdpi_ctrl load --bind_multi --user CORP:2001:db8:2000:1200::/64 fdpi_ctrl load --policing rateplan_1.cfg --login CORP
Подробнее:
- назначение на список IP и диапазон CIDR, создание именованных профилей — Управление полисингом (тарифным планом). Именованные профили полисинга;
Была ли полезна эта информация?