In ECMP or L4 load balanced environments ICMP messages are mostly routed to the wrong servers. Path MTU Discovery Daemon solves this problem by "broadcasting" received ICMP packet too big messages to all backend instances of an L3/L4 load balanced service using IPIP (RFC2003) (legacy IP) and IPv6 Encapsulation (RFC2473 (IPv6).
Some Details:
If you've stumbled over https://github.com/cloudflare/pmtud/ but you're in an environment where your servers are in different L2 domains this is probably what you're looking for.
go get github.com/exaring/pmtud
You may need to install the libpcap
header files. On a Debian system you can do that by apt-get install libpcap-dev
pmtud -cfg.file /path/to/config.yml
# interfaces to read ICMP type 3 code 4 packet from
interfaces: ["enp4s0"]
# IP tunnel endpoints to send the read packets to
backends:
- 10.0.0.0
- 10.0.0.1
- 2001:db8::1
- 2001:db8::2