Информация
Услуги
  • Внедрение
  • Настройка
  • Поддержка
  • Ремонт
Контакты
Новинка
Распродажа
Новости
Доставка
Оплата
Загрузки
  • Прошивки
    • WinBox
    • RouterOS
    • Мобильные приложения MikroTik
    • Архив
  • RouterOS
  • Мобильные приложения MikroTik
  • Архив
Форум
Настройка
    info@mikrotik.moscow
    +7 495 320-55-52
    Заказать звонок
    Mikrotik.moscow
    Каталог
    • Акции
      Акции
    • Маршрутизаторы
      Маршрутизаторы
    • Коммутаторы
      Коммутаторы
    • Радиомосты и уличные точки доступа
      Радиомосты и уличные точки доступа
    • Wi-Fi для дома и офиса
      Wi-Fi для дома и офиса
    • LTE/5G
      LTE/5G
    • Powerline адаптеры
      Powerline адаптеры
    • IoT устройства
      IoT устройства
    • Оборудование 60 ГГц
      Оборудование 60 ГГц
    • Материнские платы RouterBOARD
      Материнские платы RouterBOARD
    • Корпуса
      Корпуса
    • Интерфейсы
      Интерфейсы
    • SFP/QSFP трансиверы
      SFP/QSFP трансиверы
    • Аксессуары
      Аксессуары
    • Антенны
      Антенны
    • Архив
      Архив
    Войти
    0 Сравнение
    0 Избранное
    0 Корзина
    Скачать WinBox Скачать Прошивки Форум > RouterOS Форум > SwOS Форум > Железо
    Mikrotik.moscow
    Каталог
    Войти
    0 Сравнение
    0 Избранное
    0 Корзина
    Mikrotik.moscow
    Телефоны
    +7 495 320-55-52
    Заказать звонок
    0
    0
    0
    Mikrotik.moscow
    • +7 495 320-55-52
      • Назад
      • Телефоны
      • +7 495 320-55-52
      • Заказать звонок
    • info@mikrotik.moscow
    • г. Москва, ул. Бакунинская, 84
    • Пн-Пт: 09-00 до 18-00
      Сб-Вс: выходной


    • Кабинет
    • 0 Сравнение
    • 0 Избранное
    • 0 Корзина
    Главная
    Форум
    Форум
    RouterOS
    Какие изменения в OSPF ECMP с переходом с ROS6 на ROS7?

    Какие изменения в OSPF ECMP с переходом с ROS6 на ROS7?

    Форумы: RouterOS, Аппаратное обеспечение, SwOS, Обратная связь, Объявления, Сторонние инструменты
    Поиск  Пользователи  Правила  Войти
    Страницы: 1
    RSS
    Какие изменения в OSPF ECMP с переходом с ROS6 на ROS7?, RouterOS
     
    ibutton77
    Guest
    #1
    0
    10.05.2023 18:24:00
    У меня была сеть, которая использовала ECMP для балансировки трафика по нескольким OSPF-маршрутам с одинаковой суммарной метрикой. Проще говоря, если у нас есть три узла с роутерами Mikrotik на ROS6, то трафик между A и C распределялся равномерно по обоим путям, как и хотелось:

    Где A<->C стоит с метрикой 20  
    A<->B = 10  
    B<->C = 10  

    A-----C  
    \   /  
     \ /  
      B  

    Но после обновления роутера A (головного в данном примере) на ROS7 трафик A->C перестал использовать ECMP и стал как-то учитывать «разрыв вничью» по «числу хопов». В нашем примере весь трафик A->C теперь идёт только по прямому маршруту A->C. Если метрика A<->C увеличить до 21, весь трафик идёт через B. Если метрика A<->C остаётся 20, но уменьшается на 1 метрика либо A<->B, либо B<->C (становится 9), трафик снова идёт через B.

    Пока что мы нашли обходной путь — создаём VLAN через A->B->C так, чтобы этот путь воспринимался как один хоп, тогда ECMP снова начинает нормально балансировать. Но у нас большая сеть с десятками узлов и роутеров, и это быстро превращается в кошмар для поддержки.

    Так что же изменилось в ROS6 → ROS7, что нарушило нормальную работу ECMP?
     
     
     
    SignumFera
    Guest
    #2
    0
    29.05.2023 06:47:00
    Привет! Это меня немного подкосило некоторое время назад. Похоже, что MT обновила значение метрики по умолчанию для redistribute в ROS7. Посмотрите на LSA ниже на принимающей стороне в настройке ECMP. Обратите внимание, что LSA с id 4 — от устройства на ROS6, а id 5 — от ROS7.

    [admin@MT7-1] > routing/ospf/lsa/print where id=100.68.0.0
    Flags: S - self-originated, F - flushing, W - wraparound; D - dynamic  
    4  D instance=default type="external" originator=100.66.0.2 id=100.68.0.0  
        sequence=0x80000003 age=190 checksum=0x32B9 body=  
          options=E  
          netmask=255.255.255.0  
          forwarding-address=0.0.0.0  
          metric=20 type-1  
          route-tag=0  

    5  D instance=default type="external" originator=100.67.2.5 id=100.68.0.0  
        sequence=0x80000001 age=627 checksum=0x4FAB body=  
          options=E  
          netmask=255.255.255.0  
          forwarding-address=0.0.0.0  
          metric=1 type-1  
          route-tag=0  

    [admin@MT7-1] > /ip/route/print where dst-address=100.68.0.0/24
    Flags: D - DYNAMIC; A - ACTIVE; o, y - COPY  
    Columns: DST-ADDRESS, GATEWAY, DISTANCE  
      DST-ADDRESS    GATEWAY            DISTANCE  
    DAo 100.68.0.0/24  100.67.1.3%ether1       110  

    Если на стороне ROS6 снизить redistribute метрику (потому что так проще, чем возиться с фильтром на ROS7, чтобы вернуть значения по умолчанию в норму) до уровня ROS7, ECMP снова начинает работать.

    [admin@MT6-1] > /routing ospf instance set default metric-bgp=1
    ...

    [admin@MT7-1] > routing/ospf/lsa/print where id=100.68.0.0
    Flags: S - self-originated, F - flushing, W - wraparound; D - dynamic  
    4  D instance=default type="external" originator=100.66.0.2 id=100.68.0.0  
        sequence=0x80000004 age=19 checksum=0x718C body=  
          options=E  
          netmask=255.255.255.0  
          forwarding-address=0.0.0.0  
          metric=1 type-1  
          route-tag=0  

    5  D instance=default type="external" originator=100.67.2.5 id=100.68.0.0  
        sequence=0x80000001 age=929 checksum=0x4FAB body=  
          options=E  
          netmask=255.255.255.0  
          forwarding-address=0.0.0.0  
          metric=1 type-1  
          route-tag=0  

    [admin@MT7-1] > /ip/route/print where dst-address=100.68.0.0/24
    Flags: D - DYNAMIC; A - ACTIVE; o, y - COPY; + - ECMP  
    Columns: DST-ADDRESS, GATEWAY, DISTANCE  
       DST-ADDRESS    GATEWAY            DISTANCE  
    DAo+ 100.68.0.0/24  100.67.1.3%ether1       110  
    DAo+ 100.68.0.0/24  100.67.1.2%ether1       110  

    Надеюсь, это поможет. С уважением!
     
     
     
    wiseroute
    Guest
    #3
    0
    30.05.2023 02:22:00
    Привет, ibutton77. По твоей схеме я не вижу, чтобы у OSPF был ECMP. Может, я что-то упускаю? Допустим, все ссылки — это Ethernet с дефолтной стоимостью 10.  
    a - c = 10  
    a - b = 10  
    a - b - c = 20  
    Думаю, как бы ты ни уменьшал стоимость на участках a - b или b - c, это не станет одинаково с прямым a - c. И это вводит в заблуждение.  

    Проблем с ECMP у OSPF не будет, если твоя схема будет, например, a - b - c - d, и все 10. Возможно, если у тебя на b два туннеля, связанные между ab и bc, тогда получится ECMP для пути a - c. Что-то такое ты и сделал, и поэтому столкнулся с другим вопросом: а если нужно настроить много сайтов?
     
     
     
    ibutton77
    Guest
    #4
    0
    02.06.2023 02:52:00
    Или, можно сказать, что A<>B — 10, B<>C — 10, а A<>C — 20, как я и писал в первом сообщении. Чтобы повторить, в ROS6 ECMP работает нормально в этом примере. И во всех других случаях, когда разные маршруты с разным количеством прыжков в сумме дают одинаковую стоимость. Мне удалось воспроизвести это новое поведение ROS7 на тестовой площадке с 4 разными видами оборудования, на всех версиях ROS7 до самой новой — 7.9.1, и вне зависимости от того, все роутеры в тесте с ROS7 или смешанные 6 и 7. Роутеры на ROS7 отказываются делать ECMP по двум путям с разным количеством прыжков, несмотря на настройки стоимости. Да, именно так мне пока и приходится обходить проблему, учитывая, что проблемный роутер — это обновление железа, которое не может работать ниже ROS7. А у нас куча объектов для настройки, и мне правда не хочется создавать паутину из тоннелей только чтобы попытаться обойти эту проблему. Гораздо лучше убрать баг «ECMP невозможен, если количество прыжков не совпадает», и я пока упираюсь в вопрос с дальнейшими внедрениями ROS7, пока это не решится. Но если у кого-то есть идеи по более удобным обходным решениям — я выслушаю с удовольствием. Главное, не обязательно, чтобы всё работало «как раньше», лишь бы оно действительно работало и было удобно поддерживать. Например, у нас есть проект, где мы проверяем все маршруты доставки на >1504 L2MTU, может, MPLS-TE как-то поможет. Кто-то из моих знакомых думал, что iBGP может сыграть роль временного решения. В общем, смотрю с пустым взглядом...
     
     
     
    ibutton77
    Guest
    #5
    0
    02.06.2023 03:01:00
    Спасибо, SignumFera, хотя я не совсем пойму, что именно ты описываешь и какое решение предлагаешь? Раньше мне никогда не приходилось возиться с перераспределёнными метриками, скорее всего, одна из тех величин, которую раньше безопасно было оставить без изменений. Ошибка ECMP, о которой я говорю, действительно случается, если все маршрутизаторы работают на ROS7. Нельзя же изменить метрику у роутера на ROS6 в ситуации, когда нет других роутеров на ROS6, верно? К сожалению, у меня мало опыта в поиске и устранении проблем с OSPF (да и с SIP — хороший тому пример) по журналам, так что я бы очень оценил подробное разъяснение того, что ты показываешь на своём примере.
     
     
     
    wiseroute
    Guest
    #6
    0
    02.06.2023 06:18:00
    @ibutton77, тогда, возможно, MPLS-TE сможет сыграть свою роль. Поздравляю... ты сделал следующий шаг на пути сервис-провайдера для маршрута ECMP. Можно почитать пару статей про EIGRP и неравномерный ECMP. Пока (по методу OSPF) ты можешь пойти либо с MPLS-TE, либо использовать полосу пропускания через RSVP — я уверен, именно это и было причиной, по которой ты начал делать ECMP изначально. Редистрибуция? Откуда? Статик? Жёсткий VLAN-туннель всё ещё может быть вариантом — если, конечно, у тебя не нужен полностью ячеистый сетап. Я представляю себе около 100 сайтов — тогда, конечно, стоит использовать этого парня NMS, чтобы настрoить несколько сайтов из одного места. Хорошего дня!
     
     
     
    wiseroute
    Guest
    #7
    0
    02.06.2023 06:56:00
    @ibutton77 ааа… да. Пожалуйста, подожди. Думаю, @signumfera прав насчёт использования фильтра для установки метрики. Но у меня нет времени этим заняться в лаборатории. Если ты сможешь поискать параметры фильтров ospf, попробуй понять эту идею: ищи входящий маршрут в c, через рекламу от b. Проверь, можешь ли изменить его метрику? Если сможешь изменить и запланировать этот фильтр во входящем ospf-фильтре, тогда у тебя должна получиться ECMP. Просто мысль.
     
     
     
    wiseroute
    Guest
    #8
    0
    02.06.2023 12:58:00
    @ibutton77, честно говоря, не знаю, сработает ли это у тебя, но выглядит как неплохой обходной вариант? на v7.6 [admin@a] > ip route/print
    Flags: D - DYNAMIC; A - ACTIVE; c, s, o, y - COPY; + - ECMP  
    Columns: DST-ADDRESS, GATEWAY, DISTANCE  
    #      DST-ADDRESS    GATEWAY        DISTANCE  
     DAc  10.0.11.0/30   vab                   0  
     DAc  10.0.12.0/30   vac                   0  
     DAo+ 10.0.13.0/30   10.0.12.2%vac       110  
     DAo+ 10.0.13.0/30   10.0.11.2%vab       110  
     DAc  172.16.1.1/32  lo0                   0  
     DAo  172.16.1.2/32  10.0.11.2%vab       110  
     DAo+ 172.16.1.3/32  10.0.12.2%vac       110  
    0  As+ 172.16.1.3/32  10.0.11.2           110 a, lo0 1.1/32 b, lo0 1.2/32 c, lo0 1.3/32  

    Исходный маршрут с 1.1 на 1.3 шел через интерфейс vac.  
    Потом я добавил статический маршрут с a на c через b, используя ту же метрику 110.  

    Результаты ping:  
    [admin@a] > ping count=3 172.16.1.3 src-address=172.16.1.1
    SEQ HOST         SIZE TTL TIME       STATUS  
     0 172.16.1.3     56  64 17ms770us  
     1 172.16.1.3     56  64 2ms812us  
     2 172.16.1.3     56  64 6ms269us  
    sent=3 received=3 packet-loss=0% min-rtt=2ms812us avg-rtt=8ms950us max-rtt=17ms770us  

    traceroute от a до c с другим интерфейсом:  
    [admin@a] > /tool/traceroute 172.16.1.3 src-address=172.16.1.1 interface=vab
    Columns: ADDRESS, LOSS, SENT, LAST, AVG, BEST, WORST, STD-DEV  
    #  ADDRESS     LOSS  SENT  LAST    AVG  BEST  WORST  STD-DEV  
    1  10.0.11.2   0%       5  3.3ms   3.6  2.3   4.9    0.9  
    2  172.16.1.3  0%       5  11.7ms  6.2  2     11.7   3.8  

    Но я подумал, что эти два теста не совсем вписываются в картину ECMP-теста.  
    Обрати внимание, что пока я делал эту лабораторную для тебя, роутеры падали, когда я добавлял этот статический маршрут. Не знаю почему — возможно, сначала лучше проверить на стенде.  
    3 роутера — a,b,c, только их. Надеюсь, будет полезно.
     
     
     
    gmsmstr
    Guest
    #9
    0
    02.06.2023 13:00:00
    Это известная и воспроизводимая ошибка в RouterOS версии 7.9.1 (минимум), и они (MikroTik) знают об этом и подтвердили. При использовании только стоимости OSPF нет ECMP между роутерами v7.9.1, если стоимость на пути одинаковая. Они не могут назвать примерную дату исправления.
     
     
     
    wiseroute
    Guest
    #10
    0
    02.06.2023 13:11:00
    @gmsmstr ааа… спасибо за подтверждение. Не знаю, после изменения стоимости пути интерфейса некоторые маршруты ospf стали неактивными. Это тоже баг?
     
     
     
    gmsmstr
    Guest
    #11
    0
    02.06.2023 13:23:00
    Ничего не является неактивным, просто выбирается один маршрут для установки вместо использования ECMP. Хотя метрика OSPF одинакова.
     
     
     
    ibutton77
    Guest
    #12
    0
    02.06.2023 17:50:00
    Для ясности: по моим тестам ROS7 создаёт ECMP только если два пути имеют одинаковое количество хопов. Если количество хопов разное (но общая стоимость OSPF одинаковая), то ROS7 начинает создавать проблемы, используя количество хопов в качестве контрпродуктивного критерия при равенстве стоимости. Это поведение отличается от ROS5 и ROS6, которые делали ECMP для путей с одинаковой суммарной стоимостью, не обращая внимания на количество хопов. Такое поведение на практике было даже полезным, потому что разрыв равенства по стоимости намного проще сделать, просто поправив стоимость на одном из участков, если администратор действительно этого хотел. Например, мой раздражающий способ — прокладывать новые VLAN по более длинным маршрутам, чтобы они выглядели как один хоп — лишь достаточно, чтобы заставить ROS7 работать нормально... но этот обходной путь очень хрупкий, ужасно сложный в поддержке, значительно увеличивает вероятность ошибок и так далее.
     
     
     
    wiseroute
    Guest
    #13
    0
    02.06.2023 23:28:00
    @ibutton77 Например, мой раздражающий обходной путь с прокладкой свежих VLAN по более длинным маршрутам, чтобы они выглядели как один хоп, чтобы ROS7 нормально работал... Но этот обходной путь очень хрупкий, адски сложный в поддержке, существенно увеличивает вероятность ошибок и так далее. Впрочем, думаю, теперь тебе не нужно прокладывать VLAN по всей сети. Смотри мой последний пост — я сделал простой обход для твоей проблемы. Но тебе сначала нужно протестировать это в своей лаборатории. ECMP 👍🏻
     
     
     
    Страницы: 1
    Читают тему
    +7 495 320-55-52
    info@mikrotik.moscow
    Электрозаводская, Бауманская
    Москва, ул. Бакунинская, 84с21
    Конфиденциальность Оферта
    © 2026 «Mikrotik.Moscow»
    Главная Каталог 0 Корзина 0 Избранные Кабинет 0 Сравнение Акции Контакты Услуги Бренды Отзывы Компания Лицензии Документы Реквизиты Поиск Блог Обзоры