Назад | Перейти на главную страницу

Очереди Mikrotik и ограничение общей пропускной способности восходящего потока

С помощью маршрутизатора Mikrotik (форма встроенного Linux) я создал простые очереди для каждой машины, соответствующие исходному IP-адресу.

Каждая из 4 машинных очередей имеет неограниченный пакет 3 Мбит / с / 3 Мбит / с для Tx / Rx.

Во время speedtest.net на всех 4 машинах одновременно каждая машина показывает 3 Мбит / с (и там правильно ограничена), однако общая пропускная способность восходящего канала достигает 12 Мбит / с (мне нужно установить это значение на максимум 10 Мбит / с для восходящего потока).

Я хочу ограничить фактический трафик, проходящий через порт восходящего канала до 10 Мбит / с, независимо от того, что делают другие очереди (мне нужна эта очередь перехвата всех, чтобы последнее слово о скорости восходящего канала).

Например мне нужно:

Сценарий А

Сценарий B

Это сделано для того, чтобы разрешить небольшое превышение подписки на очереди полосы пропускания, поскольку не все будут постоянно передавать со скоростью 3 Мбит / с.

Возможно ли это, и если да, то как это сделать?

Вместо использования простых очередей вы, вероятно, захотите использовать дерево очередей. Видеть: http://wiki.mikrotik.com/wiki/Manual:Queue#Queue_Tree

Вкратце, вам понадобится очередь верхнего уровня для загрузки и отдельная очередь для загрузки, поэтому продублируйте это для каждого направления, изменяя src-address на dest-address, если это необходимо.

  1. Создайте очередь с максимальной скоростью 10 Мбит / с для:

    /queue tree add name=all_up limit-at=10M parent=machine_ingress_interface

  2. Используйте метки пакетов, чтобы пометить каждый пакет по IP-адресу источника или назначения. Например. трафик с машины A помечен как machine_a_up:

    /ip firewall mangle add action=mark chain=prerouting new-packet-mark=machine_a_up src-address=192.168.1.2

  3. Создайте очередь для формирования трафика, помеченного указанной родительской очередью:

    /queue tree add name=machine_a_up packet-mark=machine_a_up parent=all_up

В качестве альтернативы, посмотрите на PCQ. Он может делать то, что вы хотите, с меньшими усилиями.