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

OSPF, mikrotik, балансировка нагрузки каналов

Собрал на тесте схему:

6 маршрутизаторов микротик.

1 и 6 - пограничные, к ним подключено по 1 ПК с клиентом и сервером iperf

2, 3, 4, 5 - включены "в кольцо" (т.е. являются соседями только по 1 интерфейсу)

1 является соседом для 2 и 3 (по 1 интерфейсу на каждого соседа)

6, по аналогии с 1 для 4 и 5

 

 

Все интерфейсы соседстких роутеров в своих подсетях /29, каждый из соседей в бэкбон, все косты равнозначные, все друг друга видят.

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

 

Подскажите, это так и должно работать или есть возможность только средствами OSPF распределить нагрузку?

 

Share this post


Link to post
Share on other sites

23 часа назад, eWAY сказал:

Собрал на тесте схему:

6 маршрутизаторов микротик.

1 и 6 - пограничные, к ним подключено по 1 ПК с клиентом и сервером iperf

2, 3, 4, 5 - включены "в кольцо" (т.е. являются соседями только по 1 интерфейсу)

1 является соседом для 2 и 3 (по 1 интерфейсу на каждого соседа)

6, по аналогии с 1 для 4 и 5

 

 

Все интерфейсы соседстких роутеров в своих подсетях /29, каждый из соседей в бэкбон, все косты равнозначные, все друг друга видят.

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

 

Подскажите, это так и должно работать или есть возможность только средствами OSPF распределить нагрузку?

 

Балансировка вроде через TE (Traffic Enging)

Share this post


Link to post
Share on other sites

У вас в маршрутах OSPF трафик на 0.0.0.0/0 и на удаленную подсеть (где дальний комп), должны быть указаны 2 интерфейса или IP маршрутизатора (микротик сам проставляет), при равных весах так и будет. Если запустите тест в один поток, то увидите, что он идет только по одной половинке маршрута, обратный трафик в этом случае, должен пойти по другой цепочке. Для корректного теста нужно на дальней стороне поставить 2 тестовых устройства и параллельно запускать закачки.

Share this post


Link to post
Share on other sites

@bg80211@Saab95 спасибо за Ваши ответы.

Планирую строить l2 тунели сквозь эту демо-зону, требуется балансировать трафик в целях, как объединения каналов, так и взаимного резервирования, причем не по отказу, а по пропускной способности. Решение не должно быть требовательно к CPU.

Самое простое решение - это TE? Или я усложняю?

Может завалялся рабочий пример?

Share this post


Link to post
Share on other sites

В 14.07.2018 в 19:21, eWAY сказал:

@bg80211@Saab95 спасибо за Ваши ответы.

Планирую строить l2 тунели сквозь эту демо-зону, требуется балансировать трафик в целях, как объединения каналов, так и взаимного резервирования, причем не по отказу, а по пропускной способности. Решение не должно быть требовательно к CPU.

Самое простое решение - это TE? Или я усложняю?

Может завалялся рабочий пример?

Доброго времени суток. Как успехи в вашей реализации задуманного ? 

Edited by npokypop

Share this post


Link to post
Share on other sites

@eWAY ога так и должно. чтобы оно балансилось нужны идентичные косты пути а не интерфейса. Если у вас с одной стороны 3 маршрутизатора а с другой 4 то все пойдет через наикратчайший путь ваш КО ))))) оспф чрезвыйчано упертая штука в этом отношении.

On 7/14/2018 at 7:21 PM, eWAY said:

Самое простое решение - это TE

конфликтует с

On 7/14/2018 at 7:21 PM, eWAY said:

Решение не должно быть требовательно к CPU

самое простое решение это какой нибудь аппаратный бондинг.

Share this post


Link to post
Share on other sites

По идее OSPFом балансировать нагрузку не получиться т.к. даже если менять каким то образом цену маршрута (например каким нибудь скриптом) то перестроение маршрутов довольно длительная процедура во время которой вообще никуда трафик не идёт, а если маршрутизатор еще и постоянно маршруты перестраивать будет то это вообще никуда не годится.

А вообще задача интересная, не думал над такой и быстро что-то сообразить не могу как решить её, посмотрим кто чего тут посоветует.

Share this post


Link to post
Share on other sites

@VGA так попробуй! Скорость работы оспф такая что сидя на микротике можно отключить тот интерфейс по которому вот сейчас льется винбокс сессия и ты вообще никак этого не заметишь. В этом нисравнимый плюс оспфа. С любыми другими балансерами ты это заметишь. Начиная от замирания винбокса на пару сек - л3 балансер и заканчивая дисконектом и невозможностью подключится 30 сек stp. 

 

Стп в этом смысле самое дерьмовое решение. Но зато хуякхуякивпродакшн ))))

Share this post


Link to post
Share on other sites

В 10.07.2018 в 20:52, eWAY сказал:

Все интерфейсы соседстких роутеров в своих подсетях /29, каждый из соседей в бэкбон, все косты равнозначные, все друг друга видят.

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

Тут всё очень просто. При равных костах в системную таблицу устанавливается ECMP-маршрут. 
Далее в работу включается логика ECMP "per-src-dst-address combination load balancing" . Таким образом, исходящий трафик от SRC-IP к DST-IP пойдет  только через один из шлюзов. Шлюзы выбираются по "Round-Robin".

Если Вы подключите еще один комп и запустите на нём iperf, то увидев другую пару SRC-IP/DST-IP, роутер погонит трафик на следующий(второй) в списке шлюз.
Это балансировка per-connection. Если в схеме нет NAT, то вернуться трафик может другим путём.

 

21 час назад, user71 сказал:

Скорость работы оспф такая что сидя на микротике можно отключить тот интерфейс

Это работает только в том случае, если отключить интерфейс/кабель на самом роутере. Если между роутерами есть 2 и более свитча, то порваный линк между свитчами роутер сразу не заметит, и маршруты перестроит с бОльшей задержкой.
Для ускорения сходимости OSPF приправляют BFD

Edited by nkusnetsov

Share this post


Link to post
Share on other sites

В 15.07.2019 в 22:01, user71 сказал:

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

Вообще-то замечаю. Схема следующая удаленный офис два интернет канала, основной и резервный, через которые подняты на центр ГРЕ тунели и ОСПФ, так вот когда основной канал отваливается и идет переключение на резервный, винбокс отваливается. Правда конечно быстро связь восстанавливается.  Возможно правда это связано с keepalive самого тунеля, не разбирался с этим т.к. для нас это не критично и происходит очень редко.

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

Share this post


Link to post
Share on other sites

Винбокс отваливается потому что рвется соединение. Соединение рвется потому что контрек обнуляется. А контрек обнуляется потому что падает линк к которому все привязано. Т.е ты привязал все к интерфейсу отсюда и проблемы. Нужно сделать на микротике интерфейс lo. Повесить на него адрес. И дальше маршруты через lo. Конект к lo и так далее. Этот интерфейс никогда не падает и контрек обнулятся не будет. А маршруты у него уже есть. Оба маршрута есть, но активен только самый короткий. Как только он упадет активируется другой. Время реакции как тут уже писали равно бфд по дефрлту 200мс. Оно точно так может работать. Настраивай лучше. ))) единственое что у меня почему то после отвала линка и востановления трафик расщепляется. Исходящий идет по одному каналу а входящий по другому.

Share this post


Link to post
Share on other sites

loopback у меня конечно же есть, я по его ip на железки захожу, в том что вы написали возможно есть здравый смысл, но сходу я чего-то не разобрал как вы предлогаете сделать. У меня на центре два канала, и на выносах тоже два канала, соответственно основной канал на выносе по gre (иногда по L2tp) цепляется к основному каналу на центре, резевный на выносе к резервному на центре. соответственно у меня образуется два независимых тунеля (а иногда четыре тунеля, когда с выноса поднимаю два тунеля с основного и два с резервного канала). То что вы предлагаете нужно делать, как я понимаю, через scope и target scope в общем можно подумать на досуге.

 

Edited by VGA

Share this post


Link to post
Share on other sites

Вы router-id не забыли верно указать? Значения 0.0.0.1 и 0.0.0.2 должны в центре на мощных железках стоять. Если так не сделать, то главным роутером может стать какой-то хаплайт за медленным каналом.

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.