| Description | This article describes how to resolve a situation where a traffic flow across an IPsec tunnel or when doing Policy Routing is not working due to DSCP bits being set. |
| Scope | FortiGate. |
| Solution |
There is a common scenario where the IPsec tunnel is stable and routing/policy is also correctly configured, but traffic is still unable to reach the destination.
The encrypted packets are incrementing and as per sniffer packet is also leaving the exit interface correctly but the other side has not received the packet. The same issue is reported at the other end as well.
Especially for a TCP connection, there are a lot of TCP sync retransmission in Wireshark since the handshake was never completed due to this.
Custom DSCP/TOS marking from the source machine in a data packet may cause the packet to get dropped in transit. To overcome this situation, it is possible to apply the below commands to both the ingress and egress Firewall Policy on each end of the tunnel.
In this case, it's worth checking with the ISP about what is TOS configuration on their end.
When using an IPsec tunnel, the FortiGate will automatically use the DSCP value of the inside packet, on the encrypted ESP packet. Either set the DSCP value on the Firewall Policy as seen above, or modify the Phase 2 to force the DSCP bits to be 0 by running these commands: config vpn ipsec phase1-interface set npu-offload disable ... next
|
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 2026 Fortinet, Inc. All Rights Reserved.