Доброе время суток Уважаемые!
Вкратце суть такая, имеется подключенный к RB951 USB LTE модем(свисток). Иногда LTE интерфейс "падат", по разному бывает, но периодичность примерно 3-5 часов. Получить статус LTE интерфейса в переменную "простыми" действиями пока не возможно.
Более подробно
из темы posting.php?mode=quote&f=3&p=84680
Продолжение:
2-й вариант, как я и предполагал, не оправдался в полной мере, т.к. LTE интерфейс запросто мог "упасть" и между интервалами пинга в 3 часа, и соответственно я переключился на поиск решения по 1-му варианту, хотя и были предварительные поиски :)
И таки нашёл, потому сразу оговорюсь, что по сути решение не моё, но мне очень понравилось, я решил им воспользоваться, чуть "перекроив" под свою задачу :)
https://temofeev.ru/info/articles/mikro ... -mikrotik/
Именно в этой статье автора, есть ошибка в скрипте, потом она была исправлена
вот что из этого вышло:
:global ParseLogAccountEndArrayID;
:local IDsEventsAccount [/log find where message ~ "lte1 link up"];
:local LenArrayIDs [:len $IDsEventsAccount];
:local StartArrayID [:find $IDsEventsAccount $ParseLogAccountEndArrayID];
:local EndArrayID ($IDsEventsAccount -> ($LenArrayIDs-1));
:if ($EndArrayID != $ParseLogAccountEndArrayID and [:tobool $ParseLogAccountEndArrayID] ) do={
:local StartArray [:find $IDsEventsAccount $ParseLogAccountLastRunID];
:for KeyArray from=($StartArrayID+1) to=($LenArrayIDs-1) do={
:local IDMessage ($IDsEventsAccount ->$KeyArray );
# здесь Вы можете вставить то действие, которое Вам нужно в случае LTE UP, например у #меня это однократный пинг к api.telegram и затем сообщение в телегу о том, что LTE Up
}}
:set ParseLogAccountEndArrayID $EndArrayID;
Прекрасно работает уже несколько суток, интервал выполнения скрипты=1 мин.
Нужен статус USB LTE ? Парсим лог
Правила форума
Как правильно оформить вопрос.
Прежде чем начать настройку роутера, представьте, как это работает. Попробуйте почитать статьи об устройстве интернет-сетей. Убедитесь, что всё, что Вы задумали выполнимо вообще и на данном оборудовании в частности.
Не нужно изначально строить Наполеоновских планов. Попробуйте настроить простейшую конфигурацию, а усложнения добавлять в случае успеха постепенно.
Пожалуйста, не игнорируйте правила русского языка. Отсутствие знаков препинания и неграмотность автора топика для многих гуру достаточный повод проигнорировать топик вообще.
1. Назовите технологию подключения (динамический DHCP, L2TP, PPTP или что-то иное)
2. Изучите темку "Действия до настройки роутера".
viewtopic.php?f=15&t=2083
3. Настройте согласно выбранного Вами мануала
4. Дочитайте мануал до конца и без пропусков, в 70% случаев люди просто не до конца читают статью и пропускают важные моменты.
5. Если не получается, в Winbox открываем терминал и вбиваем там /export hide-sensitive. Результат в топик под кат, интимные подробности типа личных IP изменить на другие, пароль забить звездочками.
6. Нарисуйте Вашу сеть, рисунок (схему) сюда. На словах может быть одно, в действительности другое.
Как правильно оформить вопрос.
Прежде чем начать настройку роутера, представьте, как это работает. Попробуйте почитать статьи об устройстве интернет-сетей. Убедитесь, что всё, что Вы задумали выполнимо вообще и на данном оборудовании в частности.
Не нужно изначально строить Наполеоновских планов. Попробуйте настроить простейшую конфигурацию, а усложнения добавлять в случае успеха постепенно.
Пожалуйста, не игнорируйте правила русского языка. Отсутствие знаков препинания и неграмотность автора топика для многих гуру достаточный повод проигнорировать топик вообще.
1. Назовите технологию подключения (динамический DHCP, L2TP, PPTP или что-то иное)
2. Изучите темку "Действия до настройки роутера".
viewtopic.php?f=15&t=2083
3. Настройте согласно выбранного Вами мануала
4. Дочитайте мануал до конца и без пропусков, в 70% случаев люди просто не до конца читают статью и пропускают важные моменты.
5. Если не получается, в Winbox открываем терминал и вбиваем там /export hide-sensitive. Результат в топик под кат, интимные подробности типа личных IP изменить на другие, пароль забить звездочками.
6. Нарисуйте Вашу сеть, рисунок (схему) сюда. На словах может быть одно, в действительности другое.
-
- Сообщения: 201
- Зарегистрирован: 01 апр 2021, 08:19
-
- Сообщения: 1995
- Зарегистрирован: 09 июл 2014, 12:33
Пробовали пользоваться Netwatch?
Очень удобно.
По вашей задаче - выбираете какой нибудь хост в интернете, например гугловский днс (8.8.8.8), и в таблице маршрутизации добавляете правило, что этот хост доступен через интерфейс LTE. Если доступов в интернет много, в фаерволе добавьте правило, запрещающе выход ICMP пакетов на этот IP со всех интерфесов, кроме LTE. В результате пинг этого IP будет показывать статус интерфейса.
И настраиваете на него нетвач.
В разделах UP и Down пишите команды, которые вам нужны, в случае если хост доступен (LTE работает) или не доступен (LTE упал). Например выключение/включение интерфейса LTE.
Очень удобно.
По вашей задаче - выбираете какой нибудь хост в интернете, например гугловский днс (8.8.8.8), и в таблице маршрутизации добавляете правило, что этот хост доступен через интерфейс LTE. Если доступов в интернет много, в фаерволе добавьте правило, запрещающе выход ICMP пакетов на этот IP со всех интерфесов, кроме LTE. В результате пинг этого IP будет показывать статус интерфейса.
И настраиваете на него нетвач.
В разделах UP и Down пишите команды, которые вам нужны, в случае если хост доступен (LTE работает) или не доступен (LTE упал). Например выключение/включение интерфейса LTE.
-
- Сообщения: 201
- Зарегистрирован: 01 апр 2021, 08:19
Пробовал и использую, но для других целей, например пингую оборудование и при отсутствии пинга, сообщение в телегу. Только пингую не с LTE интерфейса, а с бриджа в проводной интернет. Сообщение в телегу, исключительно с LTE, статический маршрут прописан.
Вы приводите вариант, от которого я ушёл, т.е. пинг с нужного(LTE)интерфейса, но здесь вот в чём проблема: частый пинг-наматывается траффик, редкий пинг- непонятен статус LTE интерфейса в момент между пингами, а именно в этот момент может быть необходимость выполнить скрипт командой из телеги в отсутствии бриджа.
В моём варианте, LTE проверятеся пингом именно тогда, когда он упал, через секунду поднялся, делается пинг с нужного интерфейса, далее сообщение в телегу. Скрипт выполняется Шедулером.
Как таковой, интернет с LTE интерфейса мне не нужен, хотя и доступен. Интерфейс используется только как контрольный, т.е. не резервный канал интернета, а именно для передачи уведомлений и при необходимости, управления скриптами командами из телеги. Оборудование канала находится внутри помещения, а потому много более вандалоустойчивее.
-
- Сообщения: 1995
- Зарегистрирован: 09 июл 2014, 12:33
Пингуйте роутер вашего оператора в его внутренней сети (в IP сети, которая непосредственно на модем назначена) - этот трафик не тарифицируется, он в интернет не выходит.
Что у вас за тариф такой, что вы пингов опасаетесь?
Проблем нет, если у вас интерфейс упал-поднялся. Проблемы, если ROS считает, что интерфейс в апе, а пакеты не идут.
Что у вас за тариф такой, что вы пингов опасаетесь?
Проблем нет, если у вас интерфейс упал-поднялся. Проблемы, если ROS считает, что интерфейс в апе, а пакеты не идут.
-
- Сообщения: 201
- Зарегистрирован: 01 апр 2021, 08:19
Пинг роутера оператора не гарантирует того, что мне доступен api.telegram
250 руб. за 10Г трафика без временного ограничения до исчерпания трафика.Не то что опасаюсь, но забивать частыми пингами к api не хочу, да и неправильно это.А про редкие пинги в его сторону,уже говорил,интерфейс может упасть и подняться в любой момент, равно как в любой момент мне нужен "живой" LTE интерфейс.Что у вас за тариф такой, что вы пингов опасаетесь?
именно в этом и проблема, интерфейс падает на секунду и поднимается, но при поднятом интерфейсе, пакеты идут только на передачу (видно по трафику интерфейса), при этом модем "моргает индикатором",что "не в сети".Стоит пингануть api.telegram (по статическому маршруту), первый пинг длинный, но модем регится в сети, появляются пакеты и на приём,дальше без проблем до очередного Down/Up интерфейса.Проблем нет, если у вас интерфейс упал-поднялся. Проблемы, если ROS считает, что интерфейс в апе, а пакеты не идут.
Я уже ранее говорил, интерфейс практически "пустой" в смысле трафика, возможно просто оператор выкидывает "таких клиентов" :) в зависимости от нагрузки....ночью происходит заметно реже, чем днём...
потому, таким скриптом "оживляю" интерфейс по мере необходимости, парсится лог на предмет LTE Up, затем пинг и сообщение в телегу(сообщение потом заремарю, т.к. в общем всё работает как нужно, а ночью мне пиликающий телефон не особо по душе). Пусть пиликает, если реально что-то нужно делать или в более необходимых ситуация....например упал WiFi мост или что-то такое...
загляните пожалуйста в тему viewtopic.php?f=15&t=13654 , может что подскажите :)
"окирпичить" камеру как-то не хочется :)
-
- Сообщения: 1995
- Зарегистрирован: 09 июл 2014, 12:33
Если роутер оператора пингуется, а телеграмм не доступен - вы ничего не исправите, при всем желании. Но этим бесплатным пингом вы оживите свой модем, если оператор у него ресурсы отобрал.
Не съедите вы пингами 10G никогда. При однократном пинге раз в 10 сек за месяц вы пошлете 30*24*60*60/10= 259200 пакетов. Чтобы съесть 10G они должны быть по 10*1024*1024*1024/259200 = 41425 Байт. Максимальный размер пакета ~1500 Байт. А посылают пакеты в пинге по 32 -64 байта. На 3 порядка меньше, чем "рассчитанный размер" для съедания 10G. Вы 10G (250 руб) съедите однократными пингами раз в 10 сек за 1000 месяцев.REX писал(а): ↑13 апр 2022, 20:53250 руб. за 10Г трафика без временного ограничения до исчерпания трафика.Не то что опасаюсь, но забивать частыми пингами к api не хочу, да и неправильно это. А про редкие пинги в его сторону,уже говорил,интерфейс может упасть и подняться в любой момент, равно как в любой момент мне нужен "живой" LTE интерфейс.
Вы написали, что у вас этот канал пустой.
-
- Сообщения: 201
- Зарегистрирован: 01 апр 2021, 08:19
Вот именно и тогда логичней пинговать сразу необходимый ресурс, тем более,что можно "прикрутить" необходимые действия, если LTE UP, а пинга к необходимому ресурсу нет. В моём скрипте сейчас этого действительно нет.Например перегрузить модем по питанию для начала...и кстати, модем подключен наверно уже пару недель непрерывно, как ранее говорил, через инжектор питания USB, и ни разу питание снимать не приходилось. Сейчас это возможно только вручную, т.к. запчасти для коммутации внешнего питания инжектора от питания USB роутера только пришли.Если роутер оператора пингуется, а телеграмм не доступен - вы ничего не исправите, при всем желании. Но этим бесплатным пингом вы оживите свой модем, если оператор у него ресурсы отобрал.
Я также написал, что и считаю неправильным долбить частыми пингами необходимый ресурс на постоянной основе. Зачем устраивать ресурсу такую "маленькую DDos-атаку" с моей стороны, учитывая, что мне этим ресурсом в любой момент может быть нужно воспользоваться :) Канал сейчас пустой, в дальнейшем он будет НЕ пустой и как минимум, трафик с него будет заметным в эпизодах, например удалённый просмотр видео периодический. А будет трафик, то возможно и скрипт не сработает, т.к. интерфейс от "бездеятельности" не упадёт и все остальные действия, прописанные в скрипте выполняться не будут.Не съедите вы пингами 10G никогда.....
Вы написали, что у вас этот канал пустой.
-
- Сообщения: 1995
- Зарегистрирован: 09 июл 2014, 12:33
Нет, не логичней.REX писал(а): ↑14 апр 2022, 08:28Вот именно и тогда логичней пинговать сразу необходимый ресурс, тем более,что можно "прикрутить" необходимые действия, если LTE UP, а пинга к необходимому ресурсу нет.Если роутер оператора пингуется, а телеграмм не доступен - вы ничего не исправите, при всем желании. Но этим бесплатным пингом вы оживите свой модем, если оператор у него ресурсы отобрал.
...
Я также написал, что и считаю неправильным долбить частыми пингами необходимый ресурс на постоянной основе.
Вы можете поправить проблемы, которые возникают только между вашим модемом и базовой станцией оператора.
Проблемы, которые появились где-то дальше в интернете вы поправить манипуляциями со своим модемом не можете.
И чтобы не делать этих манипуляций из-за того, что телеграмм заблокирован, например, пинговать нужно именно то устройство, отсутствие ответа от которого укажет на проблему, решение которой подвластно вашим манипуляциям.
Пингуя ближайший к вам роутер оператора в его внутренней сети вы решите обе проблемы. И не "задолбите" пингами необходимый ресурс, и не получите ложных срабатываний. И плюс во внутренней сети оператора траффик обычно не тарифицируется.
Это про логику исключительно. Так то пингуйте что не хотите пинговать.
-
- Сообщения: 201
- Зарегистрирован: 01 апр 2021, 08:19
Позволю не согласитьсяНет, не логичней.

Я могу поправить проблемы только частично, как то например исчерпанный баланс трафика, оплатив его, но для этого нужно будет "допиливать" скрипт", для начала сделав USB Power Reset хотя-бы и если всё это не помогло, уже сообщение в телегу по "живому" интерфейсу(бридж). Пингуя оператора, я об этом не узнаю, т.к. LTE будет Up, модем в сети, но достучаться до нужного хоста я не смогу. Кроме того, проблемы могут быть у оператора, и зная, что с балансом у меня всё хорошо, USB Power Reset сделал, но пинга на нужный хост нет, а модем в сети, выяснять вопрос с оператором вручную.Вы можете поправить проблемы, которые возникают только между вашим модемом и базовой станцией оператора.
Проблемы, которые появились где-то дальше в интернете вы поправить манипуляциями со своим модемом не можете.
Я соглашусь с тем, что конечно алгоритм скрипта не охватывает всех возможных вариантов в этом виде, возможно в будущем я займусь этим, где можно будет предусмотреть и ветку варианта по условию пинга оператора и другие условия.
Я Вас понял, спасибо за внимание и потраченное Вами время на общение, однако я остаюсь при своём мнении.
-
- Сообщения: 1657
- Зарегистрирован: 15 сен 2017, 09:03
Скрипт с первого взгляда не рабочий. Где должна стоять фигурная скобка закрывающая условие ?
Пришлось вставлять. Вот сюда:
Код: Выделить всё
:global ParseLogAccountEndArrayID;
:local IDsEventsAccount [/log find where message ~ "lte1 link up"];
:local LenArrayIDs [:len $IDsEventsAccount];
:local StartArrayID [:find $IDsEventsAccount $ParseLogAccountEndArrayID];
:local EndArrayID ($IDsEventsAccount -> ($LenArrayIDs-1));
:if ($EndArrayID != $ParseLogAccountEndArrayID and [:tobool $ParseLogAccountEndArrayID] ) do={
:local StartArray [:find $IDsEventsAccount $ParseLogAccountLastRunID];
:for KeyArray from=($StartArrayID+1) to=($LenArrayIDs-1) do={
:local IDMessage ($IDsEventsAccount ->$KeyArray );
# здесь Вы можете вставить то действие, которое Вам нужно в случае LTE UP, например у #меня это однократный пинг к api.telegram и затем сообщение в телегу о том, что LTE Up
}
:set ParseLogAccountEndArrayID $EndArrayID;
Код: Выделить всё
:global ParseLogAccountEndArrayID;
:local IDsEventsAccount [/log find where message ~ "lte1 link up"];
:local LenArrayIDs [:len $IDsEventsAccount];
:local StartArrayID [:find $IDsEventsAccount $ParseLogAccountEndArrayID];
:local EndArrayID ($IDsEventsAccount -> ($LenArrayIDs-1));
:if ($EndArrayID != $ParseLogAccountEndArrayID and [:tobool $ParseLogAccountEndArrayID] ) do={
:local StartArray [:find $IDsEventsAccount $ParseLogAccountLastRunID];
:for KeyArray from=($StartArrayID+1) to=($LenArrayIDs-1) do={
:local IDMessage ($IDsEventsAccount ->$KeyArray );
# здесь Вы можете вставить то действие, которое Вам нужно в случае LTE UP, например у #меня это однократный пинг к api.telegram и затем сообщение в телегу о том, что LTE Up
}}
:set ParseLogAccountEndArrayID $EndArrayID;
фрагменты скриптов, готовые работы, статьи, полезные приемы, ссылки
viewtopic.php?f=14&t=13947
viewtopic.php?f=14&t=13947