Привет, столкнулся с странной проблемой на маршрутизаторах Mikrotik Cloud Core CCR1036. Настройка довольно простая: у меня 2 маршрутизатора на одном объекте и 2 на другом, между роутерами на одном объекте настроены iBGP-сессии, а между двумя парами роутеров на разнесённых объектах — eBGP-сессии. В такой конфигурации один маршрутизатор должен предпочитать маршрут к сети на удалённом объекте через eBGP, а при его отказе — через iBGP, а затем по другому каналу.
На самом деле происходит следующее: маршрутизатор получает префикс через iBGP с локальным преференсом по умолчанию 100, и ПРИ ЭТОМ ОН ПРЕДПОЧИТАЕТ iBGP-маршрут (distance 200 вместо distance 20). Проверял это через фильтрацию маршрутов и изменение локального преференса на 0 — тогда всё работает как надо, маршрутизатор выбирает маршрут с меньшим значением distance.
Ниже приведён вывод с примером двух подсетей: одна активна с большим distance (10.116.21.0), а вторая стала активной как и положено после моих изменений (10.116.23.0/24):
69 ADb dst-address=10.116.21.0/24 gateway=10.116.3.146 gateway-status=10.116.3.146 reachable via ether8-iBGP distance=200 scope=40 target-scope=30 bgp-local-pref=100 bgp-origin=igp received-from=MT-ZGALT-CORE2
70 Db dst-address=10.116.21.0/24 gateway=172.30.2.1 gateway-status=172.30.2.1 recursive via 10.116.4.22 sfp1G-Metronet_dark_fiber_ZG1 distance=20 scope=40 target-scope=30 bgp-as-path=“65002” bgp-origin=incomplete received-from=MT-ZG-CORE1
77 ADb dst-address=10.116.23.0/24 gateway=172.30.2.1 gateway-status=172.30.2.1 recursive via 10.116.4.22 sfp1G-Metronet_dark_fiber_ZG1 distance=20 scope=40 target-scope=30 bgp-as-path=“65002” bgp-origin=igp received-from=MT-ZG-CORE1
78 Db dst-address=10.116.23.0/24 gateway=10.116.3.146 gateway-status=10.116.3.146 reachable via ether8-iBGP distance=200 scope=40 target-scope=30 bgp-local-pref=0 bgp-origin=ig> received-from=MT-ZGALT-CORE2
Это баг реализации BGP в Mikrotik или я что-то упускаю?
На самом деле происходит следующее: маршрутизатор получает префикс через iBGP с локальным преференсом по умолчанию 100, и ПРИ ЭТОМ ОН ПРЕДПОЧИТАЕТ iBGP-маршрут (distance 200 вместо distance 20). Проверял это через фильтрацию маршрутов и изменение локального преференса на 0 — тогда всё работает как надо, маршрутизатор выбирает маршрут с меньшим значением distance.
Ниже приведён вывод с примером двух подсетей: одна активна с большим distance (10.116.21.0), а вторая стала активной как и положено после моих изменений (10.116.23.0/24):
69 ADb dst-address=10.116.21.0/24 gateway=10.116.3.146 gateway-status=10.116.3.146 reachable via ether8-iBGP distance=200 scope=40 target-scope=30 bgp-local-pref=100 bgp-origin=igp received-from=MT-ZGALT-CORE2
70 Db dst-address=10.116.21.0/24 gateway=172.30.2.1 gateway-status=172.30.2.1 recursive via 10.116.4.22 sfp1G-Metronet_dark_fiber_ZG1 distance=20 scope=40 target-scope=30 bgp-as-path=“65002” bgp-origin=incomplete received-from=MT-ZG-CORE1
77 ADb dst-address=10.116.23.0/24 gateway=172.30.2.1 gateway-status=172.30.2.1 recursive via 10.116.4.22 sfp1G-Metronet_dark_fiber_ZG1 distance=20 scope=40 target-scope=30 bgp-as-path=“65002” bgp-origin=igp received-from=MT-ZG-CORE1
78 Db dst-address=10.116.23.0/24 gateway=10.116.3.146 gateway-status=10.116.3.146 reachable via ether8-iBGP distance=200 scope=40 target-scope=30 bgp-local-pref=0 bgp-origin=ig> received-from=MT-ZGALT-CORE2
Это баг реализации BGP в Mikrotik или я что-то упускаю?
