Меню
Контакты
107023, Москва, пл. Журавлёва, 10с3, подъезд 31, офис 309
Пн-Пт: с 9-00 до 17-00   Сб-вс: выходной
Интернет-магазин
сетевого оборудования
Москва +7 (495) 103-41-03 +7 (915) 420-28-94
107023, Москва, пл. Журавлёва, 10с3, подъезд 31, офис 309
Пн-Пт: с 9-00 до 17-00   Сб-вс: выходной
Заказать звонок

Добавляем пользователей в Mikrotik Routerboard с помощью Perl скрипта

 11 Фев 2011    MikroTik, Scripts

При помощи скриптов на Perl можно взаимодействовать с устройствами Mikrotik RouteBoard RB493AH, Mikrotik RouterBoard 1100, Mikrotik RouterBoard 750 и другими. В этой статье мы будем добавлять пользователей. Perl скрипт будет взаимодействовать с Mikrotik Router OS по SSH протоколу, поэтому нужно установить perl модуль.

 Mikrotik Routerboard Perl скрипт

Рис.1. Установка модуля PERL.

 

Команда whereis p5-Net-SSH-Perl отобразит путь, где в портах находится данный модуль.

Переходим в нужную директорию cd /usr/ports/net/p5-Net-SSH-Perl

Запускаем установку: make install clean.

 

 Mikrotik Routerboard Perl скрипт

Рис.2. Создаем скрипт.

 

Командой nano mikrotik.pl – открываем файл, в котором будем писать наш скрипт.

Скрипт на Perl для добавления пользователей в Mikrotik Routerboard выглядит так:

 

 

#!/usr/bin/perl -w

use Net::SSH::Perl;

 

my $host = '192.168.4.246';

my $user = 'asp';

my $pass = 'asp';

my $ssh = Net::SSH::Perl->new($host, protocol => '2,1', debug => 1);

$ssh->login($user, $pass);

 

my $username = 'user';

my $userpassword = 'user';

my $userip = '172.16.3.2';

 

$ssh->cmd("/ppp secret add name=$username password=$userpassword service=any profile=default local=172.16.1.1 remote=$userip");

 

my $k = 'k';

my $speed = '1024';

 

$ssh->cmd("/queue simple add name=$username target-address=$userip max-limit=$speed$k/$speed$k");

 

 

Разберем скрипт по частям:

 

use Net::SSH::Perl; - подключаем Perl модуль, который будет работать с ssh протоколом.

my $host = '192.168.4.246'; - создаем переменную host, которой будет присвоен ip-адрес устройства Mikrotik.

my $user = 'asp'; - создаем переменную user и заносим имя администратора, которому разрешено подключаться по ssh протоколу к Mikrotik.

my $pass = 'asp'; - пароль администратора Mikrotik.

my $ssh = Net::SSH::Perl->new($host, protocol => '2,1', debug => 1);

$ssh->login($user, $pass); - выполняем подключение к Mikrotik.

 

my $username = 'user'; - создаем переменную username, в которой будет храниться имя создаваемого пользователя; 

my $userpassword = 'user'; - создаем переменную userpassword, в которой будет храниться пароль создаваемого пользователя; 

my $userip = '172.16.3.2'; - создаем переменную userip, в которой будет храниться IP адрес, нового пользователя.

 

$ssh->cmd("/ppp secret add name=$username password=$userpassword service=any profile=default local=172.16.1.1 remote=$userip"); - команда для создания нового пользователя на Mikrotik Routerboard, в которую будут подставлены переменные.

 

my $k = 'k'; - создаем переменную k. Она будет отображать единицы измерения.

my $speed = '1024'; - создаем переменную speed. В неё заносим значение скорости работы для нового пользователя.

$ssh->cmd("/queue simple add name=$username target-address=$userip max-limit=$speed$k/$speed$k"); - команда выполняемая на Mikrotik Routerboard, которая создаёт правило шейпера для нового пользователя.

Mikrotik Routerboard Perl скрипт

 Рис.3. Запуск скрипта.

Для запуска скрипта наберем в консоли: perl.mikrotik.pl

 

 Mikrotik Routerboard Perl скрипт

Рис.4. Работа скрипта.

 

Работа скрипта будет отображена на экране:

 

  Mikrotik Routerboard Perl  скрипт

Рис.5. Результат выполнения скрипта.

 

Перейдем в Mikrotik RouteBoard RB493AH, для того чтобы убедиться, что скрипт выполнил все действия.

 

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

Евгений Рудченко специально для ASP24.