Информация
Услуги
  • Внедрение
  • Настройка
  • Поддержка
  • Ремонт
Контакты
Новинка
Распродажа
Новости
Доставка
Оплата
Загрузки
  • Прошивки
    • 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
    Альтернатива агрегирования адресов BGP в Mikrotik

    Альтернатива агрегирования адресов BGP в Mikrotik

    Форумы: RouterOS, Аппаратное обеспечение, SwOS, Обратная связь, Объявления, Сторонние инструменты
    Поиск  Пользователи  Правила  Войти
    Страницы: 1
    RSS
    Альтернатива агрегирования адресов BGP в Mikrotik, RouterOS
     
    DaneelOlivaw200
    Guest
    #1
    0
    21.09.2022 00:14:00
    Привет, я тут новый пользователь Mikrotik. Пока что до боевой эксплуатации дело не дошло, но пока всё работает отлично!

    На Cisco-устройстве я обычно использовал что-то вроде этого:  
    router bgp 65001  
    aggregate-address 1.1.1.0 255.255.255.0  
    neighbor 192.168.1.1 remote-as 65001  
    neighbor <isp_address> remote-as 101  
    redistribute connected  
    interface GigabitEthernet0/0/1  
    ip address 1.1.1.1 255.255.255.128  
    interface GigabitEthernet0/0/2  
    ip address 1.1.1.128 255.255.255.128  
    interface GigabitEthernet0/0/3  
    ip address <isp_customer_address> 255.255.255.252  

    Префикс 1.1.1.0/24 объявляется провайдеру.  

    Как задать аналог команды «aggregate-address» в Mikrotik? Это делается через фильтр? В старых версиях, судя по документации, эта команда очевидно присутствует, но в версии 7.x я такого не вижу. Как вообще правильно применять такую настройку?
     
     
     
    DaneelOlivaw200
    Guest
    #2
    0
    16.03.2023 03:39:00
    @jmay именно так я и сделал, и всё сработало просто отлично!
     
     
     
    randomnz
    Guest
    #3
    0
    17.03.2023 04:17:00
    Не мог бы ты выложить свою конфигурацию? Я с этим никак не справляюсь.
     
     
     
    pe1chl
    Guest
    #4
    0
    17.03.2023 10:06:00
    Поскольку в версии 7 больше нет агрегации маршрутов и не рекламируются маршруты, которые у вас на самом деле отсутствуют (bgp-сети с synchronize=no), вам нужно: добавить «черную дыру» для сети, которую хотите агрегировать, например 1.1.1.0/24 из примера выше (если у вас ещё нет маршрута 1.1.1.0/24); добавить элемент 1.1.1.0/24 в список адресов, который вы указали как «выходная сеть» (по умолчанию называется bgp-networks при миграции с v6); создать исходящий фильтр маршрутизации с примерно таким правилом: add chain=out disabled=no rule=“if (dst == 1.1.1.0/24 && dst-len in 25-32) { reject; }” add chain=out disabled=no rule=“accept;” и применить его к BGP-соединению. Этот фильтр гарантирует, что более мелкие подсети внутри агрегированного /24 не будут анонсироваться. Конечно, это всё же не совсем то же самое, что агрегация маршрутов, ведь пир не узнает об этом (при агрегации маршрутов они получают специальный атрибут «aggregator» с маршрутом).
     
     
     
    randomnz
    Guest
    #5
    0
    17.03.2023 10:42:00
    Спасибо. Моя проблема в том, что я хочу, чтобы MikroTik объявлял только /24, когда он получает /28 от роутера ниже по цепочке...
     
     
     
    pe1chl
    Guest
    #6
    0
    17.03.2023 11:45:00
    Да, такие вещи больше нельзя сделать в версии v7, если только вы не хотите использовать какой-нибудь запланированный скрипт.
     
     
     
    randomnz
    Guest
    #7
    0
    17.03.2023 17:40:00
    К сожалению, это довольно важная особенность BGP. Не совсем понятно, как MT дошли до того, что продают только железо, поддерживающее 7-ку, причем с ограниченным набором функций.
     
     
     
    pe1chl
    Guest
    #8
    0
    17.03.2023 18:45:00
    Мне это тоже не нравится. И ещё меньше мне нравится, что BFD до сих пор недоступен. Похоже, MikroTik были вынуждены реализовать многопоточный BGP, особенно учитывая, что они продавали роутеры с всё большим количеством ядер (например, CCR1072 с 72 ядрами), которые очень медленно справлялись с BGP при работе с полными интернет-таблицами. Они разделили задачи между несколькими процессами, но при этом потеряли важный функционал. А что хуже всего — на всё это ушло столько времени, что эти многопроцессорные роутеры уже в основном стали устаревшими и их заменяют новыми моделями с меньшим, но более быстрым количеством ядер. Так что, возможно, это и не было так уж необходимо в итоге. Тем не менее, я не думаю, что ситуация изменится. Нам придётся скорректировать ожидания и, возможно, искать обходные пути. В своей сети мне придётся кое-что перенастроить, а может и перенумеровать, чтобы справиться с этим.
     
     
     
    DarkNate
    Guest
    #9
    0
    23.03.2023 05:52:00
    Агрегаты в ROSv7 работают примерно так же, как в JunOS. В JunOS мы создаём префикс-лист с агрегатами, затем используем функцию агрегации маршрутов, чтобы автоматически создавать discard-маршруты, как только появляется маршрут, влияющий на агрегат. В ROSv7 мы создаём префикс-лист (address list) с агрегатами, а затем просто настраиваем статическую маршрутизацию на blackhole для всех агрегатов на каждом граничном маршрутизаторе в сети — и всё. В конфигурации BGP-пира указываем output network на этот address list, при необходимости можно тонко настроить с помощью route filters. Вот несколько примеров:  
    if (dst in bgp-networks && dst-len<24) {accept} else {reject}  
    if (dst in bgp-networks && dst-len>29 && dst-len<32) {accept} else {reject}
     
     
     
    randomnz
    Guest
    #10
    0
    24.03.2023 07:19:00
    Ты хочешь сказать, что вот так должно работать:  
    /ip firewall address-list add address=1.1.1.0/23 list=bgp_agg_2d

    /ip route add blackhole disabled=no distance=1 dst-address=1.1.1.0/26

    /routing bgp connection add as=38900 cisco-vpls-nlri-len-fmt=auto-bits connect=yes disabled=no hold-time=45s input.filter=2D-IN .ignore-as-path-len=yes listen=yes local.role=ebgp .ttl=2 name="2D" output.filter-chain=2D-OUT- .keep-sent-attributes=yes .network=bgp_agg_2d .no-client-to-client-reflection=yes .redistribute=static,bgp remote.address=9.9.9.9/32 .as=9790 .port=179 router-id=8.8.8.8 routing-table=main templates=default  
    Тогда, когда другая BGP-пара анонсирует 1.1.1.0/26 на роутер, он будет анонсировать 1.1.1.0/23?
     
     
     
    DarkNate
    Guest
    #11
    0
    24.03.2023 19:55:00
    В твоей конфигурации есть проблемы — ты неправильно настроил привязку ввода/вывода CPU, из-за этого процессор роутера будет перегружаться при загрузке больших таблиц маршрутизации. Режим привязки входа/выхода должен соответствовать модели CPU твоего роутера для всех BGP-пиров, включая iBGP. Вот что я сделаю: поделюсь своей конфигурацией из продакшена на CCR1072, где CPU имеет большое количество ядер, что важно для настройки affinity. В MikroTik ROSv7 теперь есть шаблоны, которые автоматически настраивают некоторые параметры при создании нового пира. Также приведу примеры фильтров маршрутов.

    Для примера будем считать, что хочу экспортировать только агрегаты размера /21 и /22, потому что в реальности у тебя может быть список агрегатов с /21, /22, /23 и так далее.

    #Агрегированный маршрут#

    /ip/firewall/address-list  
    add address=100.64.0.0/21 list=bgp-networks  
    add address=10.0.0.0/22 list=bgp-networks  

    /ip route  
    add blackhole comment="Blackhole route (Public Aggregate)" disabled=no dst-address=100.64.0.0/21  
    add blackhole comment="Blackhole route (Public Aggregate)" disabled=no dst-address=10.0.0.0/22  

    /routing bgp template  
    set default as=123 disabled=no hold-time=1m input.affinity=alone keepalive-time=20s output.affinity=alone .network=bgp-networks .redistribute=bgp remove-private-as=yes router-id=100.64.0.0 routing-table=main  

    /routing bgp connection  
    add address-families=ip as=123 disabled=no hold-time=1m input.affinity=alone .filter=Transit-IN-IPv4 keepalive-time=20s local.address=192.168.0.0 role=ebgp-customer name=IPv4-Transit output.affinity=alone .filter-chain=Transit-OUT-IPv4 .network=bgp-networks .redistribute=bgp remote.address=192.168.0.1 .as=1234 remove-private-as=yes router-id=100.64.0.0 routing-table=main templates=default  

    /routing filter rule  
    add chain=Transit-IN-IPv4 disabled=no rule="if (dst in not_in_internet) {reject} else {set pref-src 100.64.0.0; accept}"  
    add chain=Transit-OUT-IPv4 disabled=no rule="if (dst in bgp-networks && dst-len==21 || dst-len=22) {accept} else {reject}"  

    Я использую ту же логику на Juniper, проблем не было. Главное отличие — синтаксис, CLI, вендор и отсутствие автоагрегации маршрутов в MikroTik. Также у меня RouterID — это loopback IP устройства для простоты.
     
     
     
    randomnz
    Guest
    #12
    0
    25.03.2023 00:39:00
    Спасибо, это пока конфигурация для демонстрации – работает на CCR-2116. Я учту, чтобы проверить affinity перед развертыванием. Спасибо, что поделились своей конфигурацией.

    Проблема, которая у меня остаётся, в том, что я хочу, чтобы маршрутизатор анонсировал маршрут 100.64.0.0/21 только тогда, когда в его собственной таблице маршрутизации есть маршрут из этого диапазона. Например, если вышестоящий маршрутизатор анонсирует 100.64.0.0/24, я бы хотел, чтобы мой маршрутизатор анонсировал 100.64.0.0/21 своим соседям, а не /24.

    Используя фильтры и так далее, убрать /24 достаточно просто – но если следовать примеру конфигурации (по крайней мере в моём случае), агрегированный маршрут 100.64.0.0/21 всегда анонсируется.
     
     
     
    DarkNate
    Guest
    #13
    0
    25.03.2023 05:02:00
    Как я уже говорил, MikroTik не поддерживает автоагрегацию, в отличие от Juniper.
     
     
     
    randomnz
    Guest
    #14
    0
    25.03.2023 09:24:00
    К сожалению, в ros6 это сработало... Спасибо за помощь... Вы меня очень продвинули вперёд.
     
     
     
    lele
    Guest
    #15
    0
    22.11.2024 13:10:00
    Сегодня наткнулся на это, пытаясь настроить маршрутизацию между двумя MX204 и двумя CCR2216. Поправьте, если я ошибаюсь. Это похоже в том плане, что и там, и там нужно как-то объявлять агрегат, но в случае Junos «агрегатные» или «анонсированные» маршруты (а) синхронизируются с любыми более мелкими подсетями, которые они содержат, и (б) пропадают, если такая подсеть отсутствует в таблице маршрутизации. В случае ROS v7 я не смог найти способ отозвать агрегат, если соответствующий маршрутизатор становится изолированным. Риск в том, что «черная дыра» — маршрут, который все рекомендуют, на самом деле может превратиться в настоящую черную дыру.
     
     
     
    pe1chl
    Guest
    #16
    0
    22.11.2024 15:01:00
    Действительно. Но, конечно, вы можете написать скрипт и запускать его с нужным интервалом, который проверяет, доступна ли ваша меньшая подсеть в таблице маршрутов, и если не доступна — отключает маршрут-черную дыру. Это приведёт к тому, что агрегированный маршрут больше не будет рекламироваться. Раньше в версии v6 это можно было сделать без скрипта, а в v7 нужен именно скрипт.
     
     
     
    Страницы: 1
    Читают тему
    +7 495 320-55-52
    info@mikrotik.moscow
    Электрозаводская, Бауманская
    Москва, ул. Бакунинская, 84с21
    Конфиденциальность Оферта
    © 2026 «Mikrotik.Moscow»
    Главная Каталог 0 Корзина 0 Избранные Кабинет 0 Сравнение Акции Контакты Услуги Бренды Отзывы Компания Лицензии Документы Реквизиты Поиск Блог Обзоры