ƒелим »нтернет или 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 весьма логичен и не так уж сложен, как могло показатьс€ сразу. ќн был прин€т многими производител€ми программного и аппаратного обеспечени€ за свою гибкость, надежность и отсутствие свойственных его предшественникам недостатков. Ѕлагодар€ огромной универсальности с помощью него можно строить практически любые возможные иерархии правил, в точности разграничива€ и дава€ возможность управл€ть потоками данных на достаточно низком уровне.

Bursts

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

–азработчики Mikrotik предоставили в распор€жение все необходимые инструменты дл€ управлени€ описанной выше пиковой скоростью. —ледующие параметры характеризуют ее поведение:

  • burst-limit - скорость, котора€ будет доступна сразу при подключении;
  • burst-threshold Ц средн€€ скорость за последние burst-time секунд;
  • burst-time - врем€ дл€ подсчета burst-threshold.

ћомент, когда клиенту или классу нужно выдать максимальную скорость, определ€етс€ следующим образом. –аз в 1/16 времени burst-time вычисл€етс€ загрузка канала на указанное число секунд. ≈сли средн€€ загрузка составила менее burst-threshold, то клиенту или классу выдел€етс€ указанна€ в burst-limit скорость до тех пор, пока она не превысит burst-threshold. ѕосле этого действует ограничение max-limit до тех пор, пока снова не случитс€ понижение скорости менее burst-threshold.

”становим следующие параметры limit-at=128000/128000, max-limit=256000/256000, burst-limit=512000/512000, burst-treshold=192000/192000, burst-time=8, и понаблюдаем что случитс€ с графиком загрузки канала от одного клиента:

ƒанный график характерен дл€ случа€ с закачкой большого файла по протоколу http. ѕосле первой секунды средн€€ загрузка канала будет равна (0+0+0+0+0+0+0+512)/8=64 kbps, что менее установленного нами параметра burst-threshold. ѕосле второй секунды средн€€ скорость будет равна (0+0+0+0+0+0+512+512)/8=128kbps. ѕосле третьей секунды средн€€ скорость превысит показатель burst-threshold. ¬ этот момент скорость резко упадет до значени€ параметра max-limit  и будет держатьс€ на этом уровне до тех пор, пока средн€€ загрузка канала не станет меньше burst-threshold  и снова не произойдет выдача burst скорости.

Schedulers

–ассмотрим алгоритмы так называемых Schedulers, о которых упоминалось выше. ќбычно они примен€ютс€ вкупе с шейперами, однако некоторые из них так же обладают функци€ми ограничени€ скорости. ‘изически Scheduler предшествует шейперу и представл€ет ему уже подготовленные очереди пакетов, к которым следует примен€ть ограниени€.

PFIFO/BFIFO

Packet/Bytes (FIFO) алгоритм, основанный на принципе первый пришел-первый ушел. »спользуетс€ дл€ ethernet-интерфейсов. ≈динственный параметр, используемвый дл€ конфигурировани€ данного алгоритма, - это pfifo-limit (bfifo-limit). ќн указывает на количество байт, которые могут хранитьс€ в выходном буфере. Ќе попавшие в буфер пакеты будут разрушатьс€. √рафически алгоритм можно изобразить с помощью следующей схемы. ѕо сути дела PFIFO/BFIFO ничего особенного из себ€ не представл€ет и никаких приемуществ не дает. ќн просто есть и используетс€ там, где его использовать целесообразноЕ

SFQ

SFQ (Stochastic Fairness Queuing) Ц этот алгоритм можно назвать "случайно-честным". ќн примен€тс€ тогда, когда требуетс€ предоставить всем TCP/UDP-подключени€м одинаковую возможность по передаче данных. ƒл€ конфигурировани€ SFQ используетс€ два параметра:

  • sfq-perturb Ц указывает через какое врем€ нужно мен€ть хэширующий алгоритм, который определ€ет как будут формироватьс€ под-очередь запросов;
  • pcq-allot Ц определ€ет количество байт в под-очереди.

SFQ работает по следующему принципу: алгоритм изымани€ пакетов из под-очередей одновременно выпускает в выходной интерфейс pcq-allot количество байт, а хэширующий алгоритм добавл€ет к каждый под-очереди pcq-allot байт, сохран€€ при этом равновесие и одинаковую длину всех подочередей. —хему работы SFQ можно сравнить с м€сорубкой, в которой через выходную решетку одновременно изо всех дырок в одинаковом количестве выходит фарш :).

јлгоритм SFQ рекомендуетс€ использовать в случа€х, когда канал сильно загружен и необходимо предоставить приложени€м одинаковую возможность по передаче данных. ≈динственным его недостатком €вл€етс€ то, что одно приложение, открыв много потоков, может заглушить остальные подключени€.

PCQ

PCQ (Per Connection Queuing) €вл€етс€ частным случаем SFQ за тем исключением, что формирование потоков в под-очереди будет происходить в соответствии с неким правилом. Ёто может быть адрес источника/получател€ и порт источника/получател€. “аким образом можно равномерно распределить скорость между участниками вне зависимости от количества открытых подключений. јлгоритм предоставл€ет следующие параметры дл€ конфигурировани€:

  • pcq-classifier Ц параметр дл€ формировани€ очередей. ћожет принимать следующие значени€:
    • src-address Ц параметром дл€ группировки в субочереди служит адрес источника;
    • src-port Ц параметром дл€ группировки в субочереди служит порт источника;
    • dst-address Ц параметром дл€ группировки в субочереди €вл€етс€ адрес назначени€;
    • dst-port Ц параметром дл€ группировки в субочереди служит порт получател€.
  • pcq-rate Ц число, которое указывает в какой пропорции раздел€ть трафик по очеред€м. ѕо-умолчанию 0.
  • pcq-limit Ц длина под-очереди;
  • pcq-total-limit - общее количество пакетов во всех очеред€х.

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

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

RED

RED (Random Early Detection) Ц алгоритм, призванный выравнивать пропускную способность и сглаживать скачки, контролиру€ средний размер очереди.  огда ее размер достигает значени€ red-min-threshold алгоритм удал€ет случайно выбранный пакет. „исло удаленных пакетов растет с увеличением среднегого размера очереди. ≈сли размер достигает значени€ red-max-threshold все пакеты удал€ютс€. ќднако случаютс€ ситуации, когда реальный размер очереди (не средний) значительно больше red-max-threshold. ¬ таком случае все пакеты, выход€щие за рамки предела red-limit, удал€ютс€.

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

ќт теории к практике

—ейчас мы знаем все необходимое дл€ того, чтобы построить необходимые нам правила. “ак как на практике применение алгоритмов SFQ и RED используетс€ крайне редко, то на примерах их работы мы останавливатьс€ не будем.

Queue Trees

Queue Trees - особый тип очередей, который пр€мо отражает устройство шейпера HTB. ќн позвол€ет строить деревь€ правил (классов) и на самом низком уровне управл€ть пакетами.

¬кратце объ€сним значение основных элементов управлени€, присутствующих в Queue Trees:

  • burst-limit (целое) Ц максимальна€ burst-скорость;
  • burst-threshold (целое) Ц средн€€ загрузка канала, при которой разрешено выдать burst-limit;
  • burst-time (врем€) Ц используетс€ дл€ подсчета средней загрузки канала;
  • flow (text) Ц поток, маркированный в /ip firewall mangle;
  • limit-at (целое) Ц гарантированна€ скорость;
  • max-limit (целое) Ц максимальна€ скорость;
  • name (text) Ц им€ очереди;
  • parent (text) Ц родитель в иерархии классов HTB;
  • priority (целое: 1..8) Ц приоритет очереди;
  • queue (text) Ц тип очереди. «адаетс€ в /queue type.

ѕримеры

I. »так, создадим правило, которое позволит получить клиентам локальной  или виртуальной сети максимальную скорость и минимальное врем€ отклика при обращении к сайту www.x-drivers.ru , однако разделит скорость между всеми поровну.

1. ѕометим все пакеты идущие от пользователей на адрес 66.148.73.54 и обратно. ƒл€ этого нужно создать 4 правила, два из которых помет€т подключени€ в пр€мом и обратом направлении, а другие два помет€т пакеты в этих подключени€х. Ќеобходимо обратить внимание, что очереди работают именно с пакетами,  а не помеченными подключени€ми. «ачастую это создает у новичков вопросы плана: "я пишу все правильно, а оно не работает. ћожет это глюки?" ƒл€ таких шаманов ниже приведен пример, как нужно делать, чтобы ќЌќ работало.

/ip firewall mangle add chain=forward src-address=192.168.11.0/24 dst-address=66.148.73.54/32 action=mark-connection new-connection-mark=users-con-up

/ip firewall mangle add connection-mark=users-con-up action=mark-packet
new-packet-mark=users-up chain=forward
/ip firewall mangle add chain=forward src-address=66.148.73.54/32
   action=mark-connection new-connection-mark=users-con-down

/ip firewall mangle add connection-mark=users-con-down action=mark-packet
   new-packet-mark=users-down chain=forward
 


2. —оздадим два типа PCQ очереди, подключени€ в одной из которых мы будем классифицировать по вход€щему, а другие по исход€щему адресу.

/queue type add name=pcq-download kind=pcq pcq-classifier=dst-address
/queue type add name=pcq-upload kind=pcq pcq-classifier=src-address


3. —оздадим очереди дл€ вход€щего и исход€щего трафика

/queue tree add name=Download parent=Local max-limit=10240000 burst-limit=200000 burst-time=10
/queue tree add parent=Download queue=pcq-download packet-mark=users-down
/queue tree add name=Upload parent=Public max-limit=160000 burst-limit=200000 burst-time=10
/queue tree add parent=Upload queue=pcq-upload packet-mark=users-up


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

ѕрактически в Queue Trees мы можем оперировать только ограничением скорости. ќстальные параметры, такие как адрес источника, получател€, врем€ суток, протокол, порты и т.д. указываютс€ в разделе Mangle-файервола.

ѕодобным способом также можно сделать хороший пинг на определенные адреса, даже во врем€ серьезной загрузки канала. ѕриведем пример таких правил дл€ сервера www.cybernet.by.

ƒл€ этого нужно создать четыре правила в Firewall:

  • в первом пометим все подключени€, у которых адрес получател€ 195.222.70.250 именем cybernet-connection-up;
  • пакеты в подключени€х cybernet-connection-up именем cybernet-packet-u;
  • в первом пометим все подключени€ у которых адрес источника 195.222.70.250 именем cybernet-connection-from;
  • пакеты в подключени€х cybernet-connection-from именем cybernet-packet-from.

/ip firewall mangle add chain=prerouting dst-address=195.222.70.250 action=mark-connection new-connection-mark=cybernet-connection-up passthrough=yes

/ip firewall mangle add chain=forward connection-mark=cybernet-connection-up action=mark-packet new-packet-mark=cybernet-packet-up passthrough=yes

/ip firewall mangle add chain=prerouting src-address=195.222.70.250 action=mark-connection new-connection-mark=cybernet-connection-from passthrough=yes

/ip firewall mangle add chain=forward connection-mark=cybernet-connection-from action=mark-packet new-packet-mark=cybernet-packet-from passthrough=yes
 


—ледующим шагом создадим два правила в Queue Trees: одно дл€ вход€щего потока, другое дл€ исход€щего.

/queue tree add  name="queue1" parent=global-out packet-mark=cybernet-packet limit-at=0
     queue=default priority=1 max-limit=50000 burst-limit=0 burst-threshold=0
     burst-time=0s 

/queue tree add  name="queue2" parent=global-in packet-mark=cybernet-packet-from limit-at=0 queue=default priority=1 max-limit=50000 burst-limit=0 burst-threshold=0
     burst-time=0s


¬ышеописанные действи€ позвол€т пакетам, приход€щим и уход€щим с адреса 195.222.70.250, попадать в приоритетные очереди и всегда иметь гарантированные 50 Kbit/s.

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

Simple Queues

–ассмотрим тип очередей Simple Queues. Ёти очереди €вл€ютс€ простыми, а если быть точнее, то упрощенными. ¬ самом деле дл€ их использовани€ не нужно примен€ть промаркированные пакеты из Firewall, однако при этом тер€етс€ некотора€ гибкость. «десь в качестве основных параметров, к которым следует примен€ть правило, относ€тс€ адреса источника и получател€. Ќа вкладке Advanced утилиты Winbox можно обнаружить и некоторые другие параметры, однако они не относ€тс€ к списку об€зательных к заполнению.

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

  • работа с P2P-трафиком;
  • применение очередей в определенных интервалах времени;
  • приоритезаци€ потоков;
  • использование в качестве параметров несколько цепочек пакетов, маркированных в  /ip firewall mangle;
  • шейпинг бидеракционного трафика (одно правило дл€ вход€щего и исход€щего потока).

—тоит отметить, что начина€ с версии Mikrotik 2.9 в Simple Queues стало возможным указывать параметр Parent дл€ простых очередей. “аким образом можно строить практически аналогичные деревь€ классов, как и дл€ Queue Trees за тем исключением, что здесь оперировать будем не пакетами и потоками, а адресами.

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

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

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

  • burst-limit (целое) Ц максимальна€ burst-скорость;
  • burst-threshold (целое) Ц средн€€ загрузка канала при которой разрешено выдать burst-limit;
  • burst-time (врем€) Ц используетс€ дл€ подсчета средней загрузки канала;
  • dst-address (IP адрес/маска) Ц адрес назначени€;
  • dst-netmask (netmask) Ц маска подсети дл€ dst-address;
  • interface (text) Ц интерфейс, дл€ которого предназначаетс€ правило;
  • limit-at (целое/целое) Ц гарантированный канал;
  • max-limit (целое/целое) Ц максимальна€ величина канала;
  • name (text) Ц им€ правила;
  • p2p (any | all-p2p | bit-torrent | blubster | direct-connect | edonkey | fasttrack | gnutella | soulseek | winmx) Ц тип P2P-трафика;
  • packet-marks (name; по умолчанию: "") - цепочка пакетов, промаркированных в /ip firewall mangle;
  • parent (name) Ц им€ родительской очереди;
  • priority (целое: 1..8) Ц приоритет. 1- больший, 8-самый маленький;
  • queue (name/name; default: default/default) Ц им€ очереди из /queue type;
  • target-addresses (IP address/netmask) Ц исходный адрес;
  • time (time-time,sat | fri | thu | wed | tue | mon | sun{+}; по умолчанию: "") - применить очередь к временному интервалу;
  • total-burst-limit (целое) Ц максимальна€ burst скорость в очереди global-total;Х    total-burst-threshold (целое) Ц средн€€ скорость в очереди global-total;
  • total-burst-time (time) - используетс€ дл€ подсчета средней загрузки канала в очереди global-total;
  • total-limit-at (целое) Ц гарантированна€ скорость в очереди global-total (вход€щий+исход€щий каналы);
  • total-max-limit (целое) Ц максимальна€ скорость передачи данных в очереди global-total.

¬есьма интересной €вл€етс€ возможность управл€ть вход€щим и исход€щим трафиком вместе. Ёто позвол€ет клиентам максимально использовать проплаченный канал.

ѕримеры

—эмулируем дл€ нашего клиента канал с 64/42 kbit/s с гарантированной скоростью 32/32 kbit/s в будние дни и 256/128 kbit/s с гарантированной скоростью 64/64 kbit/s в выходные.

–езультатом нашей работы будет два правила:

/queue simple add target-addresses=192.168.11.1/32 limit-at=32000/32000 max-limit=64000/42000  time=00:00:00-00:00:00,mon,tue,wed,thu,fri

/queue simple add target-addresses=192.168.11.1/32 limit-at=64000/64000 max-limit=256000/128000  time=00:00:00-00:00:00,sat,sun


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

ѕри желании можно позаботитьс€ о быстром открытии страниц, добавив параметры burst-limit и burst-time.

ƒанное правило можно было бы несколько видоизменить, разделив указанную скорость между всей сетью 192.168.11.0.24. ¬ этом случае дл€ параметра queue нужно указать тип очереди pcq-download, приведенный выше в примере с Queue Trees.

ѕростые очереди позвол€ют достаточно просто реализовать возможность предоставлени€ на определенные адреса неограниченной скорости.

ƒобавим к вышеприведенным правилам ещЄ одно, которое будет выгл€деть следующим образом:

/queue simple add target-addresses==192.168.11.1/32 dst-address=84.201.225.124 limit-at=1024000/1024000 max-limit=2048000/2048000


¬ результате чего клиент с адресом 192.168.11.1 получит доступ к адресу 84.201.225.124 со скоростью от 1 до 2 мегабит.

ѕри выделении гарантированной пропускной способности нужно помнить, что сумма limit-at всех клиентов должна быть меньше или равна общей пропускной способности канала. “олько в этом случае можно говорить о какой-то гарантированной скорости.

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

≈щЄ одно замечание св€занно с тем, что напр€мую вписать URI-адрес в поле ввода IP-адреса не представл€етс€ возможным, но иногда необходимо, так как многие сайты имеют динамические адреса. ƒанную проблему можно решить, прописав необходимый адрес ресурса в разделе /ip firewall address-list и дав ему им€, по которому в последствии можно обратитьс€.

¬ывод

¬озможности по управлению трафиком в Mikrotik 2.9 претерпели некоторые изменени€ по сравнению с предыдущими верси€ми. Ёто позволило стать этой операционной системе р€дом и даже несколько потеснить аппаратные решени€ от Cisco, сохранив при этом удобство и огромную гибкость в конфигурировании. ќбъединив Mikrotik и биллинг с поддержкой протокола Radius, можно получить мощную систему, подход€щую как дл€ сети среднего провайдера, так и в качестве сервера, раздающего »нтернет внутри локальной домашней сети или сети предпри€ти€. —тоит отметить, что вышеописанные возможности шейпинга можно применить не только к разделению доступа в интернет, но и к созданию резервных каналов св€зи. ¬ сочетании с беспроводными технологи€ми RouterOS может превратить груду уже никому не нужного металлолома и нескольких беспроводных сетевых карт в мощную Wi-Fi соту с разделением доступа и предоставлением гарантированной полосы пропускани€ своим клиентам.

ќбсудить статью и задать вопросы автору на форуме!
„итать статью "Router OS Mikrotik - мечта сисадмина"

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

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


¬ведите код:

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


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

ќтветить 

—мартфон с двум€ камерами сзади - Honor 8
ƒоступный смартфон с классными характеристиками
9 декабр€ 2017 /
LTE-планшет на 8 дюймов - Samsung Galaxy Tab A 8.0 (2017)
»нтересный планшет с металлическим корпусом и хорошей камерой
2 декабр€ 2017 /
Ќедорогой хороший планшет на 10 дюймов - Lenovo Tab 4 10
Ќовый 10-дюймовый планшет за приемлемые деньги
26 но€бр€ 2017 / 1
Ћучший смартфон 2017 года - Samsung Galaxy Note 8
ƒорогой, но реально лучший смартфон
12 но€бр€ 2017 / 2
 
 
«акон о мессенджерах предусматривает штрафы до 1 миллиона рублей
ќно исправлени€ ошибку совместного доступа к HomeKit
–азработка революционной функции многозадачности зат€гиваетс€
ќно регистрирует клавиатурный набор
ќна будет формироватьс€ на основании лайков пользовател€
ѕока помощник понимает только английский и испанский €зыки
 
 

ќпрос

Android какой версии у вас?
или оставить собственный вариант в комментари€х (5)





—татистика