I wrote pmtud.sh this weekend to get the MTU of a link (or tunnel) quickly, reliably, and without sending a ton of pings. It can do so in about 11 pings per target.
I had fun writing the entire thing in sh
, tried making it “POSIX-compliant,” but probably failed somewhere since POSIX isn’t worded well. The script only needs dig
and ping
and uses shell built-ins for everything else. It performs a recursive binary search on the MTU search domain and asynchronously queues pings for later.
Saved my bacon with this comment. Fixed a ton of (seemingly) innocuous errors.