Страница 1 из 1

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

Добавлено: 25 июл 2013, 17:10
wolf_ktl
: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"


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



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

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

Добавлено: 16 янв 2022, 08:43
ppsascha
А почему имена л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 имя задания.

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

Добавлено: 17 янв 2022, 09:29
Sertik
Изящно. Возьмем на заметку.