Управление исходящим трафиком через обратную связь [Документация VAS Experts]

Управление исходящим трафиком через обратную связь

Ограничение на входящий трафик не очень эффективно с точки зрения экономии полосы, так как этот трафик уже был получен из интернет канала, и если мы их отбросим, то они будут переданы снова и снова, создавая лишнюю нагрузку. Конечно, TCP протокол и некоторые виды прикладных UDP-based протоколов через механизм congestion control могут подстроиться под заданные ограничения, но если воздействовать на канал пользователя, уменьшая размер исходящего трафика, то можно сэкономить дополнительно до 10% общей оператора по сравнению с обычным полисингом. Данный механизм эффективно работает для протоколов построенных по принципу запрос-ответ, для которых при ограничении исходящего трафика (запрос) уменьшается количество входящего (ответ), а это большинство прикладных протоколов.

Создадим тарифный план с общим ограничением в 10 Mbps, в котором торренты ограничены скоростью 3 Mbps на скачку и загрузку.

Для этого сделаем глобальную разметку трафика на DPI платформе, где торренты выделены в отдельный класc трафика, как описано в разделе Назначение приоритетов в зависимости от протокола.

default      cs0
bittorrent   cs7         

В данном примере разделим трафик по протоколам всего на 2 класса, где

  • cs0 - соответствует DSCP=0 QOS(IPP)=0 Best Effort
  • cs7 - соответствует DSCP=56 QOS(IPP)=7 Priority

Создадим файл конфигурации rateplan_1.cfg, в котором для каждого из 8 доступных классов (групп) протоколов задаем ограничение на доступную им полосу. Используем HTB (дисциплина с заимствованием свободной полосы) и для торрентов указываем, что размер полосы ограничен 3mbit, но не меньше чем 1mbit. В отличие от торрентов прочий трафик может занимать всю доступную полосу.

Сумма скорости по классам (classX rate) должна быть меньше, чем root rate.

Дополним конфигурацию параметром htb_inbound_bw:

htb_inbound_bw=rate 9mbit ceil 10mbit
htb_inbound_root=rate 2mbit ceil 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 2mbit ceil 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
  • htb_inbound_bw - определяет уменьшение ceil для исходящего трафика через ограничение на входящий трафик и размер максимального превышения. Когда входящий трафик превысит заданный в этом параметре rate=9mbit для исходящего трафика начинает уменьшаться верхняя граница ceil, заданная в параметре htb_root ceil=10mbit, но не больше чем до htb_root rate=2mbit. Процент превышения считается по интервалу ceil 10mbit ↔ rate 9mbit и на такой же процент сокращается исходящий трафик. При ограничении величины сeil, заданной в параметре htb_root, остальные классы начинают перераспределять трафик в соответствии с их приоритетом и заданными ограничениями, чтобы не превысить общее ограничение, установленное в htb_root.
  • htb_inbound_root, htb_root - корневые классы, в которых указан общий размер полосы для входящего и исходящего трафика и в рамках которых проводится перераспределение полосы - заимствование полосы другими классами трафика.  
  • rate - минимальный размер полосы
  • ceil - максимальный размер полосы, который можно заимствовать из корневого класса если полоса свободна
  • class2-7 фактически не будут использоваться, так как у нас в конфигурации определено только 2 класса 0 и 7. Но описать обязаны ВСЕ классы в рамках HTB полисера. При необходимости в будущем можно будет задейтвовать свободные классы через изменение разметки на DPI.

Была ли полезна эта информация?