Страница 1 из 1
Обновление IP адреса WAN
Добавлено: 13 мар 2015, 18:51
freedompwnz
Добрый вечер,уважаемые форумчане,имеется маленький вопросик,стоит в квартире Микротик 951,работает как часы,но маленький дискомфортик присутстсует... собственно подключен к провайдеру у которого l2tp подключение,когда положительный баланс присваивается IP 172.17.*.*,когда отрицательный 10.27.*.*.Собственно в чем проблема,когда пополняю счет ip сам не меняется приходиться роутер перезагружать чтоб ему присвоился IP 172.17.*.* ибо при попытке подключения к l2tp когда IP WAN 10.27.*.* роутер говорит как и компьютер ошибка 691 бла бла бла,не помню какая она именно в роутере,на Винде она именно такая(неверный логин или пароль) что можно придумать чтобы он сам IP WAN порта периодически обновлял если нет доступа к интернету.
Re: Обновление IP адреса WAN
Добавлено: 14 мар 2015, 06:48
vqd
Написать скрипт который через некоторые промежутки времени выполняет нужные вам действия
http://wiki.mikrotik.com/wiki/Manual:Scripting
Re: Обновление IP адреса WAN
Добавлено: 16 мар 2015, 11:34
freedompwnz
Несовсем разбираюсь в этом...можете пример привести хоть приблизительный...ща пока Watchdog включил,через каждые 5 мин ребутит роутер если доступ в инет пропадает...
Re: Обновление IP адреса WAN
Добавлено: 16 мар 2015, 17:22
podarok66
Да вроде бы несложная задача, можно было бы и самому разобраться. У меня примерно так выходит в первом приближении:
Код: Выделить всё
{
# Вводим переменную со значением "истинно"
:local good true;
# Задаем интерфейс для мониторинга
:local int "ether1";
# Определяем адрес, полученный на этом интерфейсе
:local address [/ip address get [find interface="$int" disabled=no] address];
# Учитывая, что нам не нужна полная форма адреса с маской, приводим полученный адрес к короткой форме
:local longIP [:len $address];
:local shortIP [:put ($longIP - 3)];
# Преобразуем строковый параметр (получаемый после всех наших действий с переменной) в IP-адрес
:local newIP [:toip [:pick $address 0 $shortIP]];
# Задаем условие, если полученный адрес не входит в нужный диапазон адресов, то....
:if ($good!=($newIP in 172.17.0.0/16)) do={
/interface disable $int;
delay 3;
/interface enable $int}
}
Интерфейс заменить на нужный, должно отключать его. После дисконекта на интерфейс должен выдаваться новый адрес. Вот про зависшие конекты не знаю, надо экспериментировать. Мне неохота, если честно. Пробуйте, если будут траблы, будем править скрипт.
А! Да! Код в скрипт. Скрипт запускать из шедулера раз в ... ( Вам виднее, насколько часто)
P.S.:
* Есть более короткий способ получения нужного адреса, я его всё время забываю.
vqd точно его знает, он мне как-то уже показывал. Второй раз мне уж и спрашивать стыдно
* Комментарии можно и нужно удалить перед загрузкой скрипта, писались для понимания процесса.