Прочее:Ограничение скорости и равномерное распределение ширины канала

Материал из MikroTik WiKi rus
Перейти к: навигация, поиск

Per Connection Queue (PCQ) разновидность очередей, которая может быть использована для того, что бы динамически выравнять или ограничить трафик множеству пользователей.

Схема сети

схема сети (ограничение скорости (шейпер) на МикроТик)

Ограничение скорости и равномерное распределение канала между потребителями

Задача

всем пользователям ограничить скорость выгрузки на 5 Мб/с, а скорость загрузки на 10 Мб/с. В этом условии подразумевается, что ограничение общее на всех, а не на каждого пользователя в отдельности.

Первым делом может возникнуть вопрос: а зачем нам делать ограничение, если вдруг можно получать больше? Например, по договору с провайдером скорость 10 Мбит/с на загрузку и выгрузку, но провайдер дает немного больше. Ответ простой. Для того, что бы мы могли настроить QoS (равномерное распределение ширины канала между потребителями, приоритезация для IP-телефонии и др.) маршрутизатор должен знать относительно какой скорости ему делать выделение скоростей. Это условие является обязательным. Если ограничение максимальной скорости не указать или указать скорость выше реальной, то QoS не сможет работать корректно.

Вариант с одним Интернет-каналом

Для идентификации интерфейсов можно указать их имена:
/queue simple
add max-limit=5M/10M name="Internet download/upload limit" target=bridge-LAN


или IP-адреса:
/queue simple
add max-limit=5M/10M name="Internet download/upload limit" target=10.1.100.0/24

Распространенная ошибка

У этого варианта есть распространенная ошибка в которой не указывают значение параметра "target" и вместо него используют значение параметра "dst":

/queue simple
add dst=ether1-WAN1 max-limit=5M/10M name="Internet download/upload limit" target=""

В качестве аргумента корректности такой настройки озвучивают, что все работает. И действительно, если в качестве значения максимальных скоростей будут указаны максимальные скорости (например так:max-limit=10M/10M), то при проверка выяснить, что ограничение работает. Но если скорости на загрузку и выгрузку будут различаться, как в нашем примере (max-limit=5M/10M), при проверке выясниться, что значение приведенное для загрузки срабатывает для выгрузки и наоборот.

Вариант с двумя Интернет-каналами

Если используется два Интернет-канала, то надо создать два отдельных правила (по одному для каждого WAN-канала):

/queue simple
add dst=ether1-WAN1 max-limit=5M/10M name="Internet download/upload limit" target=bridge-LAN
add dst=ether2-WAN2 max-limit=8M/16M name="Internet download/upload limit" target=bridge-LAN

Если не сделать отдельное правило для каждого внешнего канала, то ограничение будет применяться суммарно к обоим каналам. Т. е. можно будет загружать не со скоростью 10 Мб/с с одного и 10 Мб/с с другого одновременно, а 10 с обоих суммарно. Разумеется это касается ситуации, когда оба внешних канала работают одновременно. Если внешние каналы настроены в режиме резервирования, то чаще всего Интернет-провайдер предоставляет разные скорости и поэтому надо делать два разных канала, что бы указать актуальное значение скорости.

Равномерное распределение ширины канала между потребителями

В предыдущих примерах мы настроили ограничение верхней границы скорости загрузки и выгрузки. Но при этом может сложиться ситуация в которой кому-то из потребителей достается большая скорость чем другим. В этом разделе мы настроим возможность делить скорость между потребителями равномерно, т. е. 1 пользователь сможет делать загрузку со скоростью 10 Мбит/с, 2 пользователя - со скоростью 5 Мбит/с, 4 пользователя - со скоростью 2,5 Мбит/с и т. д. При этом, если одному пользователю будет нужно только 2 Мбит/с, а еще двоим по 20 Мбит/с, то первому достанется достанется именно 2 Мбит/с (т. к. это больше чем 1/3 от 10 Мбит/с), а двум другим достанется оставшийся канал поровну, т. е. по 4 Мбит/с.

/queue simple
add max-limit=5M/10M name="Internet download/upload limit" queue=pcq-upload-default/pcq-download-default target=10.1.100.0/24

Ограничение скорости для каждого отдельного потребителя

Задача: каждому отдельному пользователю ограничить скорость выгрузки на 1 Мб/с, а скорость загрузки на 2 Мб/с. Т. е. один пользователь будет загружать со скоростью 2 Мб/с, 2 пользователя будут загружать, каждый со скоростью 2 Мб/с, т. е. суммарно 4 Мб/с, 4 пользователя будут загружать, каждый со скоростью 2 Мб/с, т. е. суммарно 8 Мб/с и т. д. пока суммарная скоростью "не упрется" в скорость Интернет-канала.

/queue type
<code>add name="pcq-download" kind=pcq pcq-rate=2M pcq-classifier=dst-address

add name="pcq-upload" kind=pcq pcq-rate=1M pcq-classifier=src-address