26
Янв

Скрипт динамического обновления ip в политиках IPsec Mikrotik

Допустим мы настроили шифрованный L2TP тунель с IPsec к VDS, но ip нашего провайдера может изменится, тогда политики IPsec станут не рабочими. Предлагаю использовать следующий скрипт.
Где:
pass — это комментарий нашей политики
ISP2 — наш интерфейс с интернет соединением


Освоить MikroTik вы можете с помощью онлайн-курса «Настройка оборудования MikroTik». В курсе изучаются все темы из официальной программы MTCNA. Автор – официальный тренер MikroTik. Материал подходит и тем, кто уже давно работает с оборудованием MikroTik, и тем, кто еще не держал его в руках. В состав входят 162 видеоурока, 45 лабораторных работ, вопросы для самопроверки и конспект.


:global ipsecold [ /ip ipsec policy get [find comment="pass"] sa-src-address]
 :global ipsecoldsa [ /ip ipsec policy get [find comment="pass"] src-address]
 :global ipsec [ /ip address get [find interface="ISP2"] address ]
 :for i from=( [:len $ipsec] - 1) to=0 do={
 :if ( [:pick $ipsec $i] = "/") do={
 :set ipsec [:pick $ipsec 0 $i];
 }
 }
 :global ipsecsa ([:pick "$ipsec" 0 ([:len $ipsec] - 0)]."/32")
 :if ($ipsecoldsa != $ipsecsa) do={
 /ip ipsec policy set [find comment="pass"] src-address=$ipsecsa sa-src-address=$ipsec;
 }