Выключение интерфейса при отключении определённого МАС адреса

Автоматизация при помощи встроенного скриптового языка и RouterOS API
Аватара пользователя
b1gst0ne
Сообщения: 17
Зарегистрирован: 30 янв 2018, 02:13

Выключение интерфейса при отключении определённого МАС адреса

Сообщение b1gst0ne »

Доброго времени суток.
Есть RouterBOARD 952Ui-5ac2nD, интересует как реализовать включение/отключение интерфейса подключения интернета при подключении/отключении определённого МАС адреса?
т.е. когда я ухожу из дома унося мой телефон, который подключён по WIFI, нужно чтобы интернет на роутере отключался, а когда я возвращался и мой телефон переподключался к сети WIFI интернет снова появлялся на роутере.
Я думал сделать IP для MAC адреса статичным и через Netwatch пинговать его, но думал, что есть более простой и "штатный" способ реализовать задуманное.
Аватара пользователя
Chupaka
Сообщения: 4086
Зарегистрирован: 29 фев 2016, 15:26
Откуда: Минск

Re: Выключение интерфейса при отключении определённого МАС адреса

Сообщение Chupaka »

Доброго.

Скриптов на события WiFi я в RouterOS не вижу, поэтому самый очевидный вариант - статика DHCP и Netwatch.
Аватара пользователя
b1gst0ne
Сообщения: 17
Зарегистрирован: 30 янв 2018, 02:13

Re: Выключение интерфейса при отключении определённого МАС адреса

Сообщение b1gst0ne »

Можно попробовать найти MAC так:
/interface wireless registration-table find mac-address
Но есть проблема в современных телефонах, они в режиме ожидания отключаются от wifi для экономии заряда АКБ.

Для включения интерфейса будет достаточно факта регистрации в сети wifi. Помогите найти или придумать событие/условие для отключения интерфейса, чтобы не пришлось находясь фактически дома, но не пользуясь телефоном некоторое время, ловить обрывы интернета и судорожно тянуться к телефону для пробуждения и регистрации его в сети wifi.
Аватара пользователя
Chupaka
Сообщения: 4086
Зарегистрирован: 29 фев 2016, 15:26
Откуда: Минск

Re: Выключение интерфейса при отключении определённого МАС адреса

Сообщение Chupaka »

Предлагаю использовать DHCP для этого, скрипт lease-script в DHCP-сервере.

Что-то типа

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

if ($leaseActMAC = "МАК-адрес телефона") do={
	if ($leaseBound = 1) do={
		#включаем Интернет
		/interface enable pppoe-out1
	} else={
		#выключаем Интернет
		/interface disable pppoe-out1
	}
}
Лиза будет удаляться лишь по истечении lease-time, а не сразу после отключения от вайфая - и тогда же будет отключаться Интернет.
Аватара пользователя
b1gst0ne
Сообщения: 17
Зарегистрирован: 30 янв 2018, 02:13

Re: Выключение интерфейса при отключении определённого МАС адреса

Сообщение b1gst0ne »

Спасибо за помощь,
Я не силён в синтаксисе скриптов, а как добавить несколько MAC адресов?
Аватара пользователя
Chupaka
Сообщения: 4086
Зарегистрирован: 29 фев 2016, 15:26
Откуда: Минск

Re: Выключение интерфейса при отключении определённого МАС адреса

Сообщение Chupaka »

И выключать, пока хоть один висит в лизах? Это сложнее, тут логика должна быть другая: при истечении лизы проверять, есть ли кто ещё живой...
Аватара пользователя
Chupaka
Сообщения: 4086
Зарегистрирован: 29 фев 2016, 15:26
Откуда: Минск

Re: Выключение интерфейса при отключении определённого МАС адреса

Сообщение Chupaka »

Что-то типа

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

if ($leaseActMAC = "МАК-адрес телефона1" or $leaseActMAC = "МАК-адрес телефона2" or $leaseActMAC = "МАК-адрес телефона3") do={
	if ($leaseBound = 1) do={
		#включаем Интернет
		/interface enable pppoe-out1
	} else={
		#проверяем и выключаем Интернет
		if ([:len [/ip dhcp-server lease find status="bound" mac-address="МАК-адрес телефона1" ]] = 0 and
			[:len [/ip dhcp-server lease find status="bound" mac-address="МАК-адрес телефона2" ]] = 0 and
			[:len [/ip dhcp-server lease find status="bound" mac-address="МАК-адрес телефона3" ]] = 0) do={
			/interface disable pppoe-out1
		}
	}
}
Аватара пользователя
kardash
Сообщения: 302
Зарегистрирован: 27 апр 2017, 22:08
Откуда: Минск

Re: Выключение интерфейса при отключении определённого МАС адреса

Сообщение kardash »

Вопрос с выключением решается просто.... Как включить назад? Отошёл покурить на улицу или в сортир и он выключился..... Включить только ручками? Так и выключить можно тогда ручками.... :-) Надо наверное смену профиля с паролем и заменой SSID делать?
Мой блог по MikroTik: https://netflow.by/blog/tweak-isp/mikrotik 8-)
Аватара пользователя
Chupaka
Сообщения: 4086
Зарегистрирован: 29 фев 2016, 15:26
Откуда: Минск

Re: Выключение интерфейса при отключении определённого МАС адреса

Сообщение Chupaka »

Вернулся, телефон подключился, получил адрес - и вуаля, Интернет опять включился скриптом. В чём проблема-то? :)
HankH
Сообщения: 3
Зарегистрирован: 24 янв 2020, 15:58

Re: Выключение интерфейса при отключении определённого МАС адреса

Сообщение HankH »

Доброго времени суток присутствующим.

С недавнего времени являюсь владельцем роутера от Микротик.
Пока не разобрался с языком программирования. Но очень впечатляет.

Подскажите, где можно почитать об этом языке?

И самое главное - работает ли вышеуказанный скрипт?
Chupaka писал(а): 30 янв 2018, 15:03 Что-то типа

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

if ($leaseActMAC = "МАК-адрес телефона1" or $leaseActMAC = "МАК-адрес телефона2" or $leaseActMAC = "МАК-адрес телефона3") do={
	if ($leaseBound = 1) do={
		#включаем Интернет
		/interface enable pppoe-out1
	} else={
		#проверяем и выключаем Интернет
		if ([:len [/ip dhcp-server lease find status="bound" mac-address="МАК-адрес телефона1" ]] = 0 and
			[:len [/ip dhcp-server lease find status="bound" mac-address="МАК-адрес телефона2" ]] = 0 and
			[:len [/ip dhcp-server lease find status="bound" mac-address="МАК-адрес телефона3" ]] = 0) do={
			/interface disable pppoe-out1
		}
	}
}
Хочется автоматически отключать WI-Fi на роутере (обычно ночью) при отсутствии активности Wi-Fi клиентов (компы + смартфоны). Компы, подключенные по кабелю, пускай работают.
Указанного скрипта достаточно или надо ещё что-то городить или уточнять скрипт? А, может, моё желание вообще невыполнимо?

Спасибо.
Аватара пользователя
Chupaka
Сообщения: 4086
Зарегистрирован: 29 фев 2016, 15:26
Откуда: Минск

Re: Выключение интерфейса при отключении определённого МАС адреса

Сообщение Chupaka »

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

Почитать — в официальном мануале: https://wiki.mikrotik.com/wiki/Manual:Scripting

Вы понимаете, что после отключения вайфая (зачем это вообще?) при отсутствии активности (активность — это подключение к точке доступа или наличие трафика? Во втором случае надо отключить подключенных клиентов?) клиенты эту активность проявить больше не смогут, пока кто-нибудь вайфай не включит?
HankH
Сообщения: 3
Зарегистрирован: 24 янв 2020, 15:58

Re: Выключение интерфейса при отключении определённого МАС адреса

Сообщение HankH »

Идея в том, чтобы убрать излишнее излучение.
Пока писал, пришла в голову мысль: если не отключать Wi-FI совсем, то снизить-то мощность передатчика ведь можно? Это тоже выход. Но потом мощность надо восстановить.
Аватара пользователя
Chupaka
Сообщения: 4086
Зарегистрирован: 29 фев 2016, 15:26
Откуда: Минск

Re: Выключение интерфейса при отключении определённого МАС адреса

Сообщение Chupaka »

Нет активности = нет излучения. А если сделать Hide SSID, то даже периодической трансляции SSID в эфир не должно быть, по идее :)

А что такое "потом"?
HankH
Сообщения: 3
Зарегистрирован: 24 янв 2020, 15:58

Re: Выключение интерфейса при отключении определённого МАС адреса

Сообщение HankH »

Понял. Спс.
По наивности думал, что рабочие пакеты всё время рассылаются на указанной в настройках роутера мощности.

"Потом" - это когда в Wi-Fi сети появляется активность. Т.е. после возврата в сеть смартфона или включения компа со своей Wi-Fi карточкой.

Т.е., в итоге, беспокоиться насчёт излишнего излучения не стоит? Протокол 802.11 оптимален в смысле управления мощностью и лишнего в окружающее пространство не надувает? А мы можем только ограничить максимальную мощность излучения Wi-Fi модуля роутера, так?
Аватара пользователя
Chupaka
Сообщения: 4086
Зарегистрирован: 29 фев 2016, 15:26
Откуда: Минск

Re: Выключение интерфейса при отключении определённого МАС адреса

Сообщение Chupaka »

Нет, беспокоиться насчёт излучения не стоит. Ну, разве что вы носите телефон в специальном чехле, который не даёт его поднести к коже ближе, чем на сантиметр, не кладёте телефон в карман и спите с роутером в обнимку...

Мощность, к слову, ещё и от канальной скорости зависит.

А если сильно занизить мощность передатчика — "потом" может и не наступить, если устройство не сможет подключиться :)