ASP 24

Продажа оборудования
        для интернет-провайдеров

Войти

Перезвоните мне


  
Обязательное поле не может быть пустымНеверный номер телефонаНомер должен содержать от 10 до 13 цифр
*
Неверный адрес e-mail
  

Даже не знаю, обращаюсь впервые
Иван Добында
Максим Боднарюк
Эльвина Османова
Андрей Геряк
Сообщение содержит запрещенне ссылки

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

Наш продавец-консультант перезвонит
Вам в ближайшее рабочее время.

График работы магазина:
Пн - Пт с 10:00 до 18:00.

Приносим наши извинения, если Вы уже пытались нам позвонить и не дозвонились. Теперь мы перезвоним Вам сами.


Перезвоните мне Отменить
Обработка заказа звонка...
Ваш заказ обратного звонка принят!
Наш продавец-консультант свяжется с Вами в течении рабочего дня.

Если уже больше 18 часов или сегодня выходные, ожидайте нашего звонка в ближайший рабочий день.

Спасибо, что обратились именно к нам!

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

Попробовать снова Отменить
+38 (050) 22–57–770
+38 (050) 22–58–880
+38 (050) 43–42–444
+38 (098) 89–66–219

Перезвоните мне

 
Оплата Доставка Сервис Контакты

Напишем скрипт для переключения маршрутов в Mikrotik Routerboard

Купили Mikrotik RouterBoard 750, Mikrotik RouterBoard 750G (лучше конечно RB751-2n или RB751U и RB751G).

 

 Скрипт для переключения маршрутов в Mikrotik

Рис.1. Схема сети.

 

Организовали соседей, подключили к Mikrotik Routerboard два канала Интернет, поделили соседей между каналами. Все работает и все довольны.

Через некоторое время началось: то "канал перегружен", то "пинги больные", "переключите меня на другой канал"... Чтобы каждый раз не бегать и не переключать, можно написать скрипт. Тогда пользователь будет самостоятельно его запускать и переключать себя на другой канал.

Распределение между каналами организованно таким образом, что ip-адреса, занесенные в Address List с именем pppoe-out1, следует направлять через первый канал, а IP-адреса, которые относятся к Address List с названием pppoe-out2, нужно выводить в Интернет через второй канал. Для того, чтобы пользователь переключился на другой канал, ему необходимо переместить свой IP-адрес в соответствующий Address List.

 

 Mikrotik Routerboard, Address List

Рис.2. Mikrotik Routerboard, Address List.

 

Для того, чтобы это реализовать, нам понадобится два файла:

  1. Обычный текстовый файл с произвольным названием, например, rout.txt. В этом файле будет хранится название Address List, к которому в данный момент относится IP-адрес пользователя.

  2. Второй файл - это сам скрипт, который будет перебрасывать ip-адрес пользователя между Address List.

 

Скрипт такой:


from paramiko import SSHClient
from paramiko import AutoAddPolicy
import socket


ip_user = socket.gethostbyname(socket.gethostname())

f = open('rout.txt', 'r')
readed = f.readline()
f.close()

f = open('rout.txt', 'w')
if readed == 'pppoe-out1':
f.write('pppoe-out2')
readed = 'pppoe-out2'
f.close()
else:
f.write('pppoe-out1')
readed = 'pppoe-out1'
f.close()

ssh = SSHClient()
ssh.set_missing_host_key_policy(AutoAddPolicy())
ssh.connect('192.168.4.253', port=22, username='user1', password='1q2w3e')
rcmd = "/ip firewall address-list remove [find address=%s]" % (ip_user)
acmd = "/ip firewall address-list add address=%s list=%s" % (ip_user,readed)
ssh.exec_command(rcmd)
ssh.exec_command(acmd)
ssh.close()

 

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


Подключаем нужные модули:
from paramiko import SSHClient
from paramiko import AutoAddPolicy
import socket


ip_user = socket.gethostbyname(socket.gethostname()) – определяем IP-адрес пользователя;
f = open('rout.txt', 'r') – открываем файл для чтения;
readed = f.readline()
– заносим содержимое файла в переменную readed;
f = open('rout.txt', 'w') – открываем файл для записи.


if readed == 'pppoe-out1':
f.write('pppoe-out2')
readed = 'pppoe-out2'
f.close()
else:
f.write('pppoe-out1')
readed = 'pppoe-out1'
f.close()


Выполняем проверку, к какому Address List в данный момент принадлежит iP-адрес пользователя, и меняем его на противоположный. 

ssh = SSHClient()
ssh.set_missing_host_key_policy(AutoAddPolicy())
ssh.connect('192.168.4.253', port=22, username='user1', password='1q2w3e')
rcmd = "/ip firewall address-list remove [find address=%s]" % (ip_user)
acmd = "/ip firewall address-list add address=%s list=%s" % (ip_user,readed)
ssh.exec_command(rcmd)
ssh.exec_command(acmd)
ssh.close()


Изменяем значения в Mikrotik Routerboard.

 

Mikrotik Routerboard Address List. Запуск скрипта

Рис.3. Mikrotik Routerboard Address List. Запуск скрипта.

 

Mikrotik Routerboard Address List. Результат выполнения скрипта

Рис.4. Mikrotik Routerboard Address List. Результат выполнения скрипта.

 

После выполнения скрипта IP-адрес был перемещен в другой Address List. Осталось сделать из скрипта exe-файл и раздать соседям.

 


 

Пошаговая видеоинструкция по написанию скрипта для переключения маршрутов в Mikrotik Routerboard:

 

 

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

Отправить страницу на e-mail

Обязательное поле не может быть пустымНеверный адрес e-mail
*
Обязательное поле не может быть пустым
*

*
Обязательное поле не может быть пустым
Неверный адрес e-mail
  

Отправить Отменить
Отправка e-mail
E-mail успешно отправлен.

Продолжить покупки
Не удалось отправить e-mail

Попробовать снова Отменить


Хотите поделиться своими фотографиями или статьями? Отправляйте их на hertyweb@asp24.com.ua. Мы обязательно разместим их у нас на сайте!

Комментарии


Нет комментариев
 


Добавить новый комментарий

*
*

Введите символы с картинки.

  Redraw

Символы: 

© 2007-2012 ASP 24.

 

Загрузка...

Total Duration: 0.200521945953
0.1202 (0.1202)