Для демонстрации настройки простых очередей рассмотрим пример на рисунке 5.1. Каждое из устройств на схеме является маршрутизатором, функционирующем на RouterOS. R1 и R2 являются потребителями трафика – на них будет запущен bandwidth-test по направлению к BT_server. На маршрутизаторе R_queue будет выполнена настройка простых очередей.
Рисунок 5.1 — Схема сети для рассмотрения практических примеров
Начальная конфигурация устройств:
R1:
R2:
BT_server:
R_queue:
5.1 Ограничение скорости для подсети
Выполним ограничение скорости для подсети 172.16.1.0/24 upload 10 Мбит/с, download 5 Мбит/с. Для этого на R_queue выполним команду /queue simple add target=172.16.1.0/24 max-limit=10M/5M, а на R1 и R2 запустим тестирование пропускной способности.
Конфигурация R_queue:
Рисунок 5.2 — Результаты тестирования downlink
Рисунок 5.3 — Результаты тестирования в направлении uplink
На рисунках 5.2 и 5.3 видно, что трафик потребителя R1 ограничен, в соответствии с задачей, ~10Мбит/~5Мбит, тогда как пропускная способность R2 ограничивается физическими возможностями порта.
5.2 Распределение общей полосы по приоритетам
В примере 5.1 был рассмотрен простейший способ ограничения скорости для определённой подсети. Такая реализация может быть использована в небольших сетях, либо как временное решение. На практике чаще пропускная способность канала должна быть разделена между несколькими потребителями в разных пропорциях.
Рассмотрим пример, в котором пропускная способность канала связи равна 10Мбит/с и должна быть поделена между двумя потребителями: первый потребитель ограничен 8 Мбит/с, второй — 5 Мбит/с. Поскольку суммарная пропускная способность выше полосы канала (8 Мбит/с+5 Мбит/с > 10 Мбит/с), то установим приоритет для второго потребителя.
Для этого создадим иерархию простых очередей: родительская очередь ограничена 10 Мбит/с, а дочерние — 8 и 5 Мбит/с соответственно, причём имеют разные приоритеты. Важно отметить, что target родительской очереди должен соответствовать target всех дочерних.
Конфигурация R_queue:
Рисунок 5.4 — Результаты тестирования в направлении downlink
Рисунок 5.5 — Результаты тестирования в направлении uplink
Пропускная способность канала распределяется в соответствии с приоритетами — сначала 5 Мбит/с выделяется R2, а потом оставшаяся полоса — R1. R2 не получает всю пропускную способность канала связи, т.к. выставлено ограничение max-limit=5M. При этом, если остановить потребление трафика на R2, R1 получит пропускную способность в соответствии с ограничениями — 8 Мбит/с:
Рисунок 5.6 — Результаты тестирования в направлении downlink
Рисунок 5.7 — Результаты тестирования в направлении uplink
5.3 Использование CIR и MIR при распределении пропускной способности
Недостатком решения, рассмотренного в примере 5.2, является то, что при отсутствии одного из потребителей, часть пропускной способности не используется, даже, если в ней есть потребность со стороны активного потребителя трафика. Так, например, при отсутствии трафика R1, R2 сможет использовать только 5 Мбит/с.
Решим эту задачу, задав значения CIR и MIR. Для обоих потребителей установим MIR равным 10 Мбит/с, а CIR — 2 Мбит/с. Приоритеты останутся теми же: приоритизация трафика второго потребителя будет выше.
Конфигурация R_queue:
Рисунок 5.8 — Результаты тестирования в направлении downlink
Рисунок 5.9 — Результаты тестирования в направлении uplink
Сначала пропускная способность распределяется в соответствии с CIR — по 2 Мбит/с, а затем, т.к. приоритет R2 выше, чем у R1, оставшаяся часть полосы канала предоставляется R2: 10Мбит — 2 Мбит -2 Мбит = 6 Мбит, т.е. итоговая пропускная способность R2 – 8 Мбит/с (2 Мбит/с от CIR + 6 Мбит/с при приоритетном распределении полосы канала). При этом, если отключить R2, то R1 начинает утилизировать всю доступную полосу:
Рисунок 5.10 — Результаты тестирования в направлении downlink
Рисунок 5.11 — Результаты тестирования в направлении uplink