The usual approach to handling path MTU problems for TCP is MSS clamping with firewall rules. However, Linux also supports automatic probing, and caches the discovered MSS. The probing process is quite slow, but it can deal with even the most braindead paths, and subsequent connections use the cached MSS value.
tcp_mtu_probing - INTEGER Controls TCP Packetization-Layer Path MTU Discovery. Takes three values: 0 - Disabled 1 - Disabled by default, enabled when an ICMP black hole detected 2 - Always enabled, use initial MSS of tcp_base_mss.