» » Mikrotik. Управление через SMS при помощи WEB сервера

 

Mikrotik. Управление через SMS при помощи WEB сервера

Автор: admin от 15-04-2019, 11:35, посмотрело: 21

Доброго всем дня!



На этот раз решил описать ситуацию, которая вроде бы и не особо описана в интернете, хотя некоторые намеки на нее есть, но большая часть досталась просто долгим методичным копанием кода и вики самого Mikrotik.



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



Имеется:




  • Второстепенный маршрутизатор CRS317-1G-16S+

  • Точка доступа Mikrotik NETMETAL 5

  • LTE модем R11e-LTE



  • Начнем с того что чудесная точка доступа Netmetal 5 имеет на борту распаянный разъем для сим карты и порт для установки LTE модема. Потому для этой точки был куплен по сути лучший модем из того, что было доступно и поддерживалось операционной системой самой точки, а именно R11e-LTE. Точка была разобрана, все установлено на свои места (хотя надо знать, что сим карта расположена под модемом и без снятия основной платы ее не возможно достать), потому проверьте сим карту на работоспособность, иначе придется несколько раз разбирать точку доступа.



    Далее просверлили пару отверстий в корпусе, установили 2 пигтейла и концы закрепили на модеме. К сожалению фото процесса не сохранилось. С другой стороны на пигтейлы закрепили универсальные антенны с магнитным основанием.



    Основные этапы настройки описаны в интернете достаточно хорошо, кроме мелких косяков взаимодействия. Например модем перестает принимать сообщения SMS, когда из поступает 5 штук и они висят в Inbox, очистка сообщений, перезапуск модема не всегда решают проблему. Но в версии 6.44.1 прием работает более стабильно. В Inbox отображается 4 последние sms, остальные автоматически стираются и жизни не мешают.



    Основная цель эксперимента тушить и поднимать интерфейсы на двух маршрутизаторах в одной физической сети. Основная сложность заключалась в том, что Mikrotik не поддерживает управление через SNMP, а позволяет только считывать значения. Потому пришлось копать в другую сторону, а именно Mikrotik API.



    Четкой документации о том, как управлять нет, потому пришлось экспериментировать и для будущих попыток сделана эта инструкция.



    Для управления несколькими устройствами потребуется доступный и рабочий WEB сервер в локальной сети, на него возлагается необходимость управления по командам Mikrotik.



    1. На Netmetal 5 нужно сделать пару скриптов для включения и выключения соответственно



    system script
    add dont-require-permissions=no name=disableiface owner=admin policy=
        ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=
        "/tool fetch http://WEB_SERVER_IP/di.php "
    add dont-require-permissions=no name=enableiface owner=admin policy=
        ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=
        "/tool fetch http://WEB_SERVER_IP/en.php "
    


    2. Создать 2 скрипта на веб сервере (конечно на системе в данном случае должен быть установлен php):



    <?php
    # file en.php enable interfaces    
    require('/usr/lib/zabbix/alertscripts/routeros_api.class.php');
    
        $API = new RouterosAPI();
        $APIdebug=true;
    
    if ($APIconnect('IP управляемого Mikrotik', 'логин администратора', 'пароль администратора')) {
        $APIcomm("/interface/ethernet/enable", array(
        "numbers"=>"sfp-sfpplus16",));
    }
       $APIdisconnect();
    ?>
    


    <?php
    #file di.php disable interfaces
        require('/usr/lib/zabbix/alertscripts/routeros_api.class.php');
    
        $API = new RouterosAPI();
        $APIdebug=true;
    
    if ($APIconnect('IP управляемого Mikrotik', 'логин администратор', 'пароль администратора')) {
        $APIcomm("/interface/ethernet/disable", array(
        "numbers"=>"sfp-sfpplus16",));
    }
       $APIdisconnect();
    ?>
    


    3. Скачать с форума Mikrotik routeros_api.class.php и расположить его в доступном каталоге на сервере.



    вместо sfp-sfpplus16 нужно указать имя отключаемого/включаемого интерфейса.



    Теперь при отправке сообщения на номер в виде



    :cmd СЕКРЕТНЫЙКОД script enableiface
    или
    :cmd СЕКРЕТНЫЙКОД script disableiface 
    


    NETMETAL будет запускать соответствующий скрипт, а тот в свою очередь выполнение команды на WEB сервере.



    Скорость выполнения операций при получении смс доли секунды. Работает стабильно.



    Помимо этого есть функционал отправки СМС на телефоны системой мониторинга Zabbix и открытие резервного выхода в интернет при падении оптики. Пожалуй это выходи за рамки этой статьи, но скажу сразу, при отправке смс их длина должна укладываться в стандартный размер одного сообщения, т.к. Mikrotik не делит их на части, а при поступлении длинного сообщения просто его не отправляет, кроме того нужно фильтровать знаки передаваемые в сообщения, в противном случае СМС не отправится.

    Источник: Хабр / Интересные публикации

    Категория: Программирование

    Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
    Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

    Добавление комментария

    Имя:*
    E-Mail:
    Комментарий:
    Полужирный Наклонный текст Подчеркнутый текст Зачеркнутый текст | Выравнивание по левому краю По центру Выравнивание по правому краю | Вставка смайликов Выбор цвета | Скрытый текст Вставка цитаты Преобразовать выбранный текст из транслитерации в кириллицу Вставка спойлера
    Введите два слова, показанных на изображении: *