FortiGate
FortiGate Next Generation Firewall utilizes purpose-built security processors and threat intelligence security services from FortiGuard labs to deliver top-rated protection and high performance, including encrypted traffic.
jdelafuente_FTNT
Article Id 332124
Description

 

This article describes an Automation Stitch example configuration to force VPN renegotiation after Link-Monitor failure, where VPN IPsec is a single interface and not part of SD-WAN. 

 

Scope

 

VPN IPSec, Link Monitor, FortiGate 7.0.x 7.2.x 7.4.x.

 

Solution

 

Requirements.

  • VPN Site-to-site Primary and Backup configured, preferably with IP address on IPsec interfaces.
  • Source IP for Link-monitor, which can be any local IP.
  • Destination IP always available, which can be a remote IPsec IP.

 

Limitations.

  • No SD-WAN configurations for VPN tunnels.
  • IPsec VPN must be site-to-site. Dial-up is not supported.
  • The log ID may vary depending on firmware version.

 

Configurations.

 

config vpn ipsec phase1-interface

edit "VPN-Primary"

set interface "wan1" 

set ike-version 2

set peertype any 

set net-device disable 

set proposal aes256-sha256 

set dhgrp 2 

set remote-gw 10.1.1.2 

set psksecret ENC **removed***

next 

end

config vpn ipsec phase2-interface

edit "VPN-Primary"

set phase1name "VPN-Primary" 

set proposal aes256-sha256

set dhgrp 2 

set proposal aes256-sha256 

set auto-negotiate enable

next 

end

config system interface

edit "VPN-Primary"

set vdom "root" 

set ip 10.254.254.1 255.255.255.255

set allowaccess ping 

set type tunnel 

set remote-ip 10.254.254.2 255.255.255.252 <- The local and remote IPs must belong to the same broadcast domain to avoid static route configuration.

set interface "wan"

next 

end

config system link-monitor

    edit "VPN-Pri_Monitor"

    set srcintf "VPN-Primary" 

    set server "10.254.254.2" <- Destination IP, cloud be remote IPsec interface.

    set source-ip 192.168.100.1 <- Leave blank to use IPsec local IP or define any other internal IP.

    set interval 1000 <- Ping every 1 second.

    set failtime 15 <- 15 seconds threshold.

    next 

end

diagnose sys link-monitor status VPN-Pri_Monitor

  Link Monitor: VPN-Pri_Monitor, Status: dead, Server num(1), HA state: local(dead), shared(dead)

  Flags=0x9 init log_downgateway, Create time: Sun Aug 11 03:22:02 2024

  Source interface: VPN-Primary (12)

  Source IP: 192.168.100.1

  Interval: 1000 ms

  Service-detect: disable

  Diffservcode: 000000

  Class-ID: 0

    Peer: 10.254.254.2(10.254.254.2) 

    Source IP(192.168.100.1)set 

    Route: 192.168.100.1->10.254.254.2/32, gwy(10.1.1.2) 

    protocol: ping, state: dead 

    Packet lost: 100.000% 

    Number of out-of-sequence packets: 0set 

    Recovery times(0/5) Fail Times(2/15)set 

    Packet sent: 2711, received: 1151, Sequence(sent/rcvd/exp): 2712/1165/1166 

 

Expected log events for configuring the automation trigger, depending on the FortiOS version :

7.0.x  date=2024-08-11 time=02:20:31 eventtime=1723360831389957909 tz="-0500" logid="0100022922" type="event" subtype="system" level="notice" vd="root" logdesc="Link monitor status" name="VPN-Pri_Monitor" interface="VPN-Primary" probeproto="ping" msg="Link Monitor changed state from alive to dead, protocol: ping." 

 

7.2.x or 7.4.x  date=2024-08-11 time=09:11:27 eventtime=1723392687691783869 tz="-0700" logid="0100022932" type="event" subtype="system" level="warning" vd="root" logdesc="Link monitor status warning" name="VPN-Pri_Monitor" interface="VPN-Primary" probeproto="ping" msg="Link Monitor changed state from alive to dead, protocol: ping." 

 

config system automation-trigger

    edit "VPN-PRI_MonitorDown"

    set event-type event-log 

    set logid 22922 <- [22922 FortiOS 7.0.x] or [22932 FortiOS 7.2.x, 7.4.x].

    config fields  

    edit 1

       set name "interface"

       set value "VPN-Primary"

    next

    edit 2

       set name "msg"

       set value "Link Monitor changed state from alive to dead, protocol: ping."

    next

    end

    next

    end

config system automation-action

    edit "Renegotiate_VPN-Primary"

    set action-type cli-script 

    set script "diagnose vpn ike gateway clear name VPN-Primary"

    set accprofile "super_admin"

    next 

end

config system automation-stitch

    edit "Renegotiate_VPN-Primary"

    set trigger "VPN-PRI_MonitorDown" 

    config actions

    edit 1

       set action "Renegotiate_VPN-Primary"

       set delay 10

       set required enable

    next

    end

    next

    end

 

Results.

 

Navigate to Security Fabric -> Automation -> Stitch. Note the trigger count increasing to verify success.

 

AutomationStitch01.png