I have been working and researching on NAT traversal from quite sometime. I found that there are quite a few options available in market for the same. Some of then are very well known STUN, Rend. Server. I also use PwNAT software for the same. But none of them works for me either due to high development cost or Additional server requirements. Also, some of my test shows that they are not reliable either.
I was almost about to lose hope when I read about IPv6. From there I go back in time, when all realize that number of Internet Address (IP) are very limited with existing IPv4. That article tells that since IPv4 was sighted to get finish one day, ISP and router maker decide to use Subnet mask and invent the Private LAN IP. With private LAN IP, it is necessary to have a NAT. And this is were we need NAT traversal.
But how can IPv6 solve this problem? Well Answer is straight, Since IPv6 has enough IP to cover all Internet enable device to have their unique Identification through IPv6 address, we don’t need Private IP [conceptually] and hence not need NAT. So the Protocol Design of IPv6 doesn’t have any definition of NAT. So no NAT, no Traversal need. IPv6 one family says 2001:: has enough IP that covers all IPv4 devices and still left with 4 billion IP spare. (2001:: is Microsoft Teredo Address family). For seen future this is more than enough and easy for traversal.
Just to remind that NAT was never there for security. The NAT is to distribute the network packet to correct home. like a Local Postmaster, taking all packet from world and then distribute them in your region/area. Security is part of Firewall or other concepts. So it is not a harmful thing.
So, we now decide to Use IPv6 as it is support by Mac, Linux and Windows XP onwards. It is safe bet to use.