RADIUS Log Analyzer

Discarding duplicate request from client ...

FreeRADIUS EAP stalls mid-handshake — 'Discarding duplicate request' and the fragment-size fix

The log lines:

(12) Discarding duplicate request from client wlc-01 port 32768 - ID: 118 ...
(12) Sending duplicate reply to client wlc-01 port 32768 - ID: 118

What it actually means: the conversation died in the middle. The server sent an Access-Challenge (usually carrying a chunk of its TLS certificate chain) and is now seeing the same request retransmitted — the NAS never got an answer the client acted on. The usual physics: your server certificate chain is several KB, EAP splits it across multiple large RADIUS packets, one of them exceeds the path MTU, gets fragmented at the IP layer, and a firewall drops the fragments. The client is waiting for bytes that will never arrive; the NAS retries; everything times out.

This is the classic “some devices authenticate, others hang forever, nothing is rejected” failure — rejects are instant, fragment loss is silent.

The fix that works most of the time

In mods-available/eap, inside the tls-config section:

fragment_size = 1024

This caps each EAP-TLS fragment so the resulting RADIUS packet stays comfortably under a 1500-byte MTU even with headers and attributes. Restart radiusd and retest. It costs a couple of extra round trips and fixes the problem outright in most environments.

While you’re there, trim the chain: certificate_file should contain the server cert plus intermediates only — no root (clients must already have it), no leftover old certs. Every KB removed is a fragment that can’t be dropped.

Confirming it’s really fragment loss

  • tcpdump -i any -n udp port 1812 and host <nas-ip> on the RADIUS server: you’ll see large Access-Challenge packets leave (look for IP fragments) and the same Access-Request arrive again and again.
  • If you can capture on the NAS side too, watch where the large packets vanish — that hop is your fragment-dropping firewall or tunnel with a reduced MTU (IPsec and GRE paths are frequent offenders).

The other cause of this exact log pattern

Sometimes nothing is dropped — the supplicant is waiting on a human. A certificate-trust prompt is sitting on the user’s screen; until someone clicks, the client answers nothing and the NAS retransmits identically. Watch a failing device while the retransmissions happen (Windows: WLAN-AutoConfig event log). If a trust dialog is the blocker, your real issue is certificate trust distribution, not MTU — fix the profile so the prompt never appears.

Diagnose your actual log

Generic explanations only go so far. Paste your full log into the analyzer — it detects this failure and 18 others, ranks the likely causes for your specific output, and runs entirely in your browser. Nothing is uploaded.