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

    Скрипт в стиле Netwatch

    Форумы: RouterOS, Аппаратное обеспечение, SwOS, Обратная связь, Объявления, Сторонние инструменты
    Поиск  Пользователи  Правила  Войти
    Страницы: 1
    RSS
    Скрипт в стиле Netwatch, RouterOS
     
    gsloop
    Guest
    #1
    0
    14.03.2012 21:24:00
    Я создал довольно обширный скрипт, используя идеи из других скриптов, которые видел. Этот скрипт выполняет несколько задач. Он пингует хост заданное количество раз и меняет метрику указанного маршрута с 1 на 3, если не возвращается нужное количество пингов. [То есть, если из 10 пингов пришло меньше 8, считаем маршрут недоступным.] На мой взгляд, это намного лучше, чем просто черно-белый тест по пингу. [То есть, просто проверять, есть ли хоть один ответ — и считать канал живым.] Также, задавая значение RTT [интервала], можно делать грубую оценку задержки и считать канал недоступным, если из x из y пакетов вернулись с временем больше указанного RTT. [Нельзя определить среднее RTT, но можно задать, например, 300 мс. Если пакет не возвращается быстрее 300 мс — это считается «пропущенным» пингом. Таким образом, если 300 мс — ваш минимально приемлемый RTT, вы узнаете, что либо ответ ICMP пришел позже, либо не пришел вообще.] Скрипт устанавливает основному маршруту метрику 3, когда он недоступен, и возвращает метрику 1, когда «включён» — это позволяет продолжать проверять маршрут, чтобы увидеть, восстановился ли он, не выводя маршрут из работы и не отключая интерфейс. [Это также полезно, если вы, как и я, собираете статистику по внешним интерфейсам с помощью чего-то вроде smokeping — интерфейс продолжит отвечать, даже если официально он «вне строя». Это позволяет проводить тесты, искать проблемы и собирать статистику, даже когда интерфейс считается «включенным».] Запасной маршрут следует задавать с метрикой 2. Скрипт отправляет вам письмо со статусом, когда указанный маршрут пропадает или восстанавливается. Опционально он обновит DynDNS запись с новым IP текущего маршрута по умолчанию. [Это позволяет перенаправлять VPN-туннели и т.п. на основе DNS-записи. (У меня почти готов скрипт для переподключения IPSec туннеля на ROS.)] Код хорошо документирован, я провёл много тестов — должен работать стабильно. Он пишет состояние IP на SD или флеш для сохранения между перезагрузками. [Похоже на мой DynDNS скрипт.] Изменения в DynDNS делаются только если IP сменился [что происходит при потере маршрута]. Запись во флеш происходит только при изменении состояния маршрута (вверх или вниз). Поэтому частые запуски не будут сильнее нагружать флеш, чем редкие. Скрипт создан для ROS 5.12, тестировался на 450G. Должен работать и на других устройствах и, возможно, других версиях ROS, но точной гарантии нет. **Если вы используете этот скрипт, буду признателен за обратную связь. Работает ли? Если нет, какие возникали проблемы? На каком железе запускали? Какая версия ROS? Комментарии, вопросы. Если вы изменяли код, не могли бы прислать изменения обратно, чтобы я мог их интегрировать? И, наконец, хорошая карма не помешает.** 2012-03-21 — обновление до v1.0.0.8 [Если у вас старая версия — пожалуйста, возьмите новую, в старой был критический баг.] 2012-03-26 — обновление до v1.0.2.4 — МНОГО изменений. — Скрипт создаёт нужные файлы для dyndns обновлений, если их нет, чтобы пользователю не пришлось создавать их вручную. — Добавлена документация по созданию правила mangle и изменению скрипта для этого правила — теперь ping трафик продолжит идти по основному соединению, когда оно «пропало», чтобы тестировать «упавшее» соединение, пока оно не поднимется и не изменит метрику. — Добавлена возможность использовать FQDN в качестве цели пинга. — Команды :resolve перенесены в конец скрипта, чтобы ошибки не ломали важные части скрипта. — Много других исправлений и улучшений. Скрипт должен быть очень надёжным. Я провёл много тестов. В коде осталось достаточно :puts для отладки — возможно, позже я их уберу, но старался минимизировать :log вывод, оставляя только полезный. Логи вряд ли изменятся сильно. **** Обновление 2012/04/01 **** v1.0.2.5 Небольшие доработки. Для тех, у кого была предыдущая версия, обновление не нужно. Лучше поддержка новичков в части инициализации файлов. Комментарии в начале кода получились очень длинными — извините, но так нужно для документации. По крайней мере, они не такие короткие, как man-страницы! Пожалуйста, дайте знать, как у вас работает. Добавления, комментарии, изменения в коде приветствуются. Карма не помешает! netwatch-1.0.2.5-pub.txt (22.4 KB)
     
     
     
    gsloop
    Guest
    #2
    0
    02.04.2012 03:19:00
    2012/04/01 Обновление скрипта — исправлены комментарии, чтобы снизить вероятность ошибки. Также изменена предустановка переменной файла. (Всё связано с файлом «lastip.txt». Если файл хранится на флешке RB, не добавляйте перед именем «/» [слэш])
     
     
     
    Nomis
    Guest
    #3
    0
    09.07.2012 09:56:00
    Отлично, обязательно воспользуюсь этим. У меня почти такая же проблема. У меня есть ADSL (широкополосный интернет) и 3G, и они настроены на версии 4.11U с RouterOS 5.6, потому что модем не работает с другими версиями RouterOS. Мне удалось настроить автоматический переход между соединениями, но нужно понять, когда ADSL или 3G работают. Ваш скрипт выглядит так, будто идеально справится с задачей, только я не использую DYNdns и не раздаю DHCP с роутера — этим занимается сервер и файрвол. Можно ли убрать DYNdns и DHCP?  

    ADSL установлен с расстоянием (distance) 1, а 3G — с distance 2, и каждый настроен так:

    DST-ADDRESS        PREF-SRC        GATEWAY            DISTANCE  
    0 A S  0.0.0.0/0                                      ADSL                     1  
    1   S  0.0.0.0/0                                       3G                        2  
    2 ADC  192.1.1.0/24       192.1.1.49           ether1                   0  
    3 A S  192.1.1.49/32                                ether1                  1  
    4 ADC  196.211.142.1/32   196.211.151.105 ADSL                    0  

    Заранее спасибо за ответ! Karma is gifted.
     
     
     
    gsloop
    Guest
    #4
    0
    10.07.2012 18:37:00
    Прочитайте заголовок скрипта/документацию. DynDNS — опционально. DHCP тоже не обязателен — всё будет работать и на статических IP. Попытаюсь вернуться и ответить, когда немного появится времени, но когда именно — не знаю. — Грег
     
     
     
    Nomis
    Guest
    #5
    0
    11.07.2012 14:06:00
    Спасибо за ответ. Я внес все изменения и могу отправлять письмо, когда статус ADSL-маршрута меняется на 3. Но он не меняет статус обратно с 3 на 1, когда ADSL-маршрут снова работает. Я уверен, что ваш скрипт использует два порта, так как упоминаются wan1 и wan2. Напоминаю, у меня на 411 всего один Ethernet-порт, поэтому весь трафик через 3G (PPP) и ADSL (PPPOE) проходит через него и затем передается остальной части локальной сети. Также предполагаю, что нужно настроить расписание для запуска скрипта. Еще раз спасибо за всю вашу помощь.
     
     
     
    gsloop
    Guest
    #6
    0
    17.07.2012 14:57:00
    Продолжение помощи другим, кто использует этот скрипт. Значит, ты управляешь переключением резервного канала через RB, хотя само устройство, подключённое к WAN-каналам, НЕ является RB. [Мне кажется, управлять переключением стоит на самом роутере, реально подключённом к WAN-линкам.] Но, не в этом суть… Проверь логи и запусти скрипт в интерактивном режиме. Он может дать много информации о том, что происходит, и где именно возникают сбои. Если бы мне пришлось гадать, в чём проблема, я бы предположил, что после смены маршрута пинги никак не могут дойти до цели и вернуться обратно по новому маршруту. Поэтому первичный канал никогда не восстановится. [В документации есть заметки по этому поводу: если у вас два интерфейса Ethernet [скажем, A и B], нужно убедиться, что проверка маршрута A идёт по соединению A. Если проверять через интерфейс B, можно получить ситуацию, когда интерфейс A будет считаться доступным, когда он реально не работает, или, наоборот, если доступ до точки назначения отсутствует вообще, интерфейс A никогда не вернётся в рабочее состояние, потому что всегда будет считаться неработающим, даже если на самом деле это не так.] Так что проверь — проходят ли пинги там, где ты ожидаешь, и маршруты выставлены так, как нужно? Возвращаются ли ответы? Посмотри вывод скрипта в интерактивном режиме и логи. Мне кажется, ты увидишь, где именно случается сбой, и тогда сможешь понять, какие изменения внести в конфигурацию, чтобы всё работало лучше… -Грег
     
     
     
    pgarred
    Guest
    #7
    0
    08.01.2013 23:39:00
    Я уверен, что ответ очевиден, но будучи полным новичком, я не могу разобраться с окончательным решением. Как настроить скрипт так, чтобы он запускался по нужде? Скрипт уже отредактирован и готов к применению. Понимаю, что это связано с netwatch, но не уверен, как правильно настроить запуск скрипта. Буду очень признателен за помощь. Патрик
     
     
     
    marting
    Guest
    #8
    0
    22.01.2015 09:51:00
    Кто-нибудь уже использовал этот скрипт на версии 6.x?
     
     
     
    rwebb616
    Guest
    #9
    0
    26.05.2022 16:05:00
    Я пытаюсь использовать это на версии 6.x, но у меня тоже нет очевидного ответа — стоит ли размещать это в netwatch для состояния «вне сети»? Если же поместить в скрипты, тогда, видимо, нужно запускать этот скрипт по расписанию с какой-то регулярностью… каждые 10 секунд? 30 секунд? Иначе его запустишь один раз — и всё, он остановится, да?
     
     
     
    rwebb616
    Guest
    #10
    0
    26.05.2022 16:30:00
    Хорошо, кажется, мне удалось это настроить, но когда основной канал падает, он так и не восстанавливается обратно. Он переключает мой основной канал на metric 3, но когда основной снова доступен, он никогда не возвращается к metric 1. Я сделал так: добавил скрипт в раздел scripts и дал ему имя netwatch-failover, затем использовал планировщик, чтобы запускать его при старте и каждые 60 секунд после этого. Если основной канал упадёт, меньше чем через минуту он включается на резервном, но при восстановлении основного переключение обратно не происходит. Есть идеи? Я настроил правило mangle и проверил, что оно изменяется, могу наблюдать за сменой метрики маршрута, так что понимаю — падение канала фиксируется. Не знаю, как разобраться с тем, что происходит при восстановлении канала. Rich
     
     
     
    rextended
    Guest
    #11
    0
    26.05.2022 20:29:00
    последнее изменение — 25 марта 2012 года, версия 1.0.2.4. Проверено только с ROS 5.12 и на RB450G.
     
     
     
    Страницы: 1
    Читают тему
    +7 495 320-55-52
    info@mikrotik.moscow
    Электрозаводская, Бауманская
    Москва, ул. Бакунинская, 84с21
    Конфиденциальность Оферта
    © 2026 «Mikrotik.Moscow»
    Главная Каталог 0 Корзина 0 Избранные Кабинет 0 Сравнение Акции Контакты Услуги Бренды Отзывы Компания Лицензии Документы Реквизиты Поиск Блог Обзоры