nat traversal / userspace impl

Jason A. Donenfeld Jason at
Mon Apr 17 19:55:37 CEST 2017

On Mon, Apr 17, 2017 at 7:45 PM, Jason E. Aten <j.e.aten at> wrote:
> 1. If it uses UDP only, how does NAT traversal (firewall punch through)
> work?

The same way UDP punching works every place else.

> 2. are there userspace implementations available...?

In the works.

> compile the wireguard kernel module on centos 7.3 with kernel 3.10, no luck,

I'll try to debug under centos' 3.10 kernel. Thanks for the report.

> lots of compile time header issues. I upgraded to kernel 4.10 and could
> compile the wireguard module under kernel 4.10, but then got stuck on how to
> compile the dependent modules;hey aren't specific to wireguard, but rather
> generic modules that just weren't in the default 4.10 kernel and I'm not
> sure how to build them.
> [root at k0 src]# insmod ./wireguard.ko
> insmod: ERROR: could not insert module ./wireguard.ko: Unknown symbol in
> module
> [root at k0 src]# dmesg
> ...
> [77292.707469] wireguard: Unknown symbol udp_sock_create4 (err 0)
> [77292.711122] wireguard: Unknown symbol udp_tunnel6_xmit_skb (err 0)
> [77292.714899] wireguard: Unknown symbol udp_tunnel_sock_release (err 0)
> [77292.718642] wireguard: Unknown symbol setup_udp_tunnel_sock (err 0)
> [77292.722699] wireguard: Unknown symbol udp_sock_create6 (err 0)
> [77292.726007] wireguard: Unknown symbol udp_tunnel_xmit_skb (err 0)
> [root at k0 src]#

Try running `make install && modprobe wireguard` and see if that does
what you want.
Barring that, you can try `modprobe udp_tunnel && modprobe ip6_udp_tunnel`.


More information about the WireGuard mailing list