Микротик скрипт при подключении к wifi
В предыдущей статье мы рассмотрели базовую настройку точки доступа. Далее расскажем, как из нашего MikroTik сделать клиента WiFi а также покажем реализацию репитера (моста) в двух вариантах.
Существуют некоторые нюансы использования, рассмотрим их:
- Режим station – не работает если у вас wlan1 находится в бридже с другими интерфейсами. Почему? Есть одно очень важное правило: нельзя бриджевать сеть за клиентом, это один из самых важных принципов 802.11.
- Режим station bridge – работает только если у вас точкой доступа и клиентом выступают Mikrotik устройства. В данном случае у вас будет честный L2, т.к. полноценный линк по воздуху, аналогично если бы вы подключили устройства по ethernet. Данный режим хорош тем, что снимает ограничения с описанного выше правила.
- Режим station pseudobridge – создает NAT на втором уровне, подставится mac точки. В этом режиме вы можете подключиться к AP не Mikrotik и добавить wlan в бридж, при этом у вас все будет работать. Но не удивляйтесь выданным адресам на вашем DHCP сервере, т.к. там будут разные IP адреса с одним mac.
- Режим station pseudobridge clone – не работает. Ранее он занимался тем же самым что и просто pseudobridge, но только NAT был для адреса первого пройденного устройства.
Основная идея состоит в том, чтобы использовать L3. Ведь подумайте, если вы добавляете все интерфейсы в бридж, то кадры приходящие и уходящие через wlan будут обрабатывать ЦП, а это не его задача. Его задача L3, делайте маршрутизируемую сеть.
Демонстрационный стенд представлен следующими устройствами:
- AP на Android;
- Mikrotik hap ac с RouterOS 6.46.6;
- Ноутбук с карточкой 2.4 GHz.
Настройка WiFi клиента
Первым делом создадим bridge1 и добавим в него все интерфейсы кроме wlan1 и wlan2. Настроим DHCP 192.168.10.0/24 сервер на данном мосту. Включим DNS сервер и настроим NAT через wlan1.
Создадим профиль безопасности:
- Зададим название профиля;
- Укажем какие протоколы безопасности использовать;
- Пароль для подключения.
Далее открываем вкладку wireless – connect list – добавить правило.
Данный лист содержит список настроек, который говорит к каким точкам и при каких условиях подключаться – если стоит галочка connect, или не подключаться – если не поставим данную галочку. Интерпретируем скриншот, подключайся к AP с названием MikrotikLab через wlan1 с паролем, указанным в следующем профиле безопасности по протоколу 802.11. Далее открываем список интерфейсов, нас интересует первый и переходим на вкладку general. Не забываем про Advanced Mode.
Выбираем следующие настройки:
- Mode – station;
- Band – 2GHz -G/N;
- Frequency – 2412;
- SSID – можно не трогать;
- Wireless Protocol – 802.11;
- Security Profile – ранее созданный;
- Country – russia3.
Применяем, включаем и смотрим на статус соединения.
Включаем DHCP клиента.
Проверим получение адреса и маршруты.
Все отлично, можно проверять доступность интернет с ноутбука.
Маленькая хитрость. Если вы собираетесь поехать отдохнуть и не хотите платить за каждое устройство использующее wifi гостиницы, то включайте pseudobridge, добавляйте его в общий бридж и наслаждайтесь выходом в интернет через Mikrotik. Конечно же вы не будите подключать ноутбук и телефон по кабелю, мы для этого сделаем отдельную виртуальную AP и соединим ее в тот же бридж – по сути репитер. Не забудьте перевесить DHCP-Client, отключить DHCP-Server и отключить NAT.
Настройка Mikrotik WiFi Repeater
В стандартном пакете прошивки мы можем настроить повторитель. Его настройка достаточно проста. На вкладке wireless выбираем Setup Repeater.
- Интерфейс, на котором слушать эфир;
- Имя точки доступа (регистр имеет значение);
- Пароль;
- MAC адрес – опционально.
Жмем Start и смотрим что происходит.
- Включился wlan1;
- Создался виртуальный интерфейс;
- Профиль безопасности;
- Новый бридж.
Это все конечно замечательно. Но, а что, если мне нужно повторять сеть не с тем же названием, что обычно не удобно, а другую. Допустим ловим MikrotikLab, а раздаем MikrotikLab-Rep01. Если у нас несколько репитеров, то сразу можно понять, кто куда подключен. Отключаем режим для ленивых, вычищаем созданные конфиги и изменим Mode на wlan 1 в Pseudobridge, указав Security Profile и включив Connect List.
Включаем и создаем виртуальную AP. Пароль от сети можно не менять.
Создаем bridge, обязательно отключим на нем STP и добавим оба интерфейса в него.
Теперь мы можем подключаться к SSID MikrotikLab-Rep01. Теперь вы знаете как просто настроить клиента и репитер (мост) на роутерах Микротик.
89 вопросов по настройке MikroTik
Вы хорошо разбираетесь в Микротиках? Или впервые недавно столкнулись с этим оборудованием и не знаете, с какой стороны к нему подступиться? В обоих случаях вы найдете для себя полезную информацию в курсе «Настройка оборудования MikroTik». 162 видеоурока, большая лабораторная работа и 89 вопросов, на каждый из которых вы будете знать ответ. Подробности и доступ к началу курса бесплатно тут.
Статья будет больше интересна специалистам использующим небольшой парк устройств (не использующим отдельный сервер, для системы мониторинга или логирования), домашним пользователям, тем кто в первый раз подступается к написанию скриптов устройства и тем у кого нет времени/желания разбираться.
Пример email с событиями вход/выход пользователей
Написать свой скрипт меня сподвигло желание упростить монструозные скрипты, которые можно найти по этому запросу в интернете, выполняющие это несложное действие (пример скрипта с Wiki MikroTik), а так же показать почему инженеры MikroTik сделали невозможным простой способ парсинга, если вы не житель Лондона. :)
Статья разбирает пример уведомления о входе и выходе пользователя с устройства MikroTik, но так же покажет примеры:
Организация времени в журнале устройства;
Парсинг журнала устройства, поиск событий по критериям;
Отправка уведомлений на электронную почту;
Предыстория. Почему скрипты парсинга логов MikroTik "монструозны"?
Под монструозностью будем понимать большой объем логики скрипта и конструкции вида:
Они показывают умение администратора "оптимизировать" код, но здорово усложняют возможности понимания скриптов другими пользователями.
Но самую огромную роль в усложнение логики этого скрипта внесла сама компания MIkroTik, с интересной логикой журнала на устройстве. :)
Что может быть проще конструкции: "найди все события по времени старше последнего запуска с темой "account", запущенной простым казахстанцем (UTC+06)?
Это даже будет работать, ровно до 23:59:59 текущего дня. А после 12 ночи, скрипт превратится в тыкву А вот после 00:00:00 система начнет вываливать все события предыдущего дня. Почему?
Инженеры MikroTik большие оригиналы решившие сделать хранение записей журнала следующим образом: система хранит в журнале события сегодняшнего дня только с параметром времени, а чтобы не путаться, когда сменяется день, перезаписывает время событий добавляя дату, во все события "вчерашнего" дня. Для пользователя, в журнале событий все события отображаются дата/время, но сама система, событиям текущего дня присваивает только время.
Ну и где здесь оригинальность? А оригинальность в том, что MikroTik считает началом нового дня время 00:00:00 по UTC±0:00. Игнорируя часовой пояс самого устройства, т.е. у меня (UTC+06), до 6 утра, выдавались все уведомления за предыдущий день. В 06:00:00 Микротик перезаписывал всем событиям дату и скрипт снова начинал корректно работать.
Так что если вы не житель Лондона (UTC±0:00), для парсинга журнала устройства по времени вам приходилось использовать костыли, решая логикой скрипта проблему организации времени на устройстве.
Логика скрипта
Помимо параметров время события, текст события, MikroTik использует уникальный параметр id события, который мы будем использовать (.id уникален до перезапуска устройства, потом отчет начинается заново, с 0).
Получаем LenArrayIDs - количество элементов массива, StartArrayID - номер элемента с которого начнем перебор (это как раз ID последнего запуска), и EndArrayID - номер последнего элемента массива минус 1(массив начинается с элемента с индексом 0).
Если в журнале присутствуют необработанные события "account", начинаем перебор ключей в массиве (IDsEventsAccount) по их номерам, начиная с "последнего +1" (чтобы не отправлять вновь предыдущее последнее событие) до "последнего -1" (т.к. индекс начинается с 0);
Создать скрипт
Для запуска скрипта необходимы разрешения: read, write, test, policy.
[System] -> [Scripts] -> [+] -> [Name: ParseLogAccountEvents] -> [Policy: read, write, test, policy]
Код скрипта
Добавление скрипта в Планировщик
Для запуска скрипта необходимы разрешения: read, write, test, policy.
[System] -> [Schedule] -> [+] -> [Name: ParseLogAccountEvents] —> [Interval: 00:05:00] -> [Policy: read, write, policy, test]
Или выполните в терминале:
Заключение
[System] -> [Logging] -> [Rules] -> [+] -> [Topics]
[/log find where message
Мой скрипт выглядит проще, чем что я находил в интернете и доступен к оптимизации, если вы любите оптимизировать код в минимальное количество строк.
Если Вам стали интересны и другие мои скрипты для MikroTik, их можно увидеть - здесь.
Работа скрипта проверена на: hAP ac lite, RouterOS 6.47.8 (stable).
P.S. Это моя первая статья на Хабре, можно судить строго, но справедливо. Статья не даст ничего нового специалистам использующим системы мониторинга или отдельные лог серверы. Но для новичков, домашних пользователей, администраторов с небольшим парком сетевых устройств - надеюсь будет полезна.
UPD 11.12.2020: Выставляйте права на запуск скрипта в Scheduler и на сам скрипт, как указано в статье: read, write, test, policy. Излишние права (выставляются по умолчанию новому скрипту) могут привести к появлению ошибки "could not run script ParseLogAccountEvents: not enough permissions". Проверяйте журнал устройства.
Мой Wi-Fi роутер сказал, что мужчина был дома с моей женой, пока я был на работе
LickingWoundSalt (Reddit)
Но это не единственное применение этой возможности. 🙂
Если выставить время аренды IP адреса (Lease Time) равным 10 часов можно узнать во сколько подключились к сети компьютеры сотрудников или кто не выключает компьютер уходя с рабочего места.
Если использовать простой пароль для WiFi можно обнаружить, что соседский ребенок тоже использует ваш WiFi. 🙂
Скрипт поможет узнать о имеющихся проблемах со стабильностью связи или о сетевых неполадках.
Так же можно на основе этого скрипта выполнить другие полезные действия.
Скрипт: Отправка уведомления о подключении устройства к сети
- имя устройства (имя компьютера или назначенное производителем);
- комментарий (если устройству назначен статический адрес с указанным комментарием)
- имя DHCP интерфейса;
- IP и MAC адрес подключаемого устройства.
🔔 Рекомендую в комментариях к устройствам использовать только символы английского языка!
Скрипт использует вызов функций:
Изменить время аренды IP адреса
Устанавливаем время аренды IP адреса = 10 часов.
Создать скрипт уведомления
Код скрипта
P.S. Если у вас есть интересные или необычные вариант применения скрипта, напишите в комментариях, я добавлю в статью. 🙂
Комментарии 15
Проблему решил. Просто не в тот раздел скриптов размещал )) Спасибо!
Пожалуйста Дмитрий, большое спасибо, что написали отзыв о решении проблемы.
Отличная статья, спасибо. А как можно добавить функцию отслеживания и уведомления при отключении устройства?
Всё решил, причём намного проще чем думал изначально: воспользовался тем, что DHCP-сервер всегда отслеживает не только подключение нового клиента но и отключение подключенного, таким образом скрипт просто дополняется новой веткой:
1. Да, для домашнего варианта будет хорошо.
3. Статьи пишутся, но времени не хватает. Про CAPsMAN планы есть, но очень отдаленные.
В телеграме получаю:
1. Comment это комментарий к устройствам со статическими IP адресами (в таблице [IP] -> [DHCP Server] -> [Leases]), у вас клиент MiNote10Lite-MiNote1 либо имеет динамический IP, либо, если ему назначен статический IP адрес, поле комментарий не заполнено;
2. Спасибо, опечатка, исправлю.
Я думаю многим опытным пользователям ПК, особенно IT-специалистам, хочется контролировать всё и вся. В эту категорию входит и мониторинг домашнего интернета и подключенных к нему устройств, особенно в ваше отсутствие. Многие, кто работают за ПК, часто используют удаленное подключение к домашнему ПК, чтобы заниматься попутно какими либо своими делами. Для этого было бы неплохо точно знать когда и что происходило с интернет-соединением. Если у вас есть Микротик, обязательно закажите внешний IP и тогда вы по-настоящему сможете все держать под контролем. В этой статье речь пойдет о мониторинге доступности подключенного к Микротику ПК с грамотным логированием.
Представляю вашему вниманию скрипт для Микротика на базе RouterOS, который ставится на запуск каждую минуту и выполняет следующий функционал:
- Мониторинг доступности запущенного ПК
- Логирование недоступности ПК, отсутствия линка до ПК
- Скрипт различает недоступность ПК от выключенного ПК и не засоряет логи
В логах MikroTik используется 3 цвета
Давайте рассмотрим скрипт по частям:
Это первая часть кода, здесь объявляются переменные, выполняется пинг локального ip подключенного ПК и проверка линка на нужном порту (тест кабеля). IP вам нужно заменить на IP вашего ПК, а название порта к которому подключен ПК тоже заменить на свое (раздел Interfaces).
Скрипт добавляется в раздел System->Scripts. Для запуска каждую минуту (или другой промежуток времени) его следует добавить в System->Scheduler.
В On Event пишем:
Полный код скрипта:
Вы можете легко изменить скрипт для мониторинга нескольких устройств в вашей локальной сети. Для этого используйте циклы и массивы. Для проверки наличия интернет-соединения вы можете использовать скрипт или часть скрипта, который я опубликую завтра.
На данном этапе подключите маршрутизатор Mikrotik к интернету и произведите первоначальные/базовые настройки (DNS, Wi-Fi, TimeZone и т.д.) с помощью программы Winbox.
Данная инструкция рассчитана на тех, кто знает что такое Mikrotik и имеет базовые познания в его настройке.
Обновление прошивки
Загрузите последнюю прошивку, System > Packages > Check for Updates. В окне нажмите Download&Install. Необходима прошивка не менее версии 6.32, иначе маршрутизатор не сможет работать в режиме хотспота.
Добавление bridge
Добавление портов в bridge
Настройка Wi-Fi
Эта дополнительная настройка доступна для серий Mikrotik AP которые имеют встроенный WiFi интерфейс.
Активируйте WiFi интерфейс
Wireless > Interfaces tab > select wlan1 >
Произведите настройки режима работы, канала. Укажите желаемый SSID
На вкладке HT включите галочки
На вкладке Wireless Security Profiles проверьте:
Name: default
Mode: none
Создание Hotspot
Перейдите в меню IP > Hotspot > Servers Tab, Hotspot Setup и запустите мастер создания hotspot.
Выбираем hotspot интерфейс hs-bridge
Указываем доменное имя
Изменение настроек Hotspot
Изменим имя hotspot сервера, указав значение Serial Number (System > RouterBoard )
Use RADIUS: Checked
Default Domain:
Location ID:
Location Name:
Mac Format: XX:XX:XX:XX:XX:XX
Accounting: Checked
Interim-Update: 00:01:00
Nas Port Type: 19 (wireless-802.11)
Читайте также: