Tengo unas VPNs site to site con IPSec utilizando Strongswan en Linux, un sitio central con varias sucursales, solo el sitio central tiene IP publica y todas las sucursales son IPs dinámicas, a medida voy agregando nuevas sucursales necesito reiniciar Strongswan en el sitio central por lo que necesito que las sucursales reinicien la VPN una vez se detecte que el túnel esta caído.
Esto lo logre a través de un script que ejecuto cada minuto a través de cron, la linea en crontab quedo de la forma siguiente.
* * * * * ipsec-monitor.sh
El archivo ipsec-monitor.sh contiene el siguiente código.
#!/bin/bash
status=$(sudo ipsec status | grep none);
if [ $status ]; then
sudo systemctl restart strongswan;
fi
El archivo debe tener permisos de ejecución.