Description | This article explains that as of v7.4.2, FortiGate can use TCP as the transport protocol for IKE traffic in cases where the phase1 tunnel fails to establish using UDP. |
Scope | FortiGate v7.4.2 or above. |
Solution |
Create an IPsec tunnel on both FortiGates via CLI and set the 'udp-fallback-tcp' as the transport: In Hub:
config vpn ipsec phase1-interface ODMGgV6e2SmrKZ8RV7lN2zYi90YfSjtSReqnG03jZprua5ilYLGr +08lSf7ZCTmaVb4SUV9cwAT3ZSi2Uun9QeU4YX/4d2hLtYMGIjSp 4KNNztPF8p5bY1NiHb9FUVV1/WDKrfcjmD3ZHuQFsGs1FWZSYf1yg==
In Spoke (FortiGate-A):
config vpn ipsec phase1-interface sxLVDccgUrm7PgjsfH1CnbPfr2pRAPhLNV7zAFqoAHZSgnas/7FTmEwWYw fBn1CInk0jJkY9j4EJ39f/ZevB9NtGbSRr8fm7NQdZ2VYFA==
Spoke tries to form the tunnel using UDP as the transport:
2024-03-24 18:53:41.348499 ike V=root:0:ToSiteB:63: sent IKE msg (SA_INIT): 10.30.2.115:500->10.47.3.71:500, len=448, vrf=0, id=af39a06c1ad1a5a1/0000000000000000, oif=3
After 15s, the Spoke tries to form the tunnel using TCP:
To verify the transport of the tunnel, use the command ' diagnose vpn ike gateway list <name>':
Kancil-kvm40 # diagnose vpn ike gateway list name ToSiteB | grep transport
The 15s is the default timer before the FortiGate uses the TCP, this timer can be changed between <1> to <300> using the ' fallback-tcp-threshold' option under phase1-interface settings.
config vpn ipsec phase1-interface
Note: Starting from FortiOS 7.6.0, in the config vpn ipsec phase1-interface command, the option set transport udp-fallback-tcp has been changed to set transport auto, and set fallback-tcp-threshold has been changed to set auto-transport-threshold. See the release notes in the FortiGate documentation.
Related document: |
The Fortinet Security Fabric brings together the concepts of convergence and consolidation to provide comprehensive cybersecurity protection for all users, devices, and applications and across all network edges.
Copyright 2025 Fortinet, Inc. All Rights Reserved.