Проблема в следующем:
У меня настроено несколько подсетей, т.е. src - несколько dst - один, и скрипт не отрабатывает. Если оставлять только 1у строку (не отключать а именно 1у строку), тогда скрипт отрабатывает.
Т.к. такая тема меня не устраивает, начал смотреть варианты через PeerName - проблема аналогичная, для разных подсетей получаем список с одинаковыми именами, с одинаковыми dst и только разные src.
Решение: для одного IpSec но разных подсетей, назначил разные PeerName.
Сам скрипт:
:local PeerName your_peer_name
if ([/ip ipsec policy get value-name=ph2-state [find peer=$PeerName]] = "established") do={
:put 1
} else= {
:put 0;
/ip ipsec policy enable numbers=[find dst-address=$sadstip];
}
Эта строка перезагружает IpSec в случае недоступности
/ip ipsec policy enable numbers=[find dst-address=$sadstip];
Далее по OID 1.3.6.1.4.1.14988.1.1.18.1.1.2.Х в Zabbix получаем 1 или 0 в зависимости от статуса IpSec где X номер скрипта (в статье подробно о том как узнать номер скрипта), ну и соответственно накидываем триггер.