Скрипт изменяющий IP в L2TP клиенте на основе dyndns

Здесь выкладываем скрипты
Правила форума
Уважаемые Пользователи форума, обратите внимание!
Ни при каких обстоятельствах, Администрация форума, не несёт ответственности за какой-либо, прямой или косвенный, ущерб причиненный в результате использования материалов, взятых на этом Сайте или на любом другом сайте, на который имеется гиперссылка с данного Сайта. Возникновение неисправностей, потерю программ или данных в Ваших устройствах, даже если Администрация будет явно поставлена в известность о возможности такого ущерба.
Просим Вас быть предельно осторожными и внимательными, в использовании материалов раздела. Учитывать не только Ваши пожелания, но и границы возможностей вашего оборудования.
Ответить
wolf_ktl
Сообщения: 417
Зарегистрирован: 25 июн 2013, 18:12

:log info "********open**************";
/ip dns cache flush
:local currentip [:resolve office.no-ip.org];
:log info "IP VPN Server $currentip";
:local tempip [/interface l2tp-client get [/interface l2tp-client find name="l2tp-office"] connect-to];
:log info "Connect To $tempip";

:if ($currentip != $tempip) do={
:log info "Menyaem IP adress server VPN"
:log info "office.no-ip.org $currentip"
/int l2tp-client set l2tp-ykdav connect-to=$currentip
}
:log info "*********close*************";


взято от суда http://pcrouter.ru/ipb/index.php?showtopic=315

Этот скрипт делает следующее:
1. резольвит IP удаленного офиса, к которому нужно подключиться
2. находит текущий IP удаленного офиса у себя
3. если эти адреса не совпадают, то изменяет IP адрес в VPN соединении на реально существующий
4. Скрипт работает как с dyndns.org так и с no-ip.org или подобными сервисами

P.S. Чем полезен скрипт ? Тем что его можно запустит на запуск хоть через каждую минуту. И не будет переключения как в примере http://wiki.mikrotik.com/wiki/VPN_%28an ... _addresses со скриптом SetL2TP

:global newr1 [:resolve hostname.changeip.org]
/int l2tp-client set l2tp-BL connect-to=$newr1
:log info "SetL2TPscript:Changing IP"


Который рвет и заново устанавливает соединение.



Извините много инфы пишется в логи но потом будет удобнее читать скрипт и смотреть на чем он остановился.


ppsascha
Сообщения: 24
Зарегистрирован: 15 фев 2021, 08:23

А почему имена л2тп-клиентов разные (да, я тот ещё некропостер)?

Короче говоря, поправил имена и причесал скрипт, чтобы в лог писал только если меняется адрес сервера.

/ip dns cache flush
:local currentip [:resolve ваше_дднс_имя];
:local tempip [/interface l2tp-client get [/interface l2tp-client find name="ваш_л2тп_клиент"] connect-to];

:if ($currentip != $tempip) do={
:log warning "VPN server IP changed to $currentip"
/int l2tp-client set ваш_л2тп_клиент connect-to=$currentip
}

Запихал в шедулер, проверил, работает. И все это ради того, чтобы принципиально не платить ростелекому 200 рублей за статику (да, это очень, очень дорого).

Upd.: оптимизировал. Незачем чистить кэш и резолвить адрес каждую минуту. Скрипт пихаешь в шедулер, в ппп-профиле на даун выполняешь /system scheduler enable имя задания, на ап, соответственно, /system scheduler disable имя задания.


Sertik
Сообщения: 1598
Зарегистрирован: 15 сен 2017, 09:03

Изящно. Возьмем на заметку.


фрагменты скриптов, готовые работы, статьи, полезные приемы, ссылки
viewtopic.php?f=14&t=13947
Ответить