Привет, Хабр! Это вторая часть статьи о балансировке между провайдерами на Mikrotik. С первой части прошёл почти год, за это время многое изменилось в жизни (недавно появился новый член семьи), поэтому такая большая задержка.
В первой части мы разобрали, как настроить этот самый мультиван, но без самой балансировки.
Итак, у нас есть три настроенных провайдера (их может быть и больше). Начинаем маркировать трафик.
1. Маркируем весь трафик из провайдеров
Все маркировки происходят в IP/ Firewall/ Mangle
Важное дополнение: во всех правилах включена опция Passthrough, что означает «разрешить обработку трафика дальше». В правиле она не отображена, так как включена по умолчанию при создании правила.
/ip firewall mangle
add action=mark-connection chain=forward comment=ISP-1-ALL-Upload \
new-connection-mark=ISP-1-ALL-Upload out-interface=VLAN-211_WAN-LTE
add action=mark-packet chain=forward comment=ISP-1-ALL-Upload \
connection-mark=ISP-1-ALL-Upload new-packet-mark=ISP-1-ALL-Upload
add action=mark-connection chain=forward comment=ISP-1-ALL-Download \
in-interface=VLAN-211_WAN-LTE new-connection-mark=ISP-1-ALL-Download
add action=mark-packet chain=forward comment=ISP-1-ALL-Download \
connection-mark=ISP-1-ALL-Download new-packet-mark=ISP-1-ALL-Download
Тут мы промаркировали весь исходящий трафик у первого провайдера. Давайте разберём, что тут и как.
Чтобы всё успешно и корректно работало, мы сначала маркируем соединение, а затем на основе него маркируем пакет.
/ip firewall mangle
add action=mark-connection chain=forward comment=ISP-1-ALL-Upload \
new-connection-mark=ISP-1-ALL-Upload out-interface=VLAN-211_WAN-LTE
Тут мы говорим: всё проходящее (chain=Forward) в интерфейс VLAN-211_WAN-LTE — делай маркировку соединения (действие new-connection-mark) как ISP-1-ALL-Upload. Это сама метка; её мы пишем так, как нашей душе угодно — главное, чтобы вам было понятно.
Следующее правило
add action=mark-packet chain=forward comment=ISP-1-ALL-Upload \
connection-mark=ISP-1-ALL-Upload new-packet-mark=ISP-1-ALL-Upload
В нём мы говорим следующее: всё проходящее (chain=Forward) с соединением, имеющим метку connection-mark=ISP-1-ALL-Upload, — на основе этих соединений маркируй (new-packet-mark) пакеты как ISP-1-ALL-Upload. Тут опять же важно, чтобы вы сами не запутались: дальше в QoS будут участвовать пакеты, поэтому нет нужды маркировать соединения и пакеты по-разному.
Разберём правила для исходящего от провайдера трафика, а в нашем случае — входящего.
add action=mark-connection chain=forward comment=ISP-1-ALL-Download \
in-interface=VLAN-211_WAN-LTE new-connection-mark=ISP-1-ALL-Download
add action=mark-packet chain=forward comment=ISP-1-ALL-Download \
connection-mark=ISP-1-ALL-Download new-packet-mark=ISP-1-ALL-Download
Тут мы говорим, что все соединения, проходящие через роутер из интерфейса провайдера, — ставь на них метку. А теперь все помеченные соединения, проходящие через роутер, — на основе их маркируй пакеты.
Этими четырьмя правилами мы промаркировали весь трафик от одного провайдера. Неважно, какой он по счёту — первый или второй, — все они маркируются одинаково.
add action=mark-connection chain=forward comment=ISP-1-ALL-Upload \
new-connection-mark=ISP-1-ALL-Upload out-interface=VLAN-211_WAN-LTE
add action=mark-packet chain=forward comment=ISP-1-ALL-Upload \
connection-mark=ISP-1-ALL-Upload new-packet-mark=ISP-1-ALL-Upload
add action=mark-connection chain=forward comment=ISP-2-ALL-Upload \
new-connection-mark=ISP-2-ALL-Upload out-interface=ether9-WAN-Akado
add action=mark-packet chain=forward comment=ISP-2-ALL-Upload \
connection-mark=ISP-2-ALL-Upload new-packet-mark=ISP-2-ALL-Upload
add action=mark-connection chain=forward comment=ISP-1-ALL-Download \
in-interface=VLAN-211_WAN-LTE new-connection-mark=ISP-1-ALL-Download
add action=mark-packet chain=forward comment=ISP-1-ALL-Download \
connection-mark=ISP-1-ALL-Download new-packet-mark=ISP-1-ALL-Download
add action=mark-connection chain=forward comment=ISP-2-ALL-Download \
in-interface=ether9-WAN-Akado new-connection-mark=ISP-2-ALL-Download
add action=mark-packet chain=forward comment=ISP-2-ALL-Download \
connection-mark=ISP-2-ALL-Download new-packet-mark=ISP-2-ALL-Download
Так выглядит маркировка двух провайдеров: отличие лишь в метках (названиях) и интерфейсах.
2. Маркировка интерфейсов
Теперь, когда у нас есть маркировка провайдеров, давайте промаркируем какой-нибудь VLAN для двух провайдеров сразу.
add action=mark-connection chain=forward comment=ISP-1-vlan209-ALL-download \
dst-address=10.10.209.0/27 in-interface=VLAN-211_WAN-LTE \
new-connection-mark=ISP-1-vlan209-all-download
add action=mark-connection chain=forward comment=ISP-1-vlan209-web-download \
dst-address=10.10.209.0/27 in-interface=VLAN-211_WAN-LTE \
new-connection-mark=ISP-1-vlan209-web-download protocol=tcp src-port=\
80,443,8080,5228
add action=mark-connection chain=forward comment=ISP-1-vlan209-web-download \
dst-address=10.10.209.0/27 in-interface=VLAN-211_WAN-LTE \
new-connection-mark=ISP-1-vlan209-web-download protocol=udp src-port=\
80,443,8080,5228
add action=mark-packet chain=forward comment=ISP-1-vlan209-web-download \
connection-mark=ISP-1-vlan209-web-download new-packet-mark=\
ISP-1-vlan209-web-download
add action=mark-packet chain=forward comment=ISP-1-vlan209-web-download \
connection-mark=ISP-1-vlan209-all-download new-packet-mark=\
ISP-1-vlan209-all-download
add action=mark-connection chain=forward comment=ISP-2-vlan209-all-download \
dst-address=10.10.209.0/27 in-interface=ether9-WAN-Akado \
new-connection-mark=ISP-2-vlan209-all-download
add action=mark-connection chain=forward comment=ISP-2-vlan209-web-download \
dst-address=10.10.209.0/27 in-interface=ether9-WAN-Akado \
new-connection-mark=ISP-2-vlan209-web-download protocol=tcp src-port=\
80,443,8080,5228
add action=mark-connection chain=forward comment=ISP-2-vlan209-web-download \
dst-address=10.10.209.0/27 in-interface=ether9-WAN-Akado \
new-connection-mark=ISP-2-vlan209-web-download protocol=udp src-port=\
80,443,8080,5228
add action=mark-packet chain=forward comment=ISP-2-vlan209-web-download \
connection-mark=ISP-2-vlan209-web-download new-packet-mark=\
ISP-2-vlan209-web-download
add action=mark-packet chain=forward comment=ISP-2-vlan209-all-download \
connection-mark=ISP-2-vlan209-all-download new-packet-mark=\
ISP-2-vlan209-all-download

Давайте разберём, что тут происходит.
Правило первое.
add action=mark-connection chain=forward comment=ISP-1-vlan209-ALL-download \
dst-address=10.10.209.0/27 in-interface=VLAN-211_WAN-LTE \
new-connection-mark=ISP-1-vlan209-all-download
Весь трафик, адрес назначения которого — 10.10.209.0/27, и который исходит из VLAN-211_WAN-LTE, — маркируй соединения как ISP-1-vlan209-all-download. Пока мы маркируем только соединения; дальше на основе этих соединений промаркируем пакеты. Порядок тут не важен: главное — сначала соединения, а после маркируем пакеты на основе этих соединений.
add action=mark-connection chain=forward comment=ISP-1-vlan209-web-download \
dst-address=10.10.209.0/27 in-interface=VLAN-211_WAN-LTE \
new-connection-mark=ISP-1-vlan209-web-download protocol=tcp src-port=\
80,443,8080,5228
Тут мы говорим: весь трафик, который направляется в сеть 10.10.209.0/27 из интерфейса VLAN-211_WAN-LTE, а исходящий порт(ы) — TCP 80, 443, 8080, 5228, — маркируй соединения как ISP-1-vlan209-web-download. Точно такое же правило — и для UDP. Трафика там почти не бывает, но мало ли…
Я запутался
Если вы на этом моменте запутались, — это нормально!
Почему может произойти путаница? При маркировке пакетов всё переворачивается с ног на голову: то, что было исходящим, становится входящим и наоборот. Как разобраться?
На самом деле очень просто: представьте, что вы — пакет данных. Смотрим со стороны локальной сети: я — пакет, пришёл к вам в роутер из интерфейса VLAN-211_WAN-LTE и направляюсь в сеть 10.10.209.0; мои пакеты с портами 80, 443, 8080, 5228 (все эти порты предназначены для веба, последний же, 5228, используется для Google Play, и мы решили его учитывать по тем же правилам, что и веб). Этот трафик, так как он идёт из интернета в сторону локальной сети — скачивание, из локальной сети в интернет — выгрузка.
Chain=Forward — потому что в 99% случаев трафик будет проходить через роутер. Конечно, есть ситуации, когда роутер сам генерирует соединения (например, VPN-подключения или запросы DNS), и там уже используется другой chain.
Продолжаем
Таким образом, мы промаркировали веб-часть на загрузку в локальную сеть (Download) для веба и всего остального трафика, который не попал под веб.
add action=mark-packet chain=forward comment=ISP-1-vlan209-web-download \
connection-mark=ISP-1-vlan209-web-download new-packet-mark=\
ISP-1-vlan209-web-download
add action=mark-packet chain=forward comment=ISP-1-vlan209-web-download \
connection-mark=ISP-1-vlan209-all-download new-packet-mark=\
ISP-1-vlan209-all-download
После того как мы промаркировали соединения на весь трафик загрузки, включая веб, на основе этого маркируем пакеты по аналогии с тем, как мы делали это для провайдера в целом — только теперь для локальной сети.
А что с выгрузкой?
add action=mark-connection chain=forward comment=ISP-1-vlan209-ALL-Upload \
new-connection-mark=ISP-1-vlan209-ALL-Upload out-interface=\
VLAN-211_WAN-LTE src-address=10.10.209.0/27
add action=mark-connection chain=forward comment=ISP-1-vlan209-web-Upload \
dst-port=80,443,8080,5228 new-connection-mark=ISP-1-vlan209-web-Upload \
out-interface=VLAN-211_WAN-LTE protocol=tcp src-address=10.10.209.0/27
add action=mark-connection chain=forward comment=ISP-1-vlan209-web-Upload \
dst-port=80,443,8080,5228 new-connection-mark=ISP-1-vlan209-web-Upload \
out-interface=VLAN-211_WAN-LTE protocol=udp src-address=10.10.209.0/27
add action=mark-packet chain=forward comment=ISP-1-vlan209-web-Upload \
connection-mark=ISP-1-vlan209-web-Upload new-packet-mark=\
ISP-1-vlan209-web-Upload
add action=mark-packet chain=forward comment=ISP-1-vlan209-ALL-Upload \
connection-mark=ISP-1-vlan209-ALL-Upload new-packet-mark=\
ISP-1-vlan209-ALL-Upload
add action=mark-connection chain=forward comment=ISP-2-vlan209-ALL-Upload \
new-connection-mark=ISP-2-vlan209-ALL-Upload out-interface=\
ether9-WAN-Akado src-address=10.10.209.0/27
add action=mark-connection chain=forward comment=ISP-2-vlan209-web-Upload \
dst-port=80,443,8080,5228 new-connection-mark=ISP-2-vlan209-web-Upload \
out-interface=ether9-WAN-Akado protocol=tcp src-address=10.10.209.0/27
add action=mark-connection chain=forward comment=ISP-2-vlan209-web-Upload \
dst-port=80,443,8080,5228 new-connection-mark=ISP-2-vlan209-web-Upload \
out-interface=ether9-WAN-Akado protocol=udp src-address=10.10.209.0/27
add action=mark-packet chain=forward comment=ISP-2-vlan209-web-Upload \
connection-mark=ISP-2-vlan209-web-Upload new-packet-mark=\
ISP-2-vlan209-web-Upload
add action=mark-packet chain=forward comment=ISP-2-vlan209-web-Upload \
connection-mark=ISP-2-vlan209-ALL-Upload new-packet-mark=\
ISP-2-vlan209-ALL-Upload
Давайте снова разберёмся, что тут происходит.
add action=mark-connection chain=forward comment=ISP-1-vlan209-ALL-Upload \
new-connection-mark=ISP-1-vlan209-ALL-Upload out-interface=\
VLAN-211_WAN-LTE src-address=10.10.209.0/27
Всё, что исходит от сети 10.10.209.0/27 в интерфейс VLAN-211_WAN-LTE, — маркируем соединения как выгрузку ISP-1-vlan209-ALL-Upload.
add action=mark-connection chain=forward comment=ISP-1-vlan209-web-Upload \
dst-port=80,443,8080,5228 new-connection-mark=ISP-1-vlan209-web-Upload \
out-interface=VLAN-211_WAN-LTE protocol=tcp src-address=10.10.209.0/27
add action=mark-connection chain=forward comment=ISP-1-vlan209-web-Upload \
dst-port=80,443,8080,5228 new-connection-mark=ISP-1-vlan209-web-Upload \
out-interface=VLAN-211_WAN-LTE protocol=udp src-address=10.10.209.0/27
Тут мы маркируем соединения для UDP и TCP — по сути, всё то же самое, что и с загрузкой, только изменились DST на SRC адреса. Теперь всё, что выходит из локальной сети 10.10.209.0/27 в сторону провайдера (интерфейс VLAN-211_WAN-LTE) и DST-порт 80, 443, 8080, 5228,
а после так же маркируем пакеты.
add action=mark-packet chain=forward comment=ISP-1-vlan209-web-Upload \
connection-mark=ISP-1-vlan209-web-Upload new-packet-mark=\
ISP-1-vlan209-web-Upload
add action=mark-packet chain=forward comment=ISP-1-vlan209-ALL-Upload \
connection-mark=ISP-1-vlan209-ALL-Upload new-packet-mark=\
ISP-1-vlan209-ALL-Upload
Я снова запутался.
И это снова нормально. Главное — вот что понять: ты — пакет, и попробуй подумать, как пакет, как ты движешься.
Почему сначала было SRC, а после — DST? Дело в том, что когда ПК в сети хочет попасть на веб-ресурс в интернете, мы не знаем, с какого порта будет обращаться наш ПК, но мы точно знаем, куда он обратится. Мы точно знаем, на каком порту сидит веб-сервис в интернете и с какого порта он нам ответит.
Вот и получается, что в одном случае мы маркируем обращение, у которого источник — порт 80, 443, а в другом случае — назначение порта 80, 443.
В «портянках» правил, где указан большой кусок, я показываю сразу для двух провайдеров, а после разбираю конкретного провайдера и движение трафика для конкретной сети. Как только у вас получится промаркировать трафик для одного провайдера, второго вы маркируете точно так же и подглядываете в большую «портянку», чтобы понимать, как выглядит правило в целом.
Зачем мне маркировать весь трафик?
Это тоже хороший вопрос. Если вы знаете, какой трафик у вас может ходить, то можно промаркировать всё, но с уверенностью могу сказать: либо у вас 10 000 и одно правило, либо будут очень странные конструкции, где у вас будут указаны порты от 1 до 79, потом от 81 до 442 и т. д. — это будет нечитаемо, и смысла будет мало.
Мне нужно только веб и SIP (телефония). Зачем мне маркировать всё?
А это тоже хороший вопрос. Если вы пропустите какой-то трафик, то какие-нибудь приложения (например, любимый мой торрент) забьют все не маркированные порты (потому что по маркированным мы будем «косить», а остальные — нет), и опять смысла в маркировке особой нет, так как «кос» работать нормально не сможет.
Время очередей
У нас готовы следующие маркировки
ISP-1-ALL-Upload - весь исходящий трафик с первого провайдера
ISP-1-ALL-Download - весь входящий трафик с первого провайдера
ISP-2-ALL-Upload - весь исходящий трафик с второго провайдера
ISP-2-ALL-Download - весь входящий трафик с второго провайдера
ISP-1-vlan209-ALL-Upload - весь исходящий трафик с vlan 209 в первого провайдера
ISP-2-vlan209-ALL-Upload - весь исходящий трафик с vlan 209 в второго провайдера
ISP-1-vlan209-ALL-Download - весь входящий трафик в vlan 209 из первого провайдера
ISP-2-vlan209-ALL-Download - весь входящий трафик в vlan 209 из второго провайдера
ISP-1-vlan209-web-Upload - весь исходящий веб трафик с vlan 209 в первого провайдера
ISP-2-vlan209-web-Upload - весь исходящий веб трафик с vlan 209 в второго провайдера
ISP-1-vlan209-web-Download - весь исходящий веб трафик с vlan 209 в первого провайдера
ISP-2-vlan209-web-Download - весь исходящий веб трафик с vlan 209 в второго провайдера
А где третий провайдер? А его здесь нет — он будет только в балансировке и используется для других участников сети. В данном случае для одного VLAN нужно 8 правил, чтобы можно было QoS’ить веб-трафик и трафик в целом. Хотим SIP? Пожалуйста, по аналогии с веб — это ещё +4 правила для одного VLAN.
Тут стоит решить: хотите ли вы контролировать каждую подсеть или в целом? Для сокращения человеческих ресурсов можно приоритизировать весь SIP-трафик всего здания, например. Любая подсеть будет стоить минимум +4 правил, поэтому мы рассмотрим это немного в общем, иначе статья будет слишком огромной — сейчас уже больше 100 Mangle-правил, и это только чтобы был QoS.
QUEU TREE
/queue tree
add limit-at=10M max-limit=20M name="All AKADO Upload" parent=global \
priority=1 queue=cake-test
add limit-at=60M max-limit=60M name="ISP LTE Upload" parent=global priority=1 \
queue=cake-test
add limit-at=10M max-limit=60M name="All AKADO Download" parent=global \
priority=1 queue=cake-test
add limit-at=65M max-limit=65M name="ISP LTE DOWNLOAD" parent=global \
priority=1 queue=cake-test
add limit-at=10M max-limit=35M name="All Akado Download Paket" packet-mark=\
ISP-2-ALL-Download parent="All AKADO Download" queue=cake-test
add limit-at=10M max-limit=20M name="All Akado Upload Paket" packet-mark=\
ISP-2-ALL-Upload parent="All AKADO Upload" queue=cake-test
add limit-at=30M max-limit=40M name="All LTE Upload Paket" packet-mark=\
ISP-1-ALL-Upload parent="ISP LTE Upload" queue=cake-test
add limit-at=30M max-limit=40M name="All LTE Download Paket" packet-mark=\
ISP-1-ALL-Download parent="ISP LTE DOWNLOAD" queue=cake-test
add limit-at=10M max-limit=20M name=ISP-2-vlan209-web-download packet-mark=\
ISP-2-vlan209-web-download parent="All AKADO Download" queue=cake-test
add limit-at=10M max-limit=20M name=ISP-2-vlan209-web-Upload packet-mark=\
ISP-2-vlan209-web-Upload parent="All AKADO Upload" queue=cake-test
add limit-at=30M max-limit=40M name=ISP-1-vlan209-web-download packet-mark=\
ISP-1-vlan209-web-download parent="ISP LTE DOWNLOAD" queue=cake-test
add limit-at=30M max-limit=40M name=ISP-1-vlan209-web-Upload packet-mark=\
ISP-1-vlan209-web-Upload parent="ISP LTE Upload" queue=cake-test
add limit-at=30M max-limit=40M name=ISP-1-vlan209-all-download packet-mark=\
ISP-1-vlan209-all-download parent="ISP LTE DOWNLOAD" queue=cake-test
add limit-at=10M max-limit=20M name=ISP-2-vlan209-ALL-download packet-mark=\
ISP-2-vlan209-all-download parent="All AKADO Download" queue=cake-test
add limit-at=10M max-limit=20M name=ISP-2-vlan209-ALL-Upload packet-mark=\
ISP-2-vlan209-ALL-Upload parent="All AKADO Upload" queue=cake-test
add limit-at=30M max-limit=40M name=ISP-1-vlan209-ALL-Upload packet-mark=\
ISP-1-vlan209-ALL-Upload parent="ISP LTE Upload" queue=cake-test

Тут практически всё просто…
Самое важное, что нужно учесть: если у родителей есть дети, то у родителей нет ничего для себя. То есть мы создаём глобальную очередь ISP LTE Upload, например, и у неё есть дети:
-
ISP LTE Upload (тут нет никакой маркировки, только ограничение скорости)
All LTE Download Paket (тут у нас все пакеты)
ISP-1-vlan209-all-download (тут все что отвечает за весь трафик в стороны lte с vlan 209)
ISP-1-vlan209-web-download (тут все что отвечает за весь веб трафик в стороны lte с vlan 209)

Тут достаточно просто для первоначальной настройки
Name — любое произвольное имя
Parent родитель, в нашем случае это очередь отвечающая за вест трафик
Packet Marks — сами пакеты, их метка
Queue Type — тип очереди, то есть как будут считаться пакеты — оставьте default, а после можете экспериментировать с PCQ, CAKE и так далее. Важно: в PCQ‑download настроено одно движение пакетов, и выбрав неправильный тип, у вас может просто не работать очередь. Тут очень много всего — это большая тема. У Романа Козлова на одноимённом канале Mikrotik Training есть информация о типах очередей.
Priority — чем выше цифра, тем меньше приоритет трафика. Также стоит глянуть, какие цифры за что используют.
Bucket Size ‑размер пакета
Limit At — гарантированная скорость (забавно, ведь в случае LTE мы ничего не можем гарантировать, поэтому приоритет важен).
-
Max Limit — максимальное потребление скорости, если она есть
Burst Threshhold и Brust Time это временное увеличение скорости, тема для отдельных экспериментов.
Почему ISP-1-vlan209-all-download не является дочерним для All LTE Download Paket, а он не является родителем для ISP-1-vlan209-all-download? Если мы так сделаем, то, вспоминая то, что есть у родителей, всё отдается детям, у родителей ничего нет, и поэтому QoS работать не будет. Именно по этой причине у нас есть общая очередь для всего интерфейса на вход и на выход, где мы только указываем, сколько мы можем отдать нашим дочерним очередям.


Время балансировать
/ip firewall mangle
add action=mark-routing chain=prerouting comment="PCC Balance 2:2" disabled=\
yes dst-address-list=!FIX-Balance dst-address-type=!local \
new-routing-mark=rtab-ISP1 per-connection-classifier=\
both-addresses-and-ports:2/0 src-address-list=Internet_accsec
add action=mark-routing chain=prerouting comment="PCC Balance 2:1" disabled=\
yes dst-address-list=!FIX-Balance dst-address-type=!local \
new-routing-mark=rtab-ISP2 per-connection-classifier=\
both-addresses-and-ports:2/1 src-address-list=Internet_accsec





И таких правил две штуки. Всё описывать в картинках не буду, но объясню, что происходит.
Правило звучит так: весь трафик из листа Internet Access, который направляется на/в адреса или сети, которые не содержатся в листе FIX-Balance, 2/0 части (об этом чуть ниже) по адресам и портам назначения и источника, не локальные сети (extra), направляем в таблицу провайдера 1. Второе правило звучит так же, только будет 2/1 и провайдера 2.
Что за FIX-Balance лист такой? В нём находятся почти все локальные сети, которые используются у меня, иначе они будут подвержены делению и перемаркировке. То есть наш роутер понятия не имеет, что есть LAN, а что есть WAN, и описывать все сети WAN, куда нужно делить трафик, будет немного тяжеловато. Поэтому проще исключить локальные. Кто-то может возразить: у тебя же уже указано Extra - DST !local. Согласен, но, как мне показалось, в какой-то из версий 7.15–1.16 это не работало или работало с глюками, поэтому лишняя перестраховка.
Данное деление трафика симметрично. Его можно сделать асимметричным, например:
Мы делаем 10 правил, где action mark routing ISP 1, а внутри них параметр PCC будет такой: 10/0, 10/1, 10/2, 10/3, 10/4, 10/5, 10/6, 10/7, 10/8. А 10/9 будет смотреть на второго провайдера (action mark routing ISP 2), и тогда получится, что 9 пакетов из 10 будут направлены к первому провайдеру, а оставшаяся часть 1/10 — ко второму.
Вместо SRC Address листа вы можете указать локальную сеть и без доп. параметров направить весь её трафик либо к первому провайдеру, либо ко второму, и это тоже будет считаться балансировкой. Вы можете таким образом направить любой тип трафика к нужному провайдеру.
Балансировать можно также с помощью Nth (в Extra), но это всё зависит от типа трафика в вашей сети, качества каналов — подбирать нужно сугубо экспериментально.
Что с 3 провайдером ?
А в том и дело, что ничего: он появляется только при дополнительной нагрузке (например, мероприятие) и предназначен для других сетей, но заводится в роутер аналогично двум первым, и QoS не участвует.
Всем спасибо, кто дочитал до конца! Надеюсь, для вас эта статья станет хорошей подсказкой к ответу на вопрос: как сделать классную и крутую сеть на базе Mikrotik. Отдельно хочу сказать спасибо Роману Козлову и его бесплатным тренингам, как очным, так и онлайн.
Если вам нужна моя помощь в настройке, то всегда можете связаться со мной в Телеграм @nsanyok98 — по возможности отвечу всем.
UPD: LTE починили и вот один из примеров увеличения скорости

Если ресурс будет поддерживает многопоточную загрузку, то прирост скорости будет.
В следующей части мы более подробно рассмотрим канал LTE с точки зрения балансировки, ведь там нужно учитывать, и Jitters, и время Ping, и в целом часы загрузки базовых станций. И скорее всего будет необходима ассиметричная балансировка, это когда каналы по скорости +- одинаковы, в какой-то канал принудительно нужно будет отправлять больше трафика, чтобы достичь большей скорости (все зависит от того, как используются каналы).
timru
"Теперь, когда у нас есть маркировка провайдеров, давайте промаркируем какой-нибудь VLAN для двух провайдеров сразу. " - Зачем, для чего?
У меня промаркированы входящие соединения, входящие маршруты и исходящие маршруты и указана цена. Используются оба канала, по мере заполнения первого происходит заполнение второго.
Никаких дополнительных правил или чего-то еще не требуется.