Допустим мы настроили шифрованный L2TP тунель с IPsec к VDS, но ip нашего провайдера может изменится, тогда политики IPsec станут не рабочими. Предлагаю использовать следующий скрипт.
Где:
pass — это комментарий нашей политики
ISP2 — наш интерфейс с интернет соединением
[bash title=»код»]: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;
}[/bash]