Jump to content
Калькуляторы

MikroTik, 2 Uplinka не стандартная балансировка

Доброго времени суток. Подскажите можно ли реализовать на MikroTik ОС разделение нагрузки не в случайном порядке, а так что бы использовался Uplink1 до определенной нагрузки и только потом Uplink2? Uplink2 нужен только для покрытия пиков нагрузки и в качестве резерва в случае падения Uplink1.

Или использовать для этой цели отдельную железку? Например TL-R470T+.

Edited by Fint

Share this post


Link to post
Share on other sites

Fint, на сколько знаю, штатно нет такого функционала, но можно использовать скрипты

Share this post


Link to post
Share on other sites

Fint, на сколько знаю, штатно нет такого функционала, но можно использовать скрипты

Да штатно нет, тоже думаю что скриптами реализуемо (В скриптах не силен от слова совсем). Железное решение существует?

А как будет выглядеть логика работы? что за чем, цепочка действий в МТ. Может в GNS3 получится смоделировать, пока что курение манов на мало понятном языке дала только общее представление.

Share this post


Link to post
Share on other sites

Так нельзя сделать без наличия туннелей в центр через операторов, потому что перевод части соединений на другого, произведет и изменения IP адресов, что создаст проблемы в работе почти любых сайтов и служб.

Share this post


Link to post
Share on other sites

Так нельзя сделать без наличия туннелей в центр через операторов, потому что перевод части соединений на другого, произведет и изменения IP адресов, что создаст проблемы в работе почти любых сайтов и служб.

Не понятно. Если запрос ушел с аплинка 1 то и ответ придет на аплинк1, то есть нужно сделать так что бы все запросы юзера шли через тот аплинк по которому был сделан первый запрос. И скажем в течении минуты микротик хранил в адресс листе(можно же с помощью адрес листов?) маршрут для это IP.

 

эти железки кто ни буть юзал?

http://www.nix.ru/price/price_list.html?section=networking_all#cid=107&fn=107&set_id=9ba80edecb3611e5a8b3002590c35102&sort=0&thumbnail_view=2

Сколько суммарного трафика переварят?

Edited by Fint

Share this post


Link to post
Share on other sites

Так нельзя сделать без наличия туннелей в центр через операторов, потому что перевод части соединений на другого, произведет и изменения IP адресов, что создаст проблемы в работе почти любых сайтов и служб.

Какой порекомендуете?

Нужен именно как абонентское устройство (СРЕ).

 

Вам нужно 2 микротика, каждого подключите к своему провайдеру, а к ним подключите третий, через который уже будете потреблять интернет с этих каналов. Такая конфигурация более правильная, чем на одном роутере заводить двух операторов, создавать кучу правил в манглах и т.п.

А подробнее про 3 роутера можно?

Share this post


Link to post
Share on other sites

Не понятно. Если запрос ушел с аплинка 1 то и ответ придет на аплинк1, то есть нужно сделать так что бы все запросы юзера шли через тот аплинк по которому был сделан первый запрос. И скажем в течении минуты микротик хранил в адресс листе(можно же с помощью адрес листов?) маршрут для это IP.

 

Представьте ситуацию, у вас канал 100 у первого и у второго провайдера, и 2 абонента с тарифами 100.

 

Первый абонент подключился и стал качать файл со скоростью 40 мегабит. Подключился второй и стал качать файл со скоростью 40 мегабит. Оба идут через первый канал. Тут ресурс на сайте освободился и оба стали получать данные на скорости 50 мегабит, загрузив канал на полную. Перекинуть на второго провайдера можно, но тогда соединение у абонента оборвется.

 

Другая ситуация - появился третий абонент в тот момент, когда первый канал перегружен, его пустили по второму провайдеру, и он начал качать на скорости 100. Потом первый канал освободился, но абонент так и будет сидеть на резервном=)

 

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

 

А подробнее про 3 роутера можно?

 

Например у вас есть 2 канала интернета, которые вы хотите загрузить равномерно. Первые 2 роутера подключаются к ним и делают НАТ, третий роутер только управляет каких абонентов на какой роутер отправить, например разбив все IP адреса пополам. Тут никаких проблем не будет, т.к. каждая группа абонентов будет работать постоянно через свой канал.

Share this post


Link to post
Share on other sites

Представьте ситуацию, у вас канал 100 у первого и у второго провайдера, и 2 абонента с тарифами 100.

 

Первый абонент подключился и стал качать файл со скоростью 40 мегабит. Подключился второй и стал качать файл со скоростью 40 мегабит. Оба идут через первый канал. Тут ресурс на сайте освободился и оба стали получать данные на скорости 50 мегабит, загрузив канал на полную. Перекинуть на второго провайдера можно, но тогда соединение у абонента оборвется.

 

Другая ситуация - появился третий абонент в тот момент, когда первый канал перегружен, его пустили по второму провайдеру, и он начал качать на скорости 100. Потом первый канал освободился, но абонент так и будет сидеть на резервном=)

 

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

Думаю агрегация сгладит. При разгрузке первого канала, совсем не обязательно сразу же перекидывать соединения на первый, сомо закроется.

 

Например у вас есть 2 канала интернета, которые вы хотите загрузить равномерно. Первые 2 роутера подключаются к ним и делают НАТ, третий роутер только управляет каких абонентов на какой роутер отправить, например разбив все IP адреса пополам. Тут никаких проблем не будет, т.к. каждая группа абонентов будет работать постоянно через свой канал.

Думаю тоже самое можно и на одном роутере сделать.

 

Хорошо, для начала как скинуть определенные подсети, что бы они ходили только через 2 канал? Правилами в роутах? Или маркировать соединения и по роутинг маркам?

Share this post


Link to post
Share on other sites

Норм вышло.

 

 

Кто ни буть может помочь со скриптом? Нужно что бы одно простое правило шейпера включалось и отключалось в зависимости от живости маршрутов, если оба живы то выключено, если хотя бы один помирает - включается.

post-116466-087665000 1455139128_thumb.jpg

Edited by Fint

Share this post


Link to post
Share on other sites

Вам надо создать 2 метрики маршрутов на адрес 0.0.0.0/0 указав шлюзы провайдеров.

Далее:

 

/ip firewall mangle
add action=add-src-to-address-list address-list=PROV_1 address-list-timeout=1h chain=prerouting dst-address-list=!Local-IP per-connection-classifier=src-address:2/0
add action=add-src-to-address-list address-list=PROV_2 address-list-timeout=1h chain=prerouting dst-address-list=!Local-IP per-connection-classifier=src-address:2/1

 

Тут у вас все абоненты распределяться равномерно по каналам, далее правилами манглов уже из адрес листов PROV пускаете абонентов по своим маршрутам, либо через SRC-NAT.

Share this post


Link to post
Share on other sites

Вам надо создать 2 метрики маршрутов на адрес 0.0.0.0/0 указав шлюзы провайдеров.

Далее:

 

/ip firewall mangle
add action=add-src-to-address-list address-list=PROV_1 address-list-timeout=1h chain=prerouting dst-address-list=!Local-IP per-connection-classifier=src-address:2/0
add action=add-src-to-address-list address-list=PROV_2 address-list-timeout=1h chain=prerouting dst-address-list=!Local-IP per-connection-classifier=src-address:2/1

 

Тут у вас все абоненты распределяться равномерно по каналам, далее правилами манглов уже из адрес листов PROV пускаете абонентов по своим маршрутам, либо через SRC-NAT.

Спасибо. Попробую завтра. Спасть пора.

Share this post


Link to post
Share on other sites

Норм вышло.

 

Все хорошо в моём варианте, только весь локальный трафик трафик идет наружу :) А управление оборудованием перестало работать, потому что сделано по виланам через роутер...

Share this post


Link to post
Share on other sites

Вам надо создать 2 метрики маршрутов на адрес 0.0.0.0/0 указав шлюзы провайдеров.

Далее:

 

/ip firewall mangle
add action=add-src-to-address-list address-list=PROV_1 address-list-timeout=1h chain=prerouting dst-address-list=!Local-IP per-connection-classifier=src-address:2/0
add action=add-src-to-address-list address-list=PROV_2 address-list-timeout=1h chain=prerouting dst-address-list=!Local-IP per-connection-classifier=src-address:2/1

 

Тут у вас все абоненты распределяться равномерно по каналам, далее правилами манглов уже из адрес листов PROV пускаете абонентов по своим маршрутам, либо через SRC-NAT.

Долго вкуривал) Разобрался. Я хотел что бы например адреса 192.168.1.34/27 шли по 2аплинку, в то время как 192.168.1.34/29 и все остальные подсети шли по первому аплинку.

В мангле источником, такую подсеть 192.168.1.34/29 не выходит указать. Как сделать?

post-116466-038395100 1455209543_thumb.jpg

Share this post


Link to post
Share on other sites

Я вот уже который год наблюдаю за темой ххх аплинков и авто переход на резерв.

Нихрена не понимаю чего так извращаться, когда там кодить демон на сях на пару вечеров, ну или со скриптами что то можно накостылить.

Share this post


Link to post
Share on other sites

В мангле источником, такую подсеть 192.168.1.34/29 не выходит указать. Как сделать?

 

Значит надо указать подсеть 192.168.1.32/29. Там указываются сами сети, которые можно рассчитать на калькуляторе, либо в настройках IP адреса навести мышкой на адрес - будет показан диапазон адресов, вот самый первый адрес оттуда и указываете в правилах.

Share this post


Link to post
Share on other sites

В мангле источником, такую подсеть 192.168.1.34/29 не выходит указать. Как сделать?

 

Там указываются сами сети, которые можно рассчитать на калькуляторе, либо в настройках IP адреса навести мышкой на адрес - будет показан диапазон адресов

Ага, то есть в мангле можно указать только диапазон реально указанный в настройках IP адресов интерфейсов? Если у меня на этом вилане указан 192.168.1.0/24, то указать в мангле/адрес листе другую маску не получится? Получается нужно бить подсеть еще на несколько виланов, это не везде возможно, будет не кошерно.

Edited by Fint

Share this post


Link to post
Share on other sites

В мангле источником, такую подсеть 192.168.1.34/29 не выходит указать. Как сделать?

 

Там указываются сами сети, которые можно рассчитать на калькуляторе, либо в настройках IP адреса навести мышкой на адрес - будет показан диапазон адресов

Ага, то есть в мангле можно указать только диапазон реально указанный в настройках IP адресов интерфейсов? Если у меня на этом вилане указан 192.168.1.0/24, то указать в мангле/адрес листе другую маску не получится? Получается нужно бить подсеть еще на несколько виланов, это не везде возможно, будет не кошерно.

Воспользуйся address list.

Туда можешь накидать нужные тебе адреса и затем вместо src-address будешь указывать src-address-list.

Костыль, конечно же, но рабочий.

Share this post


Link to post
Share on other sites

Ага, то есть в мангле можно указать только диапазон реально указанный в настройках IP адресов интерфейсов? Если у меня на этом вилане указан 192.168.1.0/24, то указать в мангле/адрес листе другую маску не получится? Получается нужно бить подсеть еще на несколько виланов, это не везде возможно, будет не кошерно.

 

Там можно указать адреса по маске и диапазон адресов. У вас на приведенной картинке была ошибка в указании адреса сети, поэтому и выделялось красным.

 

Воспользуйся address list.

Туда можешь накидать нужные тебе адреса и затем вместо src-address будешь указывать src-address-list.

Костыль, конечно же, но рабочий.

 

Это не костыль а самое правильное решение для этой задачи. В него можно добавлять и адреса поштучно, и по маске.

Share this post


Link to post
Share on other sites

У вас на приведенной картинке была ошибка в указании адреса сети, поэтому и выделялось красным.

В чем ошибка?

 

ps для RB2011 предел проца по трафику какой?

Edited by Fint

Share this post


Link to post
Share on other sites

В чем ошибка?

 

Там ошибка в том, что когда указываете сеть по маске, нужно указывать адрес сети, а не адрес узла в этой сети, то есть допустим у вас сеть 10.0.0.0/30, в ней адрес 10.10.10.1 и 10.10.10.2, то есть в правиле указать можете только 10.10.10.0/30, а 1/30, 2/30 и 3/30 будут ошибочны.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.