On-start скрипт выбора WI-FI, прошу помощи.

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

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

Добрый день.
Имеется два микротика МТ1 (951G-HnD) и МТ2 (941-2nD)
К МТ1 подключен интернет от провайдера по WAN, на нем же поднимается wifi точка доступа и фаервол. В бридж объединены WLAN и оставшиеся LAN порты.
МТ2 настроен как клиент wifi сетки первого микрота и раздает сеть по LAN. По сути "радиоудлинитель".
В зоне действия обоих МТ есть некое WIFI устройство, которое при включении сканирует эфир на предмет наличия прописанной в нем wwifi сетки и подключается к ней как клиент. Если прописанная сеть нндоступна, то устройство поднимает собственную точку доступа с примитивным веб-сервером.
Проблема в том, что после отключения электричества (бывает довольно часто) это устройство успевает загрузиться быстрее микротиков и, соответственно, не видя сетки для подключения, успевает поднять свою сеть. Поэтому приходится в ручном режиме подключаться к его АР, заходить на вебморду и давать команду на перезагрузку.
Возникла мысль как-то автоматизировать этот процесс.
Видится два варианта
А) после загрузки микротов нужно подключиться к АР устройства, послать команду скажем через fetch на перезагрузку и потом уже поднимать свою собственную АР.
Б) Во время работы системы по какому-то расписанию проверять наличие доступной wifi быстрого устройства, если она есть, то подключаться, кидать команду на перезагрузку и обратно поднимать свою сетку.
Подскажите пожалуйста как можно реализовать один из этих вариантов.


vqd
Модератор
Сообщения: 3605
Зарегистрирован: 26 сен 2013, 14:20
Откуда: НСК
Контактная информация:

А зачем сто то писать? не ну правда. Возьмите да поставьте источник. По своему опыту могу сказать что источник на 24В и с 7А батарейками спокойно держит пяток устройств в течении 11 - 12 часов и при этом цена вопроса в пределах 5000 - 5500р.


Есть интересная задача и бюджет? http://mikrotik.site
Yaroslav.Cherkunov
Сообщения: 9
Зарегистрирован: 09 окт 2019, 00:03

vqd писал(а): 21 окт 2019, 05:32 А зачем сто то писать? не ну правда. Возьмите да поставьте источник. По своему опыту могу сказать что источник на 24В и с 7А батарейками спокойно держит пяток устройств в течении 11 - 12 часов и при этом цена вопроса в пределах 5000 - 5500р.
Простите, а при чем тут 24В?
Я бы понял и принял ваш совет в случае какой-то избыточной сложности скриптового решения, однако это же не так.
Ну и вопросом на вопрос: а зачем тратить 5000р и присовокуплять какое-то дополнительное устройство, которое к тому же на 100% вопрос не решит?


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

Видится несколько вопросов:
* С какого праздника вы решили, что fetch предназначен для перезагрузки удалённых устройств? Я конечно могу ошибаться, но дайте мне хоть один пример, когда через fetch дают команду на перезагрузку. Я просто хочу знать этот вариант. Мне реально интересно...
* Почему настолько тайной является марка "некого устройства"?
* Предлагаю изменить подход и заставить заниматься мониторингом "некое устройство" Пусть смотрит за сетью и в случае совпадения определённых признаков принимает тот или иной вариант работы. Так намного проще, как мне кажется.


Мануалы изучил и нигде не ошибся? Фаервол отключил? Очереди погасил? Витая пара проверена? ... Тогда Netinstal'ом железку прошей и настрой ее заново. Что, все равно не фурычит? Тогда к нам. Если не подскажем, хоть посочувствуем...
Ca6ko
Сообщения: 1484
Зарегистрирован: 23 ноя 2018, 11:08
Откуда: Харкiв

Неким устройством может быть, например SD wifi карта памяти, или другие устройства с аналогичным принципом действия.
Которая если в течение определенного времени не смогла подключится клиентом к прописанной сети, поднимает свою сеть чтобы была возможность к ней подключится.
Самый простой, по моему, способ запитать устройство с помощью USB порта 951. Который можно дергать командой.


1-е Правило WiFi - Везде где только можно откажитесь от WiFi!
2-е Правило WiFi -Устройство, которое пользователь не носит с собой постоянно, должно подключаться кабелем!!

Микротики есть разные: черные, белые, красные. Но все равно хочется над чем нибудь заморочится.
Yaroslav.Cherkunov
Сообщения: 9
Зарегистрирован: 09 окт 2019, 00:03

podarok66 писал(а): 07 ноя 2019, 19:24 Видится несколько вопросов:
* С какого праздника вы решили, что fetch предназначен для перезагрузки удалённых устройств? Я конечно могу ошибаться, но дайте мне хоть один пример, когда через fetch дают команду на перезагрузку. Я просто хочу знать этот вариант. Мне реально интересно...
Так как на устройстве поднят вебсервер и в этом вебсервере присутствует кнопачка "Перезагрузить", а по нажатию на кнопачку браузер делает не что иное как отправку GET запроса, который обрабатывается устройством, то извольте команду терминала микротика, по которой устройство совершенно без проблем перезагружается:

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

/tool fetch url="http://192.168.4.1/restart\?device=ok"
Такой вот незамысловатый праздник. Имейте в виду, что данная команда вам скорее всего не подойдет для перезагрузки утюга или иного известного устройства.
podarok66 писал(а): 07 ноя 2019, 19:24 * Почему настолько тайной является марка "некого устройства"?
Совершенно не тайна. Устройство не серийное, изготовлено в единственном экземпляре на базе ESP8266.
В постановке вопроса данная информация являлась избыточной. На решение она не влияет.
podarok66 писал(а): 07 ноя 2019, 19:24 * Предлагаю изменить подход и заставить заниматься мониторингом "некое устройство" Пусть смотрит за сетью и в случае совпадения определённых признаков принимает тот или иной вариант работы. Так намного проще, как мне кажется.
Спасибо за предложение, но оно не подходит в силу ряда обстоятельств:
а) трудозатраты на перепрошивку устройства выше, чем в скриптовом варианте
б) устройство уже смотрит за сетью и в случае совпадения определенных признаков принимает тот или иной вариант работы.
После загрузки происходят попытки коннекта к сети, если попытки исчерпаны и коннект не случился, то оно поднимает свою точку для возможности хоть как-то к нему подключиться.


Yaroslav.Cherkunov
Сообщения: 9
Зарегистрирован: 09 окт 2019, 00:03

Ca6ko писал(а): 07 ноя 2019, 20:08 Неким устройством может быть, например SD wifi карта памяти, или другие устройства с аналогичным принципом действия.
Которая если в течение определенного времени не смогла подключится клиентом к прописанной сети, поднимает свою сеть чтобы была возможность к ней подключится.
Совершенно верно, алгоритм работы устройства именно такой.
Ca6ko писал(а): 07 ноя 2019, 20:08 Самый простой, по моему, способ запитать устройство с помощью USB порта 951. Который можно дергать командой.
а) Устройство физически расположено далеко от 951.
б) USB порт 951 занят свистком модема резервного интернета.


Sertik
Сообщения: 1598
Зарегистрирован: 15 сен 2017, 09:03

Если после того, как Ваше суперустройство подняло свою wifi-сеть, оно всё равно подключается как клиент к wifi позже загружающегося Микротика, то я проблем не вижу решить Ваш вопрос.
А вот если оно загрузившись раньше и подняв свою wifi-сеть уже не может быть клиентом Микротика (т.к. wifi-контроллер устройства уже используется) то как простите Микротик даст ему команду /fetch на перезагрузку ?

Не проще поставить на питание загадочного устройства таймер задержки на включение секунд на 10, чтобы Микротик успел загрузиться раньше него ?


фрагменты скриптов, готовые работы, статьи, полезные приемы, ссылки
viewtopic.php?f=14&t=13947
Yaroslav.Cherkunov
Сообщения: 9
Зарегистрирован: 09 окт 2019, 00:03

Sertik писал(а): 08 ноя 2019, 21:33 Если после того, как Ваше суперустройство подняло свою wifi-сеть, оно всё равно подключается как клиент к wifi позже загружающегося Микротика
Нет, у суперустройства один радиомодуль и оно не может одновременно быть и точкой доступа, и клиентом.
Sertik писал(а): 08 ноя 2019, 21:33 А вот если оно загрузившись раньше и подняв свою wifi-сеть уже не может быть клиентом Микротика (т.к. wifi-контроллер устройства уже используется) то как простите Микротик даст ему команду /fetch на перезагрузку ?
В обобщенном виде (без привязки к таймингам и дополнительным условиям типа расписаний и тд) видится например так:
После подачи питания и загрузки один из микротиков:
1. Подключается как клиент к точке доступа поднятой на суперустройстве
2. Будучи в одной подсети с суперустройством шлет команду на перезагрузку через fetch
3. Отключается
4. Поднимает свою домашнюю сеть (если пп 1,2,3 выполнялись на "головном" 951м микротике) или подключается к домашней сети (если пп 1,2,3 выполнялись на "ведомом" 941м микротике)

Собственно этот алгоритм был озвучен в первом посте.
Sertik писал(а): 08 ноя 2019, 21:33 Не проще поставить на питание загадочного устройства таймер задержки на включение секунд на 10, чтобы Микротик успел загрузиться раньше него ?
Посоветуете конкретную модель такого таймера?
Блок питания на 24В уже советовали. За 5000 :-) :-)


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

Спасибо за разъяснение, стало немного понятнее. Вот смотрите конструкцию. У вас для получения адреса от "некого устройства" должен быть включен DHCP-client. Он подвязан к какому-то интерфейсу, скорее всего wlan1. После рестарта Микротика через пару минут должен стартовать скрипт с такой вот логикой. Начинку можно написать какую душа просит. Нам логику понять сначала:

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

{:if ([/ip address get [find interface=wlan1] address ] ~ "10.202.*") do={:put "Yes!"} else={:put "No!"}}
Скрипт положительно реагирует на любой адрес, полученный в диапазоне 10.202.0.0/16 При обнаружении адреса будут инициированы команды, которые вы дадите вместо секции :put "Yes!"
Я верно понял ваши вопросы?


Мануалы изучил и нигде не ошибся? Фаервол отключил? Очереди погасил? Витая пара проверена? ... Тогда Netinstal'ом железку прошей и настрой ее заново. Что, все равно не фурычит? Тогда к нам. Если не подскажем, хоть посочувствуем...
Ответить