Настроил я как-то VPN IKEv2, IP у клиента прилетал на интерфейс от провайдера. На счет того, постоянный он или нет, узнавать не стал, настроил все через DDNS самого микротика и забыл.
Проходит некоторое количество времени и у клиента перестает работать VPN, не подключается и все. Начинаю разбираться и вижу, что сменился IP на интерфейсе, а в ipsec\peer указан старый, поменял и все заработало, но это не наш вариант и хотелось бы что бы это все происходило автоматически без ручного вмешательства, вот и написал текущий скрипт и повесил его на dhcp-client\script.
Пользуйтесь, может еще кому пригодится.
#Get ipsec peer
:global ikv2 [/ip ipsec peer get [find name="peer-ikev2" ]]
# full view
:global ikv2peerip [:pick $ikv2 5 [:find $ikv2peerip "local-address"]];
# parser ip
:global ikv2peerip [:pick $ikv2peerip 0];
# get inteface ip address with mask
:global NewIPMask [/ip address get [find interface="ether1"] address];
# delete mask on ip address
:global NewIP [:pick $NewIPMask 0 [:find $NewIPMask "/"]];
# cgange ip ipsec peer
:if ($ikv2peerip != $NewIP ) do={
:log warning "CHANGE WAN IP ADDRESS!!!"
:log warning "Old IP: + $ikv2peerip "
:log warning "NewIP: + $NewIP"
ip ipsec peer set local-address=$NewIP numbers=0
}