I understand your example, but then another question is up - if we don't specify PersistentKeepalive on one of the sides, after a while both client and server become silent, and session effectively ends by routers udp timeout (30 sec on mine), and if server needs to talk to a client which is behind NAT w/o listening port forwarded, it will fail, right?

On Sun, 30 Apr 2017 at 15:35 Jason A. Donenfeld <Jason@zx2c4.com> wrote:
If you're the client, you're already connecting _up_ to a server,
which means ordinary stateful NAT takes care of that.

Comparison: do you manually specify a source port when making an
outgoing HTTP connection?