��ривет, Хабр! Это вторая часть статьи о балансировке между провайдерами на 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
в данный момент LTE на замене модема, поэтому он отключен и трафика там нет, лишние очереди отключены, чтобы было понятно что мы настраивали
в данный момент LTE на замене модема, поэтому он отключен и трафика там нет, лишние очереди отключены, чтобы было понятно что мы настраивали

Тут практически всё просто…

Самое важное, что нужно учесть: если у родителей есть дети, то у родителей нет ничего для себя. То есть мы создаём глобальную очередь 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 работать не будет. Именно по этой причине у нас есть общая очередь для всего интерфейса на вход и на выход, где мы только указываем, сколько мы можем отдать нашим дочерним очередям.

SpeedTest попадает в WEB и активно косится
SpeedTest попадает в WEB и активно косится
Самая частая ошибка, когда путают upload и download, будьте внимательны
Самая частая ошибка, когда путают upload и download, будьте внимательны

Время балансировать

/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
В данный момент они выключены, так как как отсутствует провайдер второй, а балансировка идет между ним и LTE который сейчас в обслуживании (а статью все же выпустить нужно)
В данный момент они выключены, так как как отсутствует провайдер второй, а балансировка идет между ним и LTE который сейчас в обслуживании (а статью все же выпустить нужно)

И таких правил две штуки. Всё описывать в картинках не буду, но объясню, что происходит.

Правило звучит так: весь трафик из листа 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, и в целом часы загрузки базовых станций. И скорее всего будет необходима ассиметричная балансировка, это когда каналы по скорости +- одинаковы, в какой-то канал принудительно нужно будет отправлять больше трафика, чтобы достичь большей скорости (все зависит от того, как используются каналы).

Only registered users can participate in poll. Log in, please.
Используете ли вы активное балансирование трафика между каналами?
28.13%да9
21.88%нет7
50%второй канал сугубо резервный16
32 users voted. Nobody abstained.