NetWatch

Раздел для тех, кто начинает знакомиться с MikroTik
Правила форума
Как правильно оформить вопрос.
Прежде чем начать настройку роутера, представьте, как это работает. Попробуйте почитать статьи об устройстве интернет-сетей. Убедитесь, что всё, что Вы задумали выполнимо вообще и на данном оборудовании в частности.
Не нужно изначально строить Наполеоновских планов. Попробуйте настроить простейшую конфигурацию, а усложнения добавлять в случае успеха постепенно.
Пожалуйста, не игнорируйте правила русского языка. Отсутствие знаков препинания и неграмотность автора топика для многих гуру достаточный повод проигнорировать топик вообще.

1. Назовите технологию подключения (динамический DHCP, L2TP, PPTP или что-то иное)
2. Изучите темку "Действия до настройки роутера".
viewtopic.php?f=15&t=2083
3. Настройте согласно выбранного Вами мануала
4. Дочитайте мануал до конца и без пропусков, в 70% случаев люди просто не до конца читают статью и пропускают важные моменты.
5. Если не получается, в Winbox открываем терминал и вбиваем там /export hide-sensitive. Результат в топик под кат, интимные подробности типа личных IP изменить на другие, пароль забить звездочками.
6. Нарисуйте Вашу сеть, рисунок (схему) сюда. На словах может быть одно, в действительности другое.
Аватара пользователя
overdriven
Сообщения: 4
Зарегистрирован: 13 окт 2016, 13:16
Откуда: Калининград

Приветствую!

Существует ли способ отложить запуск NetWatch на какое-то время? Пока ppp интерфесы не поднялись, интернета нет, NetWatch откровенно пакастит..
Пытался его в расписании на disabled поменять, так он все равно скрипт перезапуска модема запустить успевает...

Ну или, к примеру, в down скрипте как-то описать, что если uptime < 1 минуты, то остановить выполнение скрипта...


Аватара пользователя
podarok66
Модератор
Сообщения: 4355
Зарегистрирован: 11 фев 2012, 18:49
Откуда: МО

В самом начале скрипта Up первая команда :delay 30 даст паузу 30 секунд. Должно хватить...
Ну или например шедулер сделать такого типа:

Код: Выделить всё

/system scheduler 
add name=netwatch on-event="/tool netwatch set [find comment="delayed_start"] disabled=yes;\r\
    \n:delay 60;\r\
    \ntool netwatch set [find comment=1] disabled=no;" start-time=startup

А вашему правилу в нетватч добавить comment="delayed_start". Теперь при старте правило будет деактивироваться и опять стартовать через минуту...
Выбирайте :-)


Мануалы изучил и нигде не ошибся? Фаервол отключил? Очереди погасил? Витая пара проверена? ... Тогда Netinstal'ом железку прошей и настрой ее заново. Что, все равно не фурычит? Тогда к нам. Если не подскажем, хоть посочувствуем...
Аватара пользователя
overdriven
Сообщения: 4
Зарегистрирован: 13 окт 2016, 13:16
Откуда: Калининград

Пробовал через планировщик первым делом останавливать NetWatch. Для проверки в "Down" нетвотча добавил команду:
:log warning message="NetWatch: Ping failed"
Так вот, он успевает написать "Ping failed" в лог... :sh_ok:


KARaS'b
Сообщения: 1199
Зарегистрирован: 29 сен 2011, 09:16

Как-то так, только лучше собрать это в скрипт, а уже нетвочем его запускать, а то не уверен что "local" отработает правильно.

Код: Выделить всё

:local Uptime [/system resource get uptime];
:if ($Uptime>00:01:00) do={перезапуск модема}


Аватара пользователя
podarok66
Модератор
Сообщения: 4355
Зарегистрирован: 11 фев 2012, 18:49
Откуда: МО

overdriven писал(а):Пробовал через планировщик первым делом останавливать NetWatch. Для проверки в "Down" нетвотча добавил команду:
:log warning message="NetWatch: Ping failed"
Так вот, он успевает написать "Ping failed" в лог... :sh_ok:

Ну а если написать?

Код: Выделить всё

:delay 30;
:log warning message="NetWatch: Ping failed"

Дайте ему паузу. Он же по определению должен стартовать и работать даже в условиях полного зависа. Следовательно и стартует он сам по себе, а не когда все загрузится


Мануалы изучил и нигде не ошибся? Фаервол отключил? Очереди погасил? Витая пара проверена? ... Тогда Netinstal'ом железку прошей и настрой ее заново. Что, все равно не фурычит? Тогда к нам. Если не подскажем, хоть посочувствуем...
Аватара пользователя
overdriven
Сообщения: 4
Зарегистрирован: 13 окт 2016, 13:16
Откуда: Калининград

podarok66 писал(а):
overdriven писал(а):Пробовал через планировщик первым делом останавливать NetWatch. Для проверки в "Down" нетвотча добавил команду:
:log warning message="NetWatch: Ping failed"
Так вот, он успевает написать "Ping failed" в лог... :sh_ok:

Ну а если написать?

Код: Выделить всё

:delay 30;
:log warning message="NetWatch: Ping failed"

Дайте ему паузу. Он же по определению должен стартовать и работать даже в условиях полного зависа. Следовательно и стартует он сам по себе, а не когда все загрузится


И вот, мы подошли к самому интересному. Я так и делал. Пауза, а затем скрипт перезагрузки 3Г модема. После того, как снова разрешаешь NetWatch, он продолжает выполнять начатый скрипт и перезагружает модем. Эдакий терминатор, который во что бы то не стало должен выполнить свою миссию... :-):

А можно ли написать условие, если uptime < 2 минут прервать выполнение скрипта?


Аватара пользователя
podarok66
Модератор
Сообщения: 4355
Зарегистрирован: 11 фев 2012, 18:49
Откуда: МО

Ну вы смотрите. Насколько я понимаю, вы хотите завязать отработку какого-то скрипта, связанного с 3Г-модемом, вернее его функционированием. Но я же писал, что Нетватч стартует независимо от системных установок. Главное, чтобы он был активирован. А модем стартует после полного старта системы. А если отказаться от Нетватч, а использовать связку Шедулер-Скрипт? В шедулере есть вариант запуска startup, это когда после старта системы отрабатывает этот шедулер.


Мануалы изучил и нигде не ошибся? Фаервол отключил? Очереди погасил? Витая пара проверена? ... Тогда Netinstal'ом железку прошей и настрой ее заново. Что, все равно не фурычит? Тогда к нам. Если не подскажем, хоть посочувствуем...
Аватара пользователя
overdriven
Сообщения: 4
Зарегистрирован: 13 окт 2016, 13:16
Откуда: Калининград

podarok66 писал(а):Ну вы смотрите. Насколько я понимаю, вы хотите завязать отработку какого-то скрипта, связанного с 3Г-модемом, вернее его функционированием. Но я же писал, что Нетватч стартует независимо от системных установок. Главное, чтобы он был активирован. А модем стартует после полного старта системы. А если отказаться от Нетватч, а использовать связку Шедулер-Скрипт? В шедулере есть вариант запуска startup, это когда после старта системы отрабатывает этот шедулер.


Поясню свою задумку.
Есть 3Г модем. Ему нужно время на инициализацию, чтобы определить сеть зарегистрироваться там и т.д. Пока он это не сделал, интерфес PPP-OUT поднимать смысла нет. А как, по моим наблюдениям, даже вредит. Поэтому сделано следущее:
1. При запуске микротика отключаем ppp-out интерфейс
2. Для полной уверенности, перезагружаем модем отключением питания на 3-5 секунд (было замечено, что если перезапустить микротик без отключения
питания, интерфес не поднимался)
3. Ждем 30 секунд
4. Включаем ppp-out

При таком раскладе, соединение проходит на ура. т.е. с первого раза.

Затем появилась необходимость, чтобы микротик контролировал соединение. Так как были замечены случаи отсутствия связи.
Вот тут, все и началось. Во первых, срипт запланированный на старт, запускался одновременно со скриптом от NetWatch (так как сразу при старте NetWatch видит отсутствие пинга) и эти оба питались перезагружать модем. В результате выполнение скрипта останавливалось.
Также стало ясно, что единажды пропущенный пинг еще не означает, что модем необходимо перезагружать. Тут по хорошему, еще пару других адресов пингануть с паузами секунд по 5-10. Если нет пинга, тогда уже перегружать. Но такой скрипт я еще не написал, так как новичок я. Если кто дочитал до этого места и может помочь с этим скриптом, был бы признателен.


KARaS'b
Сообщения: 1199
Зарегистрирован: 29 сен 2011, 09:16

Прям готовое решение.

Код: Выделить всё

:local PingCount 3;
:local One 8.8.8.8;
:local Too 8.8.4.4;
:local ResultOne [/ping count=$PingCount $One interface=ether1];
:local ResultToo [/ping count=$PingCount $Too interface=ether1];
:local Uptime [/system resource get uptime];
:if ($ResultOne=0 && $ResultToo=0 && $Uptime>00:05:00) do={/system shutdown}


Аватара пользователя
overdriven
Сообщения: 4
Зарегистрирован: 13 окт 2016, 13:16
Откуда: Калининград

KARaS'b писал(а):Прям готовое решение.

Код: Выделить всё

:local PingCount 3;
:local One 8.8.8.8;
:local Too 8.8.4.4;
:local ResultOne [/ping count=$PingCount $One interface=ether1];
:local ResultToo [/ping count=$PingCount $Too interface=ether1];
:local Uptime [/system resource get uptime];
:if ($ResultOne=0 && $ResultToo=0 && $Uptime>00:05:00) do={/system shutdown}


Теперь ты мой лучший друг... :-) :-) :-) :bra_vo: :ya_hoo_oo: :ya_hoo_oo: :ya_hoo_oo:

P.S. Сидел над скриптом, уже получил время из ресурсов... Думаю, как его сравнивать... Аказыца все гениальное просто!!!


Ответить