LostSoul Опубликовано 6 мая, 2018 · Жалоба Имеются BGP маршрутизаторы R1 , R2 , R3 , связаны между собой выделенными каналами L1, L2 , L3 каждый с каждым. Все три маршрутизатора относятся к одной AS. Маршрутизатор R1 имеет включение во внешние сети и взаимодействует по EBGP с другими AS. Маршрутизаторы R2 и R3 имеют взаимодействие только с R1 и друг с другом, по iBGP. К маршрутизатору R2 и R3 подключены клиенты , которым нужно обеспечить резервирование связи через канал L3 в случае обрыва основных каналов L1 и L2. Поднимать на каналах что-то типа OSPF не хочется, хочется обойтись iBGP. Проблема классическая, заключается в том, что R2 не хочет анонсировать для R1 маршруты, разученные по iBGP от R3. И аналогично, R3 не хочет выдавать R1 маршруты, разученные по iBGP от R2. Играть всеми комбинациями instance client-to-client-reflection , peer route-reflect , peer nexthop-choice я попробовал, и к успеху не пришел. А именно - если включить route-reflect то маршруты начинают анонсироватся, но с nexthop из недоступной напрямую подсети ( отделенной маршрутизатором ) , и в итоге всё равно не работают. nexthop-choice = force-self в ситации никак не помогает. Можете ткнуть в ссылку как такое правильно настроить? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
rz3dwy Опубликовано 6 мая, 2018 (изменено) · Жалоба М.б. исползовать Sub-AS для связи между роутерами для обеспечения квази-фуллмеш при отказе любого из L1,L2? Изменено 6 мая, 2018 пользователем rz3dwy Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
LostSoul Опубликовано 7 мая, 2018 · Жалоба 6 часов назад, rz3dwy сказал: М.б. исползовать Sub-AS Ну это как-то совсем кривенько. так как на самом деле структура сети сложнее, упростил для примера. в качестве присоединяемых на узлах r2 и r3 могут быть железки типа cisco me3400 , которым надо по BGP отдать default + доступные местные подсети. И скорее всего каталист в отличии от микротика не сумеет несколько bgp instance. А в качестве R1 в некоторых случаях может быть например 1U сервер c frr или quaga или что-то ещё экзотическое по случаю. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
rz3dwy Опубликовано 7 мая, 2018 · Жалоба Так это особенность iBGP - неанонсирование маршрутов другим соседям. Либо RR либо confederation нужно использовать. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
LostSoul Опубликовано 7 мая, 2018 · Жалоба 1 час назад, rz3dwy сказал: Либо RR либо confederation нужно использовать. Так я включаю RR , но он у меня не взлетает годным способом. Mikrotik не меняет nexthop на IP своего интерфейса, доступного пиру, а оставляет таким каким он был получен. В итоге peer получает nexthop в недоступном ему влане Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
LostSoul Опубликовано 7 мая, 2018 · Жалоба Да и что делать с sub-as, если роутеров в цепочке станет не 3шт , а например 4шт ? или какая-то более сложная топология Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
LostSoul Опубликовано 9 мая, 2018 · Жалоба Отвечаю сам себе, всё оказалось элементарно. 1) включаем /routing bgp instance set client-to-client-reflection=yes 2) у каждого peerN ставим /routing bgp peer set peerN set route-reflect=yes 3) для исправления кривого nexthop добавляем фильтр /routing filter add chain=peerN-out set-out-nexthop=<ip-адрес этого роутера в влане стыка с peerN 4) вешаем этот фильтр на пир /routing bgp peer set rJ2 out-filter=peerN-out получаем то желали - все IGP маршруты, полученные от соседа в цепочке роутеров, улетают другому соседу а nexthop выставляется на роутер между ними. Недоумеваю , почему такое просто решение не мог никто подсказать. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
LostSoul Опубликовано 2 июля, 2018 · Жалоба Дополнительно. Второй непростой задачей оказался выбор оптимального маршрута. Так как на каждый mikrotik в кольце хоть и приходит 2 варианта пути , но ему абсолютно неведомо какой из них оптимальный. Для решения этой задачи указанный выше export filter для соседа в кольце был переделан следующим образом 1) на каждом роутере при экспорте префикса увеличиваем ему значение аттрибута med на единицу. Целевой роутер выбирает маршрут с минимальным med ( то есть с минимальным числом хопов ) Пример для mikrotik R2 , с IP-адресом в сторону R1 - 172.16.1.2 , в сторону R3 - 172.16.3.1 Цитата add bgp-med=2 chain=out-r1 set-bgp-med=3 set-out-nexthop=172.16.1.2 add bgp-med=1 chain=out-r1 set-bgp-med=2 set-out-nexthop=172.16.1.2 add bgp-med=0 chain=out-r1 set-bgp-med=1 set-out-nexthop=172.16.1.2 add bgp-med=2 chain=out-r3 set-bgp-med=3 set-out-nexthop=172.16.3.1 add bgp-med=1 chain=out-r3 set-bgp-med=2 set-out-nexthop=172.16.3.1 add bgp-med=0 chain=out-r3 set-bgp-med=1 set-out-nexthop=172.16.3.1 Таким образом , при просмотре таблицы маршрутов на R2 мы будем видеть, что для подсети 185.246.50.128/25 ( анонсируемой с R3 ) будет nexthop 172.16.1.1 с med = 2 и 172.16.3.2 с med=1. До тех пор пока кратчайшее соединение доступно, трафик будет бегать в обе стороны по кратчайшему пути. В моем случае R1 это не микротик , а linux box с демоном маршрутизации bird. Для него годные фильтры оказались следующие Цитата filter out_R2 { if source ~ [ RTS_BGP ] then bgp_med = bgp_med + 1; else bgp_med=1; accept; } filter out_R3 { if source ~ [ RTS_BGP ] then bgp_med = bgp_med + 1; else bgp_med=1; accept; } Надеюсь, кому-то мой опыт окажется полезным. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
morf Опубликовано 7 декабря, 2019 · Жалоба Еще как. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Dmytro Опубликовано 10 декабря, 2019 (изменено) · Жалоба Я правильно понимаю, в схеме "треугольника" все роутеры имеют идентичную конфигурацию. Но на лабораторном стенде не могу получить требуемый результат, next-hop не анносируется :(. Можете выложить экспорт ветки routing, чтобы посмотреть ваши настройки bgp и filters. Изменено 10 декабря, 2019 пользователем Dmytro Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
LostSoul Опубликовано 29 ноября, 2023 · Жалоба И снова, для тех кто придет страдать , как сделать set-out-nexthop в ROS7. делается так /routing rules add chain=peer1-out disabled=no rule="set gw 172.16.3.1;accept;" без accept в конце не работает. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...