Настройка роутера с нуля (продолжение).Приоритезация трафикаИсточники:
Руководства:Очередь (Queue)Mikrotik-Qos Приоритезация по типу трафика и деление скоростиВ первую очередь, я хочу, что бы P2P-трафик не мешал работе прочих протоколов. В особенности тех приложений, с которыми люди работают непосредственно, а не в фоновом режиме: HTTP, VoIP...
Самое простое, что можно сделать, это выделить весь p2p и направить этот поток на провайдера, которого не жалко:
Код: Выделить всё
/ip firewall mangle
add chain=prerouting action=mark-routing p2p=all-p2p new-routing-mark=to_ether2
Разумеется, у вас уже должна быть подготовлен маршрут для потоков с этой меткой:
Код: Выделить всё
/ip route
add comment="Turn marked connection to ether2" distance=3 gateway=ether2 routing-mark=to_ether2
Можно ограничить канал для этого вида трафика используя простую очередь (Simple Queues).
Выделяем P2P-поток и помечаем каждый пакет в этом потоке:
Код: Выделить всё
/ip firewall mangle
add action=mark-connection chain=prerouting new-connection-mark=p2p_conn p2p=all-p2p
add action=mark-packet chain=prerouting connection-mark=p2p_conn new-packet-mark=p2p_pack
После чего создаём простую очередь с наименьшими и наибольшими ограничениями:
Код: Выделить всё
/queue simple
add name=p2p limit-at=1M/1M max-limit=5M/5M packet-marks=p2p_pack target=192.168.1.0/24
Однако, здесь есть тонкость, которую никак нельзя обойти стороной. Посмотрим на это же правило в полном виде:
Код: Выделить всё
name="p2p" target=192.168.1.0/24 parent=none packet-marks=p2p_pack priority=8/8 queue=default-small/default-small limit-at=1M/1M max-limit=5M/5M burst-limit=0/0 burst-threshold=0/0 burst-time=0s/0s total-queue=default
Здесь обязательно нужно увидеть, что это правило состоит из двух совершенно разных частей: одна часть описывает
очередь пакетов, а вторая -
HTB (вёдра c марками).
Однако, мне не нужны всплески - для торрентов это бессмысленно!
Поэтому все параметры, относящиеся к ведру (burst-*) равны нулю. Другими словами ведро отсутствует.
name="p2p" - это произвольное имя для нашей очереди;
target=192.168.1.0/24 - это целевая подсеть. Любой поток, как вы понимаете, имеет направленность. В данном случае мы явно определяем, что будем работать с потоком, который течёт в локальную сеть;
parent=none - сиротка, значит.
В случае с иерархическим деревом очередей (Queue Tree) этим ключём мы стыкуем колена, указывая к какой вышестоящей очереди подключать. Значение "none" говорит о том, что это либо корень дерева, либо вообще не дерево, а простая очередь (Simple Queues), как в рассматриваемом случае.
packet-marks=p2p_pack - в очередь заворачиваются все пакеты с этой меткой.
priority=8/8 - важность самой очереди относительно других очередей. Т.е. имеет значение лишь в случае дерева (Queue Tree). А если очередь одна, то с кем ей меряться?
queue=default-small/default-small - вид очереди. В нашем случае - просто очередь без всяких выкрутасов и перетасовок пакетов.
На этом описание очереди пакетов заканчивается и начинается описание устройства подачи марок.
max-limit=5M/5M - сечение основной подающей трубы;
limit-at=1M/1M - сечение зелёного рукава. Этот поток железно будет выделен. Оставшиеся 4М пойдёт в жёлтый рукав. Пакеты, помеченные из жёлтого рукава могут быть отброшены в случае перегрузки канала.
burst-limit=0/0 burst-threshold=0/0 burst-time=0s/0s - уже говорил.
total-queue=default - это отдельный разговор. Чуть позже допишу...