01
The Challenge
Deploying a self-hosted VPN behind an ISP connection using carrier-grade NAT (CGNAT) — rather than a direct public IP — meant standard port-forwarding assumptions didn't hold. The connection was experiencing silent UDP packet drops, making the VPN unreliable without an obvious cause.
02
The Approach
1
Configured OpenVPN on a TP-Link router, working within the constraints of an ISP-assigned public IP behind CGNAT with forwarded ports.
2
Diagnosed silent UDP packet loss by isolating whether drops were occurring at the router, the ISP's NAT layer, or the client side.
3
Traced the issue to a likely destination IP misconfiguration on the ISP's NAT translation path rather than local router settings.
03
The Outcome
Identified the actual point of failure in the connection path — the ISP's NAT layer rather than local configuration — narrowing the fix to the right layer instead of continuing to adjust router settings that weren't the cause.