| Description | This article describes how to configure, diagnose, and troubleshoot an IKEv2 site-to-site IPsec VPN between a Cisco router and a FortiGate firewall using a route-based (VTI) design. It also documents the whole troubleshooting process with real command-line outputs, highlighting the differences between a non-working and a working deployment. |
| Scope | FortiGate 7.2.x to 7.4.x, and 7.4.x to 7.6.x. |
| Solution |
FortiGate IKEv2 implementation overview:
FortiGate implements a standards-compliant IKEv2 stack aligned with RFC 7296.
Cisco FlexVPN Smart Defaults – Initial Behavior:
Cisco FlexVPN Smart Defaults automatically negotiate IKEv2 and IPsec parameters.
Troubleshooting Logic Overview:
The troubleshooting process follows this strict order:
Phase 1 diagnostics must always be validated first, as Phase 2 negotiation cannot occur unless the IKE SA is fully established.
FortiGate command:
High-level tunnel status (FortiGate).
Command:
get vpn ipsec tunnel summary
Working scenario output:
'CISCO-FLEXVPN' 192.168.12.2:0 selectors(total,up): 1/1 rx(pkt,err): 28/0 tx(pkt,err): 28/0
Interpretation (working):
Non-working scenario (typical):
'CISCO-FLEXVPN' 192.168.12.2:0 selectors(total,up): 1/0 rx(pkt,err): 0/0 tx(pkt,err): 0/0
Interpretation (non-working):
Cisco command:
Working scenario output:
Tunnel-id Local Remote Status
Interpretation (working):
Non-working scenario (typical indicators):
Interpretation (non-working):
Phase 2 Diagnostics – IPsec / Child SA (initial failure).
FortiGate command:
diagnose vpn tunnel list
Non-working output excerpt:
Interpretation:
Packet Capture Analysis – Non-Working State. WAN-Side Capture (Non-Working).
FortiGate command:
diagnose sniffer packet port1 "host 192.168.12.2 and (udp port 500 or udp port 4500 or esp)" 4 0 a
Observed output:
Interpretation:
FortiGate command:
diagnose sniffer packet CISCO-FLEXVPN "icmp" 4 0 a
Observed output: 0 packets received by filter. Interpretation:
Root cause identification.
The root cause was identified as:
The following adjustments were required.
Cisco:
FortiGate:
Phase 2 Verification – working state.
FortiGate command:
diagnose vpn tunnel list
Working output example
status=up
Interpretation:
Packet Capture Analysis – working state. WAN-Side Capture (Working).
FortiGate command:
diagnose sniffer packet port1 "host 192.168.12.2 and esp" 4 0 a
Observed output:
192.168.12.2 -> 192.168.12.1: ESP
Interpretation:
Tunnel Interface Capture (Working).
FortiGate command:
diagnose sniffer packet CISCO-FLEXVPN "icmp" 4 0 a
Observed output:
172.16.12.2 -> 172.16.12.1: icmp echo request
Interpretation:
Connectivity verification:
Cisco:
ping 172.16.12.1 source 172.16.12.2
FortiGate:
execute ping 172.16.12.2
Both directions succeed.
Interoperability notes:
Conclusion: |
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.