IGDP is much more of a security problem than proper "automatic" NAT with STUN. ... {assorted good stuff}
@hplus; I love how you don't even pause for the acronyms and jargon, especially after he wrote that upnp was "black magic to me". Those short paragraphs in your post post made me reflect on some history. Nostalgia is fun, good times were enjoyed by many.
Have i missed anything? Should i just switch to steamworks?
Yes, you missed some things, but based on how you worded your question they probably don't matter to you.
Hplus is a great resource for this, but it is understandable if the post above is acronym-heavy. He became a small part of internet history on the topic. One of his blog entries (they weren't called blogs back then) on finding a way around NAT grew to become a resource and guide for people on later standardization committees. I think he coined the term "NAT punch-through", which evolved into "punching a hole through NAT" which evolved into the term "hole-punching" you used. Modern NAT systems (that first came out in the late 1990s) were still fairly rare when he published some of his early experimental methods on punching through them with what was sometimes considered a flaw in cheap consumer devices. While he wasn't the only one to discover it, the short experiment and tutorial pages he wrote helped many people solve their problem. Now those methods are considered the standard way to go for IPv4 if you're looking for an easy solution.
It is certainly easier to use an existing library and existing server, like the ones Steam provides. If you just want to get it done and call it a day, use an existing library.
There are new options becoming available, and even commonly-used libraries cannot get through all networking environments. But learning all about them will require some serious effort. If you want to understand how it works well enough that you can build your own solutions on modern equipment, you've got a lot of documentation to read and about 20 years worth of history to learn. You can look up how NAT works, why it is a problem, how Internet routing works, and the solutions that have been implemented along the way to reach through them. All the acronyms used above