Things that NATs break

This is an attempt to concisely document the various things that NATs break. Not all of these are major, and it doesn't readily translate into a list of applications that NATs break. I wrote this list because I got tired of refuting comments of the form ``NATs only break applications that send addresses around''. As you can see, it's a bit worse than that.

This is also not to say that some of these things aren't also broken by firewalls or proxies. But NATs break these things even in the presence of firewalls and proxies, because even if you fix the firewall or proxy, you still have to fix the NAT.