Маршрутизаторы (роутеры) MikroTik идеальны для небольших сетей. По функционалу они не уступают значительно более дорогим аналогам, не говоря уже о софт-роутерах, в то время как по цене им конкурентов нет. В этой статье рассмотрим распределение ширины канала между пользователями сети.
Реализуется такое разделение полосы с помощью pcq-очередей (Per Connection Queue). На рисунках ниже показаны примеры работы таких очередей с заданным параметром pcq-rate и без него. Необходимо отметить, что в случае, если оба ограничения (pcq-rate и max-limit) не заданы, очередь может работать неточно. Поэтому настоятельно рекомендуется задать хотя бы одну из этих опций. Алгоритм работы PCQ очень прост: сперва он использует выбранные классификаторы, чтобы отличить один подпоток от другого, затем применяет персональные значения размера FIFO-очереди и ограничения для каждого подпотока, после чего группирует все подпотоки вместе и применяет общие значения размера FIFO-очереди и ограничения.
Параметры PCQ:
- classifier (dst-address | dst-port | src-address | src-port): выбор идентификаторов подпотока
- rate (число): максимально доступная скорость передачи данных каждого подпотока
- limit (число): размер очереди для одного подпотока (в килобайтах)
- total limit (число): размер очереди для общей FIFO-очереди (в килобайтах)
Сначала делаются в firewall правила маркировки пакетов, согласно этой маркировке (идентификаторам) пакеты будут попадать в ту или другую очередь. Критериев маркировки может быть очень много — интерфейс, адрес, сеть, список адресов и т.д. Например, в этом примере маркируются проходящие пакеты для подсети 192.168.188.128/25 для входящего и исходящего трафика соответственно.
Теперь создаются собственно PCQ. В этом примере созданы pcq-download и pcq-upload. Хотя можно также использовать pcq-download-default и pcq-upload-default, если нет необходимости создавать несколько иерархий очередей. Затем создаются собственно очереди с необходимыми параметрами.