i still frequently get kicked from custom games because NAT failed, but i have opened all the ports needed and then some. i have tested the using the portforward app, a random selection within the range all work fine.
so why the f*ck am i still getting NAT fail messages, if one side of a p2p connection has open listening ports then there should be no need for any sort of NAT apart from what has been used to open said ports.