Перейти к содержимому
Калькуляторы

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

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

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

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

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

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

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

 

 

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

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

 

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

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

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

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

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

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

Изменено пользователем npokypop

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

@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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

С чего бы вдруг трафик никуда не идёт?

Вы с обрывом то не путайте и то есть fast hello костылина

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

В 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

Изменено пользователем nkusnetsov

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

3 hours ago, VGA said:

канал отваливается и идет переключение на резервный, винбокс отваливается

значит не осилил

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

 

Изменено пользователем VGA

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

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

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.