Watching my Unbound DNS cache statistics and sadly there’s plenty of Fediverse servers with TTL of A/AAAA records set to very low values. Why would anyone set TTL to 18, 30 or 300 seconds?
I get it, when you prepare for a migration, that’s something you want to do to speed up the transition. There’s some sophisticated load-balancing schemes where this may come handy, but most of those I see are simple unicast hosts. Resolvers worldwide are just pointlessly pounding the whole DNS tree to get the same IP over and over again…
RFC 1033, 1987:
Most host information does not change much over long time periods. A good way to set up your TTLs would be to set them at a high value, and then lower the value if you know a change will be coming soon. You might set most TTLs to anywhere between a day (86400) and a week (604800). Then, if you know some data will be changing in the near future, set the TTL for that RR down to a lower value (an hour to a day) until the change takes place, and then put it back up to its previous value.
Okay, this is about default TTL in SOA and 86400 may be quite long for disaster recovery, but how about at least an hour (3600)?