Hi,
I have been spending significant amounts of time this weekend debugging and troubleshooting this issue.
Server has been rock stable for about 3-4 weeks now, with only intermittent issues for individuals.
The server runs in Amazon EC2 cloud, and runs on Ubuntu Linux.
Then, suddenly yesterday morning (Sunday), it stopped working, and I kept getting "NAT Negotiation Failed - Unable to communicate with the server" in the arma2 server log.
Clients would get the NNThink Error 2, and simply connection failed.
-----
Also note that Amazon AWS EC2 servers are equipped with two IP addresses. One internal (That is always the one you have on eth0), and one external (That is a 1:1 NAT relation to the outside world)
I have all the necessary ports open, (And I control the firewall rules myself) - Just to be clear, I changed nothing on this from Saturday night until Sunday morning.
-----
In order to really see what was going wrong, I eventually did a tcpdump on the serverside on the listening port, to see what the server is sending to Gamespy
Note how the localip is being reported back - This is the internal IP Amazon has given to the machine, which is not reachable from the outside world. The IP on publicIP looks encrypted/hashed in some way to me, as that is not the actual external IP I'm on (That is: 54.235.144.61) I will try to connect to the server with IP/port on my client cmdline now, to see if that will help. *crosses fingers*
*EDIT*: Direct IP/Port did not really help. I was able to connect using the ARMA2 Beta client however. (Without changing anything on the server)
I also see incoming packets whenever a player tries to join (Before getting NAT Negotiation Failed)
I also patched the server to the latest Linux distro that came out about a week ago, with no luck.
Hopefully this will help some of you out there that are also pulling your hair out.