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

    Решённый скрипт для воссоздания правил mangle балансировки нагрузки

    Форумы: RouterOS, Аппаратное обеспечение, SwOS, Обратная связь, Объявления, Сторонние инструменты
    Поиск  Пользователи  Правила  Войти
    Страницы: 1
    RSS
    Решённый скрипт для воссоздания правил mangle балансировки нагрузки, RouterOS
     
    lukkes
    Guest
    #1
    0
    17.03.2010 12:38:00
    Привет! Я сделал балансировку нагрузки на 10 wan (dsl) с помощью PCC, но столкнулся с большой проблемой. У нас в стране иногда одновременно происходит прерывание работы нескольких adsl-линий, иногда у меня 4 или 5 wan падают одновременно. Это серьёзная проблема, потому что RouterOS отправляет весь трафик с этих 5 упавших wan на шлюз по умолчанию, перегружая этот канал. Я написал скрипт, который сначала считает количество активных маршрутов, а потом пересоздаёт правила mangle, меняя параметр PCC и вставляя новые правила. Возможно, есть более простой способ решить эту проблему (жду мнений), но сейчас так я это вижу. Я мало знаю о скриптинге, возможно, есть более лучший и простой вариант, буду ждать советов.

    :global activeroutesold;  
    :local activeroutes 0;  
    :local route;  
    :local tes;  
    :local divs 0;  
    :local less;  
    :local routingmarks;  
    :local arrayrouting;  
    :local routemark;

    :log info "НАЧАЛО***********************************************************"

    :foreach route in=[/ip route find where comment~"^[a-z]*balanceo" active=yes] do={
      :set tes [ /ip route get $route routing-mark ];
      :set activeroutes ($activeroutes + 1)  
      :set routingmarks ($routingmarks, $tes);  
    }  
    :log info $activeroutes;  
    :log info $activeroutesold;  
    :if ($activeroutes != $activeroutesold) do={  
      /ip firewall  
         mangle {  
            :foreach a in=[find where comment~"^[a-z]*balance" ] do={
               remove $a }  
      }  
      :set arrayrouting [:toarray $routingmarks]
      :set divs $activeroutes;  
      :set less $activeroutes;  
      :for i from=0 to=($activeroutes-1) do={  
         :set routemark [:pick $routingmarks $i]
         :set divs ($activeroutes - $less);  
         :set less ($less - 1);  
         :log info "$routemark";  
         :log info "$activeroutes/$divs"  
          /ip firewall mangle  
         :log info "Устанавливаю фильтры";  
         add action=mark-connection chain=prerouting comment="balance conn $routemark" \  
             disabled=no dst-address-type=!local in-interface=local \  
             new-connection-mark="$routemark" passthrough=yes per-connection-classifier=\  
             "both-addresses:$activeroutes/$divs" place-before=3  
         
         add action=mark-routing chain=prerouting comment="balance route $routemark" \  
            connection-mark="$routemark" disabled=no in-interface=local new-routing-mark=\  
            "$routemark" passthrough=no place-before=3  

       }  
    } else={:log info "маршруты не изменились"};  
    :log info ("$activeroute активных маршрутов");  
    :set activeroutesold $activeroutes;  
    :log info "КОНЕЦ********************************************************************"
     
     
     
    maximan
    Guest
    #2
    0
    07.04.2010 22:01:00
    Привет! Я пытался использовать этот скрипт, но появилась синтаксическая ошибка (строка 49, столбец 14). Я искал баг, но не смог найти. Можешь проверить синтаксис? Я пробовал с версиями v3 и v4. Спасибо, M.
     
     
     
    lukkes
    Guest
    #3
    0
    07.04.2010 23:49:00
    Привет, max, у меня это работает на роутере, не знаю, в чем проблема. Hola, max, мы познакомились на MUM в Аргентине, скрипт, который там, я скопировал и вставил из текущей настройки, здесь я вставлю тебе тот же, но с некоторыми изменениями, которые делал по ходу дела. Но, как я и говорил, он работает на RB493 с версией 4.5:

    :global activeroutesold;
    :local activeroutes 0;
    :local route;
    :local tes;
    :local divs 0;
    :local less;
    :local routingmarks;
    :local arrayrouting;
    :local routemark;

    :log info "НАЧАЛО************"
    :foreach route in=[/ip route find where comment~"^[a-z]*balanceo" active=yes] do={
      :set tes [/ip route get $route routing-mark];
      :set activeroutes ($activeroutes + 1)
      :set routingmarks ($routingmarks, $tes);
    }
    :if ($activeroutes != $activeroutesold) do={
      /ip firewall
         mangle {
            :foreach a in=[find where comment~"^[a-z]*balance" ] do={
               remove $a }
      }
      :set arrayrouting [:toarray $routingmarks]
      :set divs $activeroutes;
      :set less $activeroutes;

      :log info "email отправлен";
      :for i from=0 to=($activeroutes-1) do={
         :set routemark [:pick $routingmarks $i]
         :set divs ($activeroutes - $less);
         :set less ($less - 1);
         :log info "$routemark";
         :log info "$activeroutes/$divs"
          /ip firewall mangle
         :log info "Устанавливаем фильтры";
         add action=mark-connection chain=prerouting comment="balance conn $routemark" \
             disabled=no dst-address-type=!local in-interface=local \
             new-connection-mark="$routemark" passthrough=yes per-connection-classifier=\
             "both-addresses:$activeroutes/$divs" place-before=3
         add action=mark-routing chain=prerouting comment="balance route $routemark" \
            connection-mark="$routemark" disabled=no in-interface=local new-routing-mark=\
            "$routemark" passthrough=no place-before=3
       }
    } else={:log info "маршруты не изменились"};
    :log info ("$activeroutes активных маршрутов");
    :set activeroutesold $activeroutes;
    :log info "КОНЕЦ**************"

    Спасибо Janisk за то, что отредактировал часть кода и показал, что это возможно, хе-хе-хе!
     
     
     
    kazanova
    Guest
    #4
    0
    08.07.2010 19:45:00
    Chapex, брат, что за фотка — ты слишком мал, или антенна такая огромная? Классный кадр!
     
     
     
    maximan
    Guest
    #5
    0
    13.07.2010 15:10:00
    chapex — это gordero M.
     
     
     
    chapex
    Guest
    #6
    0
    13.07.2010 15:17:00
    Говорить, что я слишком маленький — это шутка, антенна почти 2 метра в радиусе. Да здравствуют Жирныееееееееее!!! Хахаха.
     
     
     
    plisken
    Guest
    #7
    0
    16.03.2019 11:06:00
    Балансировка нагрузки и резервное переключение работают неправильно. До 2019 года балансировка нагрузки и резервное переключение не работали корректно. Пора уже что-то с этим сделать. Это было бы отличным преимуществом для роутеров Mikrotik.
     
     
     
    Chupaka
    Guest
    #8
    0
    16.03.2019 16:06:00
    О чём ты говоришь? В целом, балансировка нагрузки и переключение при сбое всегда работали исправно с самого начала. Твой аккаунт взломали?..
     
     
     
    anav
    Guest
    #9
    0
    18.03.2019 12:05:00
    Нет, Chupaka, он так и не смог настроить mangling и PCC в другой теме, поэтому теперь вечно жалуется на это как спамер везде. Но если хочешь помочь, прошу присоединяйся к нам в этой теме, потому что я так и не решил вопрос, хотя он вроде бы простой… http://forum.mikrotik.com/t/load-balancing-dont-work/128208/1

    Что меня удивляет в этой теме — конфигурация сделана так, чтобы работать, даже если не все WAN доступны, поэтому я не вижу смысла в скрипте. В mangled routes мы проверяем доступность шлюза с помощью пинга. Если один не отвечает, нагрузка перераспределяется между оставшимися рабочими маршрутами и так далее. Что мне не хватает в логике?

    Отмечу: скрипты писать или настраивать MT сам не умею.
     
     
     
    Chupaka
    Guest
    #10
    0
    18.03.2019 13:18:00
    Да, я недавно видел эту тему. Проблема в том, что много вопросов, но нет ни ответов, ни технической или диагностической информации… Только жалобы.
     
     
     
    plisken
    Guest
    #11
    0
    18.03.2019 21:28:00
    Привет, Chupaka, я говорю про те туториалы, которые были сделаны и в каком году. Туториал Стива Дишера не работает. Что-то должно измениться в Mikrotik роутерах. В RouterOS 6.37 балансировка нагрузки и фейловер работали отлично. Также есть туториал по фейловеру, сделанный в 2019 году (PDF-файл), и он тоже не работает. Вот что я имею в виду. Если я отправляю supout.rif в Mikrotik, они очень расплывчаты и не дают конкретных решений. Что ты имеешь в виду под «мой аккаунт взломан»? Мой аккаунт в Mikrotik или на форуме? Привет!
     
     
     
    krixer
    Guest
    #12
    0
    01.03.2025 02:04:00
    Есть новости? Версия 7 на ROS не работает.
     
     
     
    Страницы: 1
    Читают тему
    +7 495 320-55-52
    info@mikrotik.moscow
    Электрозаводская, Бауманская
    Москва, ул. Бакунинская, 84с21
    Конфиденциальность Оферта
    © 2026 «Mikrotik.Moscow»
    Главная Каталог 0 Корзина 0 Избранные Кабинет 0 Сравнение Акции Контакты Услуги Бренды Отзывы Компания Лицензии Документы Реквизиты Поиск Блог Обзоры