В этой статье я пытался решить проблему включением RFC и перезапуском тоннеля раз в 5 часов. Этот метод оказался не самым эффективным.
В общем, более эффективным способом я признал перезапуск «повисшего» тоннеля через Ciso Embded Event Manager.
С той стороны IPSEC тоннеля у меня есть Web сервер, по его состоянию можно отслеживать завис тоннель или нет. Разумеется, можно использовать любую удобную вам проверку ip sla.
Нужно не забывать что посылать запрос нужно с тем source ip, который попадёт в тоннель.
В моём случае имеем такие настройки ip sla, я делаю проверку раз в 2 минуты:
ip sla 1 tcp-connect 192.168.22.30 80 source-ip 10.10.10.1 control disable frequency 120
Включаем отслеживание проверки:
track 1 ip sla 1 reachability
Теперь самое интересное — пишем небольшой скрипт в Event Manager, который будет отрабатывать в случае перехода track из Up в Down, xxx меняем на IP IPsec пира удалённой стороны:
event manager applet IPSEC-RESTART event track 1 state down action 001 cli command "enable" action 002 cli command "clear crypto sa peer xxx.xxx.xxx.xxx" action 003 syslog msg "IPsec was restarted"
Скрипт сбрасывает тоннель и пишет сообщение в лог.
Что важно — если при следующей проверке сервер не ответит — скрипт НЕ отработает повторно. Он работает только при переходе состояния из Up в Down.
Про всё богатство функционала EEM можно почитать тут — http://xgu.ru/wiki/Embedded_Event_Manager