Политика Shaper#
Описание#
Политика Shaper не гарантирует низкую задержку, но гарантирует определенную полосу пропускания для различных классов трафика, а также позволяет распределить трафик при соблюдении данных гарантий.
Каждый класс предоставляет гарантированную часть полосы пропускания, определенную для политики целиком. Другие классы оперируют оставшейся полосой пропускания, доступной в политике.
Если гарантированная полоса пропускания обеспечена, а загрузка трафиком ее не превышает, то может быть использован параметр ceiling
, который определяет выделяемую долю полосы пропускания. Если гарантированная полоса пропускания обеспечена, и несколько классов используют заданный для них параметр ceiling
, то можно использовать параметр priority
для распределения дополнительного трафика в определенном порядке. Параметр priority
представляет собой число от 0 до 7. Чем ниже значение параметра priority
, тем выше приоритет.
Политика Shaper может быть встроена в класс другой политики с помощью параметра queue-type
.
fakel@fakel# set traffic-policy shaper HTB class 10 queue-type
Possible completions:
fq-codel Fair Queue Codel
fair-queue Stochastic Fair Queue (SFQ)
drop-tail First-In-First-Out (FIFO)
priority Priority queueing based on DSCP
random-detect Random Early Detection (RED)
fakel@fakel# set traffic-policy shaper HTB class 10
Possible completions:
bandwidth Bandwidth used for this class
burst Burst size for this class (default: 15kb)
ceiling Bandwidth limit for this class
codel-quantum fq-codel - Number of bytes used as 'deficit' (default 1514)
description Description for this traffic class
flows fq-codel - Number of flows (default 1024)
interval fq-codel - Interval (milliseconds) used to measure the delay (default 100)
+> match Class matching rule name
priority Priority for usage of excess bandwidth
queue-limit Maximum queue size (packets)
queue-type Queue type for this class
set-dscp Change the Differentiated Services (DiffServ) field in the IP header
target fq-codel - Acceptable minimum queue delay (milliseconds)
Примечание
Если сконфигурирован класс для трафика, источником которого является технология VoIP, не рекомендуется задавать для него параметр ceiling
. В противном случае новые звонки могут не пройти из-за того, что полоса пропускания уже поделена между остальными классами.
Далее представлен пример использования политики Shaper с приоритетами.
set traffic-policy shaper MY-HTB bandwidth '50mbit'
set traffic-policy shaper MY-HTB class 10 bandwidth '20%'
set traffic-policy shaper MY-HTB class 10 match DSCP ip dscp 'EF'
set traffic-policy shaper MY-HTB class 10 queue-type 'fq-codel'
set traffic-policy shaper MY-HTB class 20 bandwidth '10%'
set traffic-policy shaper MY-HTB class 20 ceiling '50%'
set traffic-policy shaper MY-HTB class 20 match PORT666 ip destination port '666'
set traffic-policy shaper MY-HTB class 20 priority '3'
set traffic-policy shaper MY-HTB class 20 queue-type 'fair-queue'
set traffic-policy shaper MY-HTB class 30 bandwidth '10%'
set traffic-policy shaper MY-HTB class 30 ceiling '50%'
set traffic-policy shaper MY-HTB class 30 match ADDRESS30 ip source address '192.168.30.0/24'
set traffic-policy shaper MY-HTB class 30 priority '5'
set traffic-policy shaper MY-HTB class 30 queue-type 'fair-queue'
set traffic-policy shaper MY-HTB default bandwidth '10%'
set traffic-policy shaper MY-HTB default ceiling '100%'
set traffic-policy shaper MY-HTB default priority '7'
set traffic-policy shaper MY-HTB default queue-type 'fair-queue'
Список команд#
Основные настройки#
- # set traffic-policy shaper <policy-name>#
Задает уникальное имя для политики фильтрации трафика типа Shaper.
- # set traffic-policy shaper <policy-name> bandwidth <rate>#
Устанавливает гарантированную полосу пропускания для всего трафика без учета классов.
- # set traffic-policy shaper <policy-name> class <class-ID>#
Задает числовой идентификатор класса для политики фильтрации трафика типа Shaper.
- # set traffic-policy shaper <policy-name> class <class-ID> bandwidth <rate>#
Устанавливает гарантированную полосу пропускания для трафика определенного класса.
- # set traffic-policy shaper <policy-name> class <class-ID> burst <bytes>#
Задает размер токен-корзины в байтах (по умолчанию - 15 КБ), которая будет использована при передаче трафика на скорости параметра ceiling.
- # set traffic-policy shaper <policy-name> class <class-ID> ceiling <bandwidth>#
Задает максимально возможную скорость для определенного класса.
- # set traffic-policy shaper <policy-name> class <class-ID> priority <0-7>#
Устанавливает приоритет (по умолчанию - 0) использования доступной полосы пропускания при условии, что обеспечена гарантированная полоса.