ƒелим »нтернет или QoS на Mikrotik

ѕринцип делить все и вс€ существует столько, сколько миллиардов лет существует ¬селенна€. „аще всего объекты дел€тс€  в одинаковых пропорци€х и неравный отхваченный кусок кем или чем-либо вызывает недовольство поделенных. ѕодобные ситуации часто возникают тогда, когда объект делени€ имеет весомое значение в системе. ѕеренесемс€ в 21 век. Ќаблюда€ процессы в обществе и, в первую очередь в информационной сфере, можно заметить, что разумно делить все-таки научились. », порой алгоритмы настолько неподдельны и устойчивы, что не оставл€ют никакой возможности вз€ть больше или меньше дозволенного. ѕрименив все вышеизложенное к передаче данных можно пон€ть о чем идет речь.

—овременное общество и каждый человек в нем требует к себе одинакового отношени€ во всех сферах, что зачастую становитс€ головной болью дл€ тех, кто предоставл€ет услуги. ¬ частности каса€сь предоставлени€ услуг доступа к »нтернету за последние несколько лет произошел огромный прорыв, позволивший решить р€д проблем, порожденных по€влением всемирной паутины у нас в домах и на работе, превратив ее из некого деликатеса в фаст-фуд дл€ сотен тыс€ч людей.

Ќесколько раньше на нашем сайте мы опубликовали статью о RouterOS Mikrotik, в которой говорилось о возможност€х, установке и первоначальной настройке этой операционной системы. —уд€ по количеству вопросов и ответов на нашем форуме стало €сно, что в »нтернет тема настройки и управлени€ системой раскрыта плохо и не полно.

Ќе секрет, что зачастую администраторам, в особенности начинающим, сложно разобратьс€ во всех приведенных алгоритмах и принципах работы шейпера, вынужда€ учитьс€ методом проб и зачастую не безобидных ошибок. “ак сложилось, что дл€ этой категории пользователей очень мало простой и доступной русско€зычной документации, одним из первых начинаний которой и станет эта стать€.

“еори€

ƒл€ начала рассмотрим несколько пон€тий, которыми мы будем пользоватьс€ в дальнейшем.

“ехнологи€, котора€ позвол€ет ограничивать скорость и качество доступа в »нтернет, называетс€ шейпинг (от англ. Shape - форма). ќбразно говор€ - это технологи€ придани€ некой формы графику загрузки канала.

Ўейпер - это алгоритм, который помимо управлени€ очередностью пакетов позвол€ет отбрасывать не удовлетвор€ющие услови€м.   таковым относ€тс€ алгоритмы PCQ и HTB (о них поговорим несколько позже).

—уществует ещЄ один тип алгоритмов, используемых дл€ управлени€ движением пакетов внутри шейпера Schedulers. »х задача состоит только в формировании очередей согласно приоритетам пакетов, адресу источника, получател€ и другим параметрам.   этому типу алгоритмов относ€тс€ PFIFO, BFIFO,SFQ, PCQ, RED.

ѕод-очередь - очередь, сформированна€ из пакетов по тому или иному признаку.

Queuing discipline (qdisc - дисциплина очереди) - алгоритм, который захватывает пакеты и точно определ€ет в каком пор€дке и каким образом они будут двигатьс€.

HTB

¬ основе шейпинга, используемого в Mikrotik, лежит дисциплина очереди HTB, реализованна€ во многих Linux-системах. ≈е изучение €вл€етс€ достаточно сложной, однако необходимой задачей дл€ новичка, потому как без этих знаний дальше неудачных попыток и копировани€ правил из документации мало кто заходит.

—писок основных возможностей по управлению трафиком в Mikrotik выгл€дит следующим образом:

  • ограничение скорости по IP-адресам, подсет€м, протоколам, портам, времени суток и другим параметрам;
  • ограничение P2P-трафика (BitTorrent, eMule);приоритизаци€ одних потоков пакетов над другими;
  • использование пиковых скоростей дл€ быстрого WEB-браузинга;
  • разделение канала между пользовател€ми поровну или в других пропорци€х;
  • возможность задани€ гарантированной скорости.

 лючевым пон€тием дл€ HTB €вл€етс€ класс. ѕриставка Hierarhical в аббревиатуре HTB означает, что дисциплина позвол€ет строить иерархию классов.

—хематически иерархию классов  (дл€ упрощени€ будем называть классы правилами) HTB можно представить в виде некого гибридного  разделенного уровн€ми дерева, конечными вершинами которого €вл€ютс€ клиенты.  лассы, которые не имеют дочерних, будем называть клиентами или листь€ми. ќбычно они наход€тс€ на нулевом уровне иерархии и первыми захватывают относ€щийс€ к ним трафик, передава€ его родител€м. ƒва или более класса, имеющие одного пр€мого родител€ наход€тс€ на одном уровне и подсоединены к одной локальной выходной очереди.

—хематическое изображение структуры HTB

Ќа схеме выше изображена иерархи€ классов, в которую из файервола (Filter) поступают пакеты с данными. ¬ зависимости от приоритета, параметров классов и загрузки канала они попадают или в локальные очереди (Self Feed), или передаютс€ в очереди родительских классов (Inner Feed).

 ласс характеризуют следующие параметры:

  • limit-at Ц гарантированна€ скорость;
  • max-limit Ц ограничение скорости;
  • priority Ц приоритет класса.

 ласс может находитьс€ в одном из трех состо€ний:

  • «еленый - пропускна€ способность правила не превышает параметр limit-at. ¬ этом случае пакеты не двигаютс€ вверх по иерархии, а перемещаютс€ сразу в выходной поток своего уровн€ согласно приоритетам.
  • ∆елтый - пропускна€ способность правила больше limit-at, но меньше max-limit. ¬ этом случае класс отключаетс€ от выходного потока своего уровн€ и подключаетс€ к родительскому классу.
  •  расный - пропускна€ способность правила больше max-limit. ¬ этом состо€нии класс отключаетс€ от родительского и подключаетс€ к локальной очереди.

ѕользу€сь уже даже этими данными, можно составл€ть правила, однако на практике некоторые вещи могут выгл€деть несколько иначе.

¬ Mikrotik предусмотрены два типа правил, разнесенные на разные закладки в графической утилите Winbox (с ее помощью можно конфигурировать Mikrotik из-под Windows):

  • Simple Queues;
  • Queue Trees.

ќ них мы поговорим несколько позже, а сейчас рассмотрим несколько примеров работы HTB

—оздадим несколько правил

 

[admin@MikroTik] queue tree> add name=ClassA parent=Local max-limit=2048000
[admin@MikroTik] queue tree> add name=ClassB parent=ClassA max-limit=1024000
[admin@MikroTik] queue tree> add name=Leaf1 parent=ClassA max-limit=2048000
... limit-at=1024000 packet-mark=packet_mark1 priority=8
[admin@MikroTik] queue tree> add name=Leaf2 parent=ClassB max-limit=1024000
... limit-at=256000 packet-mark=packet_mark2 priority=7
[admin@MikroTik] queue tree> add name=Leaf3 parent=ClassB max-limit=1024000
... limit-at=768000 packet-mark=packet_mark3 priority=8
[admin@MikroTik] queue tree> print
Flags: X - disabled, I - invalid
 0   name="ClassA" parent=Local packet-mark="" limit-at=0 queue=default
     priority=8 max-limit=2048000 burst-limit=0 burst-threshold=0
     burst-time=0s

 1   name="ClassB" parent=ClassA packet-mark="" limit-at=0 queue=default
     priority=8 max-limit=1024000 burst-limit=0 burst-threshold=0
     burst-time=0s

 2   name="Leaf1" parent=ClassA packet-mark=packet_mark1 limit-at=1024000
     queue=default priority=8 max-limit=2048000 burst-limit=0
     burst-threshold=0 burst-time=0s

 3   name="Leaf2" parent=ClassB packet-mark=packet_mark2 limit-at=256000
     queue=default priority=7 max-limit=1024000 burst-limit=0
     burst-threshold=0 burst-time=0s

 4   name="Leaf3" parent=ClassB packet-mark=packet_mark3 limit-at=768000
     queue=default priority=8 max-limit=1024000 burst-limit=0
     burst-threshold=0 burst-time=0s
[admin@MikroTik] queue tree>


1. –ассмотрим первый случай, когда клиенты 1 и 2 передают данные со скоростью меньше, чем указано в параметре limit-at, а клиент 3 не работает.

 ак видим, пакеты с данными от leaf1 и leaf2 (клиенты) не передаютс€ в родительские классы, а выстраиваютс€ в локальную очередь в соответствии со своими приоритетами

2. —ейчас посмотрим что будет, в случае если клиент leaf2 будет передавать данные со скоростью больше limit-at, но меньше max-limit указанных в его параметрах и меньше limit-at в параметрах ClassB, к которому он прикреплен. ќдновременно с ним leaf1 будет передавать данные со скоростью не превышающей limit-at.

¬ данном случае получаетс€ интересна€ ситуаци€: клиент leaf1 будет иметь больший приоритет, чем leaf2, хот€ в параметрах последнего указан больший приоритет. Ёто св€зано с тем, что передава€ данные со скоростью более limit-at leaf2 подключилс€ к родительскому классу, имеющему приоритет 8. ѕри этом существует правило, что на нижних уровн€х приоритет пакетов при одинаковых услови€х больше, чем на верхних.

3. –ассмотрим следующий пример: скорости передачи данных дл€ leaf1 превысила допустимое max-limit, клиент leaf2 передает данные на скорости больше limit-at и меньше max-limit, клиент leaf3 работает на скорости меньше limit-at.

Ёто весьма интересный случай. ¬ данной ситуации видно, что ClassA перегружен данными из Leaf1, поэтому ClassB не получит разрешени€ на передачу.¬ результате работоспособным окажетс€ только клиент leaf3, подключенный в локальную очередь на нулевом уровне.

4. “еперь рассмотрим пример, когда данные будут одновременно передавать leaf1, leaf2, leaf3, ClassB будет желтым, а ClassA зеленым.

¬ результате этого на втором уровне leaf2 попадет в очередь первым (так как имеет больший приоритет), а leaf1 и leaf3 подвергнутс€ случайному выбору дл€ определени€ пор€дка следовани€.

 ак видим алгоритм работы HTB весьма логичен и не так уж сложен, как могло показатьс€ сразу. ќн был прин€т многими производител€ми программного и аппаратного обеспечени€ за свою гибкость, надежность и отсутствие свойственных его предшественникам недостатков. Ѕлагодар€ огромной универсальности с помощью него можно строить практически любые возможные иерархии правил, в точности разграничива€ и дава€ возможность управл€ть потоками данных на достаточно низком уровне.

—одержание ƒалее
ќдной страницей
—тр. 1. “еори€
—тр. 2. Bursts, Schedulers
—тр. 3. ¬ывод, примеры
 омментарии
ƒобавить комментарий

¬ведите им€:
¬ойти от:
или
¬аш комментарий:


¬ведите код:

E-mail (не об€зательно)
јдрес электронной почты не предназначен к показу и будет использован только дл€ уведомлений об ответах


«ин#10 2
—крипт дл€ динамического делени€ скорости http://www.youtube.com/watch?v=fmnzyIDa-Z4
ќтветить 
 
Fallman#20 0
–еализаци€ трафик-шейпера (Traffic Shaper) на Mikrotik - http://forum.x-drivers.ru/index.php?showtopic=3286
«апр€тали на форуме реб€та чего-то.

ќтветить 

«ащищенный 4G-смартфон - Senseit R450
—овременный защищенный смартфон по приемлемой цене
12 феврал€ 2017 / 9
—мартфон со вспышкой на передней камере - Samsung Galaxy J2 Prime
ƒешевый смартфон Samsung, улучшенна€ верси€ Galaxy J1 (2016)
5 феврал€ 2017 /
8 лучших PDF-читалок дл€ Android
ќбзор возможностей восьми различных приложений
29 €нвар€ 2017 / 1
Ќедорогой телефон с передней вспышкой - Huawei Honor 5A
ƒоступный смартфон с неплохими характеристиками
23 €нвар€ 2017 /
 
 
 омпани€ сообщила о скором анонсе процессора Exynos 9
iPhone 8 ее не получит из-за Galaxy Note 7, но порадует быстрой зар€дкой
–еклама продолжительностью в 30 секунд исчезнет в 2018 году
 омпани€ запатентовала систему, котора€ занимаетс€ диагностикой состо€ни€ диспле€
‘ункци€ будет доступна дл€ видеосв€зи
ѕо мнению руководства компании, рынок стал сверхконкурентным и не имеет перспектив
 
 

ќпрос

Ќужен ли OLED-экран iPhone?
или оставить собственный вариант в комментари€х (5)





—татистика