Облачное хранилище

Использование Simple Queue для ограничения скорости в Mikrotik.

В этой статье я опишу как можно настроить QoS на Mikrotik для работы, скажем в небольшой корпоративной сети до 42 компьютеров. Предлагаемая ниже схема маркировки пакетов и шейпинга трафика позволяет получать хорошие задержки при практически полной загрузке канала интернета. Так же можно добиться довольно быстрого открытия страниц при скачке торрентов другими пользователями. Канал делится поровну между качающими в любой конкретный момент пользователями. В общем, это хорошо реализованая идея динамического шейпинга на микротик. Кроме того предлагается пиринговый трафик отделить от основного и шейпить по другому.

Отмаркируем пакеты пиринговых (гостевых) ресурсов byfly. Дабы упростить задачу воспользуемся терминалом, чтобы указать те адреса, которые мы будем считать пиринговыми:

terminal

Откроем терминал и вставим туда команду:

ip firewall address-list

Далее вставим:

add address=86.57.151.0/27 disabled=no list=Guest

add address=82.209.245.151 disabled=no list=Guest

add address=194.158.206.240 disabled=no list=Guest

add address=194.158.206.241 disabled=no list=Guest

add address=194.158.206.246 disabled=no list=Guest

add address=86.57.246.0/24 disabled=no list=Guest

add address=93.84.112.0/21 disabled=no list=Guest

add address=178.124.128.0/21 disabled=no list=Guest

add address=91.149.189.0/25 disabled=no list=Guest

add address=91.149.189.128/26 disabled=no list=Guest

add address=93.125.53.0/24 disabled=no list=Guest

add address=178.172.148.0/24 disabled=no list=Guest

add address=91.149.157.192/26 disabled=no list=Guest

add address=93.125.30.0/23 disabled=no list=Guest

add address=86.57.251.28 disabled=no list=Guest

add address=86.57.253.1 disabled=no list=Guest

add address=193.232.248.79 disabled=no list=Guest

add address=193.232.248.80 disabled=no list=Guest

add address=194.158.202.59 disabled=no list=Guest

add address=82.209.195.15 disabled=no list=Guest

add address=86.57.250.0/23 disabled=no list=Guest

add address=91.149.157.0/25 disabled=no list=Guest

add address=194.158.199.177 disabled=no list=Guest

add address=82.209.240.241 comment=DNS disabled=no list=Guest

add address=82.209.243.241 comment=DNS disabled=no list=Guest

 

В результате выполнения должно получится что-то подобное:

result

Отмаркируем соединения пользователей на пиринговые (гостевые) ресурсы. Для этого переходим на вкладку IP-Firewall-Mangle и нажимаем плюсик +:

plus

На вкладке Advanced выберем список адресов Guest:

4 guest

Выберем маркировку соединенений меткой guest-connection:

5 guest_connection

Создадим правило маркировки гостевых пакетов:

6 rule

Чтобы исключить дальнейшую перемаркировку пакетов последующими правилами снимаем галочку с passthrough:

7 passthrougth

В результате получаем 2 правила маркировки гостевых соединений и пакетов:

8 two_rules

Нажмём ещё раз плюсик, чтобы создать правило маркировки оставшихся пакетов, как идущих из интернета. Сначала маркируем все соединения:

9 mark

10 mark_connection

Маркируем пакеты идущие через соединения internet-connection:

10 mark_connection

12 mark_packed

Получится четыре правила в Mangle:

mangle

Настроим Simple Queues для канала интернета в 6M/0.5M и скорость на ADSL порту 12M/0.8M. Настроим шедуллер для исходящего трафика. Будем его делить между пользователями поровну классифицируя согласно IP копьютеров в сети.

13 out

Так же настроим шедуллер для входящего трафика. Трафик классифицируем:

14 in

Создадим родительскую очередь All, через которую будет проходить весь трафик. Укажем сети, в которых находятся наши клиенты и ограничения скорости для них 10M/0.5M. Нужно указывать скорости, которые ниже на 15-25% чем скорости на ADSL порту, иначе возможно увеличение задержек и неправильная работа шейпера, при использовании канала на полную. Очередь All всегда должна быть под 0 номером в таблице.

15 all

Перейдём на вкладку Advanced и выберем пакеты, которые мы от маркировали в мангле метками «internet-packet«, «guest-packet«. Установим гарантированные скорости равными максимальным и включим для них ранее созданные шедуллеры «up-pcq» и «down-pcq»:

16 up_down

Создадим дочернюю очередь, к которой будет относится пиринговый «гостевой» трафик. Target Address – пишем сеть, в которой находятся клиенты, в нашем случае — 192.168.88.0/24. Чтобы всё хорошо работало, Max limit в квоте Guest должен быть немного меньше чем в квоте All. Очередь Guest должна быть под номером 1 в таблице.

17 guest

Одно из условий правильной работы HTB шейпера: cумма гарантированных скоростей «limit-at» дочерних очередей должна быть меньше максимальной скорости «max-limit» родительской очереди. Установим 2m/64k гарантированной полосы на пиринговые ресурсы. Увеличим приоритет квоты Guest до 7, и выберем правильный шедуллер (Queue Type):

18

Создадим дочернюю по отношению к All очередь ByFly, по которой пойдёт интернет трафик. Из опыта скажу, что 10% канала 6m/512k придётся зарезервировать для нормальной работы шейпера. Это связано с особенностями устройства HTB деревьев и тем, что провайдер иногда может немного недодавать вам полосу. Кроме того, возможно дрожание в канале, если резервировать меньше. Итак, Max-limit устанавливаем 5400k/430k для нашего канала.

19 max_limit

Укажите для очереди ByFly гарантированные скорости, тип шедуллера, родительскую очередь, приоритет и маркированные пакеты согласно скрину:

20 byfly_queue

Создадим в очереди ByFly очередь для пользователя user1 c такими настройками:

  • максимальная скорость 5m/256k
  • IP адрес 192.168.88.254
  • имя квоты для него user1

 

21 user1

Пакеты становящиеся в очередь: internet-packet.

Шедуллеры: up-pcq down-pcq.

Родительская очередь: ByFly.

Приоритет: 5.

Гарантированая полоса 128k/10k, выделяемая пользователю, позволит создать до 42 очередей в родителе ByFly для клиентских компьютеров (5400k/128k=42 очереди, 430k/10k=43 очереди).

21 kvoty

После добавления пользователей дерево выглядеть будет так в порядке обработки очередей:

22 tree1

Или так, в порядке старшинства очередей:

23 tree2