I'm pretty convinced this has something to do with my specific router. I found the following link which provides some interesting information:
http://readlist.com/lists/lists.sourceforge.net/openvpn-users/1/8545.html
This is one for the FAQ's.
If you can not seem to get a D-Link dgl4100 router to
accept UDP packets from a remote Open VPN client, it is
dues to an undocumented (in their user manual) feature
called: NAT Endpoint Filtering.
The dlg4100 will not accept UDP packets of "State = NEW"
(iptables jargon) unless you have "UDP NAT Endpoint Filtering"
set to "Endpoint Independent".
You can find "NAT Endpoint Filtering" in
--> "Advanced"
--> "Firewall"
--> "UDP Endpoint Filtering"
--> "Endpoint Independent"
I hope this saves someone else from tearing their
hair out!
--T
While I don't have that particular model, I do have a D-Link router (DI-524). Unfortunately, the setting he/she is referring to doesn't exit in my interface.
I tried switching to TCP, but it suffers from the same problem: won't connect on initial try, connects successfully on reconnection. It doesn't seem to matter what my NAT/PAT settings are or any of my firewall rules (I've tried every combination I can think of). I even tried putting the server in the DMZ temporarily.
This has now become my white whale. I'd love to figure it out even though the VPN is still usable at the moment.