Ferritaas Incident Intelligence
Defect Intelligence Report Bug 0879204 Severity: Medium (P3)

FortiAP CAPWAP DTLS Tunnel Timeout on High-Latency WAN Satellite Links

Remote FortiAPs connected across geostationary satellite (VSAT), Starlink, or high-jitter cellular WAN connections flap continuously and tear down CAPWAP sessions when DTLS keepalive heartbeats exceed the hardcoded 250ms controller response window.

Technical Root Cause Analysis

FortiGate wireless controller daemon cw_acd coordinates configuration, channel selection, and telemetry with FortiAPs over an encrypted CAPWAP DTLS tunnel (UDP 5246 and 5247). To verify tunnel liveness, the controller exchanges periodic DTLS Echo Request and Response datagrams with each managed access point.

In affected FortiOS 7.2 builds, cw_acd enforces a rigid heartbeat check: an echo interval of 5 seconds paired with a maximum retransmit limit of 3 consecutive misses, with an internal RTT deadline capped at 250ms. On satellite links (where propagation delay alone is 450–650ms) or jittery cellular connections, consecutive DTLS echo replies arrive outside the strict window. The controller prematurely declares the DTLS state dead, abruptly resets the CAPWAP session, disconnects associated client SSIDs, and forces the remote FortiAP to re-initiate discovery.

[cw_acd 1248] dtls_echo_timer: AP FP231F-TF18002934 echo timeout (seq=12, rtt=312ms > limit=250ms) [cw_acd 1248] dtls_retransmit: sending Echo Request retry 3/3 to 198.51.100.44:5246 [cw_acd 1248] dtls_heartbeat_failed: no echo reply received within threshold [cw_acd 1248] capwap_tunnel_teardown: dropping AP FP231F-TF18002934 (reason: ECHO_TIMEOUT) [wlc] alert: AP 'Branch-Offshore-AP' disconnected, SSIDs disabled on radio 1 and radio 2

Affected Firmware & Blast Radius Matrix

FortiOS Branch Vulnerable Builds Confirmed Clean Build Status & Workaround
FortiOS 7.2 7.2.2 – 7.2.6 7.2.7+ Increase echo-interval & max-retransmit in AP profile
FortiOS 7.4 7.4.0 – 7.4.1 7.4.2+ Dynamic RTT calculation added in 7.4.2
FortiOS 7.0 Not Affected 7.0.x Branch Clean Legacy CAPWAP timer allowed wider default timeout window

Platform Impact: Affects all FortiGate models managing FortiAP units (FAP-221E, 231F, 431F, etc.) over WAN connections with round-trip latency higher than 250ms or packet jitter exceeding 60ms.

Step 01: Free Verification CLI (Safe Read-Only)

Execute these diagnostic commands to determine whether remote FortiAPs are experiencing DTLS echo timeouts and tunnel teardowns:

Diagnostic Commands

# 1. Inspect managed AP inventory, connection state, and uptime
diagnose wireless-controller wlc list-ap

# 2. Monitor wireless controller daemon CAPWAP DTLS events in real-time
diagnose debug application cw_acd -1
diagnose debug enable

# 3. Check detailed AP link quality and DTLS session status
diagnose wireless-controller wlc get-ap-status

# 4. Ping remote AP management IP to verify baseline WAN RTT and jitter
execute ping-options interval 1
execute ping-options repeat 10
execute ping <AP_IP_ADDRESS>

Remediation & Workaround Steps (Teaser Preview)

Follow the complete step-by-step remediation guide in the interactive Ferrite platform:

Step 02: Tune Global CAPWAP Heartbeat Timers

Adjust echo interval and retransmission thresholds to tolerate high RTT satellite propagation delay.

🔒 Interactive CLI Available in Ferrite Runbook #23

Step 03: Enable Local-Standalone SSID Survivability

Configure local bridging so client devices maintain uninterrupted local LAN connectivity during WAN jitter.

🔒 Interactive CLI Available in Ferrite Runbook #23

Step 04: Optimize DTLS MTU and Fragment Handling

Prevent packet fragmentation drops by tuning CAPWAP DTLS tunnel path MTU to 1350 bytes.

🔒 Interactive CLI Available in Ferrite Runbook #23
⚡ Ferrite Platform Superpowers

Execute the Complete Runbook with Live Browser Automation

Connect your FortiGate via browser console (Web Serial) or local SSH bridge, verify each command in real-time, generate ready-to-run Tera Term scripts, and export sanitized TAC dossiers.

Live Browser Automation Direct terminal connection with live step checkoff.
📟
1-Click Tera Term (.ttl) Generate scripts for air-gapped jumpboxes.
🛡️
Zero-Trust Scrubber Scrub serials and credentials in local browser RAM.
📄
TAC P1 Escalation Dossier Standardized evidence export with SHA-256 seal.

Frequently Asked Questions

What causes FortiAPs to flap over satellite and high-latency WAN links?

The FortiOS wireless controller daemon cw_acd uses aggressive default DTLS heartbeat timers (echo interval of 5 seconds with 3 max retries). On high-latency links such as VSAT, Starlink, or rural cellular WANs where round-trip latency routinely exceeds 250ms or experiences queue delay, consecutive echo replies arrive after the timeout window. This triggers an ungraceful CAPWAP tunnel teardown and forces the AP into re-discovery.

Can FortiAPs maintain Wi-Fi broadcasting if the CAPWAP tunnel drops?

Yes. By configuring 'set split-tunneling enable' or using local bridge SSIDs with 'set local-standalone enable', FortiAPs continue switching local LAN traffic even during transient CAPWAP management disconnects.

Which FortiOS firmware versions resolve Bug 0879204?

FortiOS 7.2.7 and 7.4.2 incorporate adaptive DTLS keepalive algorithms with dynamic RTT compensation for satellite and high-latency WAN links.