Управление маршрутизатором Mikrotik через веб-приложение

Мне нужна помощь в создании проекта. Позвольте мне сначала описать мой проект -

Я хочу создать веб-приложение (используя php/php framework (laravel), html, css, javaScript, bootstrarp), которое поможет владельцу интернет-провайдера управлять своим маршрутизатором (большинство из них используют маршрутизатор Mikrotik).

Причина создания этого приложения:

Большинство интернет-провайдеров здесь используют маршрутизатор Mikrotik для управления своим интернет-бизнесом. Но управление маршрутизатором с помощью Winbox (программное обеспечение Windows для настольных компьютеров, созданное для управления маршрутизатором Mikrotik) кажется им сложным. Просто для создания нового IP-адреса для назначения нового пользователя, блокировки пользователя, если он / она не оплачивает счета, и управления пропускной способностью, им необходимо запускать winbox каждый раз, когда им трудно. Мой подход заключается в создании веб-приложения, которое облегчит их работу.

Функции, которые я хочу предоставить:

  1. Создание нового IP-адреса и адресация его пользователю (интернет-пользователю/конечному пользователю)
  2. Управление пропускной способностью IP-адреса
  3. Автоматически блокировать / блокировать любой конкретный IP-адрес (в данном случае любого конкретного пользователя), который не оплатил свой ежемесячный счет в определенное число месяца.
  4. Повторное включение заблокированного IP-адреса при автоматической оплате взносов
  5. Отображение ежедневного графика полученной и использованной пропускной способности

  6. Запись истории клиента (IP-адрес клиента, ежемесячная арендная плата, имя, адрес и т. д.)

  7. Запись истории платежей клиента
  8. Автоматический расчет счета/должного расчета
  9. Автоматическая сортировка пользователей по месяцам

Я могу сделать 6-9 функций, как описано, но я понятия не имею, как реализовать 1-5 функций!

Проблема, с которой я столкнулся:

а. Я не знаю, как подключиться к роутеру MikrotiK через веб-приложение b. Если каким-то образом я могу получить доступ к маршрутизатору MikrotiK, используя IP-адрес маршрутизатора, я не знаю, как создать новый IP-адрес в базе данных этого маршрутизатора c. как управлять пропускной способностью через веб-приложение d. как заблокировать / заблокировать IP-адрес!

Баллы, которые я получаю:

Я думаю, что с помощью vlan управления (IP-адрес маршрутизатора) я могу получить доступ к командной строке этого маршрутизатора с помощью ssh / telnet. После этого какой будет команда для создания, блокировки/блокировки, управления пропускной способностью IP-адреса? ЕСЛИ все это можно сделать с помощью командной строки, как я могу сделать это для своего веб-приложения?

Может ли кто-нибудь помочь мне с этим, ссылаясь на любую ссылку ?? Я гуглил, но нашел только руководство по управлению маршрутизатором Mikrotik!


person Erfan Ahmed    schedule 22.12.2015    source источник
comment
Ваш вопрос слишком широк для Stack Overflow и, боюсь, для любого другого сайта в сети SE. Просить у нас ссылку (ресурс вне сайта) тоже не по теме. Вы можете попробовать в чате или другом форуме, таком как Quora, которые лучше подходят для таких тем.   -  person rene    schedule 22.12.2015
comment
У вас есть опыт работы с WinBox? Если нет, то это хорошее место для начала. Если вы сможете понять, как выполнять нужные вам функции в WinBox, большинство окон и диалогов в WinBox преобразуются непосредственно в консольные команды. Команды консоли/CLI доступны через SSH, как вы предложили, и, в принципе, ваше веб-приложение может генерировать эти команды и анализировать ответы. Прямо в WinBox есть ссылка Manual, которая приведет вас к онлайн-документации.   -  person Fred Schleifer    schedule 22.12.2015
comment
Используйте RouterOS API, так как он самый быстрый. У меня есть клиент, который автоматически входит в Mikrotik и выполняет всевозможные действия с Raspberry Pi. Я просто подключаю его к любой сети с помощью маршрутизатора микротик, и он работает. Я также использовал ssh и telnet, но они оба слишком медленные, поэтому я использую их только в случае необходимости, но это автоматизировано, поэтому я просто сижу и жду, пока он завершится. SSH самый медленный. Проблемы со скоростью могут быть связаны со сценарием, но я смог использовать API, и он мне понравился. Взгляните на cacti или zabbix с потоком трафика в RouterOS для данных о пропускной способности.   -  person Steve Hernandez    schedule 30.01.2016
comment
Хороший и подробный вопрос, который мне тоже нужен   -  person Faridul Khan    schedule 08.05.2018
comment
@FaridulKhan Я только что обновил ссылку на твиттер в своем профиле. Если вам интересна эта тема, мы можем обсудить.   -  person Erfan Ahmed    schedule 08.05.2018


Ответы (3)


Я сделал часть того, о чем вы просите клиента, несколько недель назад. Ваш вопрос слишком широкий, очень обширный, на выполнение этой работы уйдут месяцы.

Начните свой проект с основ, которые можно найти по адресу http://wiki.mikrotik.com/wiki/API_PHP_class, то вы сможете расширять свое приложение и публиковать конкретные вопросы о своих проблемах в таких местах, как stackoverflow или reddit.

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

$API = new RouterosAPI();
$API->debug = true; // turn debug on to learn more about your api
if ($API->connect($server , $username , $passwd, $port)) {

    // wireless registration table
    $API->write('/interface/wireless/registration-table/print',false);
    $API->write('=stats=');
    // print output here

} else {

    // connection fails
}
$API->disconnect();

Ссылка:

person devasia2112    schedule 05.05.2016

Вы должны либо использовать API, либо протоколы удаленных команд, такие как ssh/telnet(PHP-SSH2).
Это проект PHP API, который вы можете использовать: https://github.com/BenMenking/routeros-api
После подключения вы можете совершать команды так же, как вы делаете это в консоли микротика.

Вики-команды Mikrotik

person Arash    schedule 12.03.2016

На мой взгляд вам лучше использовать сервер Radius с базой данных на MySQL. Mikrotik отлично работает с Radius. В приложении реализован интерфейс с базой данных и все взаимодействие с микротиком возлагается на Radius. Прочтите, например, о FreeRadius:

https://www.howtoforge.com/authentication-authorization-and-accounting-with-freeradius-and-mysql-backend-and-webbased-management-with-daloradius

person Igor Gindich    schedule 25.03.2016