As for your comment about not needing hardware acceleration, that may be true for equipment with better processors, but with these routers you are lucky to push 350 mbps off of a 1gbps line speed without hardware acceleration. That is due entirely to the limitations of the cpu. It is not like we are attempting it in x86_64 platforms where the difference would be less significant.
The original point was that this is simply not true and I explained why.
Mean while none of this is to talk bad about wireguard, I use it on three of my home builds. I just mean to say it is more a testament on the poor choice of equipment it is being deployed. They can't even get the kernels up to date.
No worries, we're just having a technical discussion. No one is badmouthing anything
“HND 5.04 uses kernel 4.19.183 ~ Rmerlin”
What this means is getting Linux kernel 5.6 entirely depends on Broadcom/ASUS using it for its embedded devices ie routers. Unless wireguard fundamentally becomes a key need to ASUS it’s unlikely to be supported any time soon. Routers are not like Linux pc’s with the ability to swap kernels if you tried you’d break a lot of stuff. Anyways a common mistake even I’ve made.
No one said anything about swapping kernels or whatever. At some point devices will move to newer kernels though as they always have done so over the years. And there will be a time when 5.6 is actually very old. For the time being wireguard-linux-compat module can be built for older kernels just fine and I assume this is what Asus is doing.
My point was that Wireguard gives no user feedback if it fails to connect for one reason or another. It leaves the end user having to figure out on his own why the tunnel won't go up. Is it a misconfigured AllowedIP? The remote peer not being reachable? A mismatched private/public key? You are left guessing, while with another traditionnal VPN solution, you can have a quick glance at a log, which will tell you what is failing.
Right. You can enable verbose debug output though if you build it with "CONFIG_WIREGUARD_DEBUG" set. Am I right in assuming Asus is using wireguard-linux-compat module?
It might be superior if the goal is to have a permanent tunnel between two sites. But if you have an on-demand tunnel (like a VPN connection with a VPN provider which you might want to start/stop on demand), it becomes unintuitive.
I disagree. It might be a good design for some type of uses, but for other uses it's no replacement to an existing technology like IPSEC or OpenVPN. For the goal of having an on-demand tunnel with a VPN provider, it's a clunky solution.
If that is your requirement you can always bring the interface down. Nothing stops you from doing that. The default operation is roaming though. You can keep your laptop or mobile device switching networks on the go and still have a transparent connection to your VPN without any leaking.
No, the fact that it was merged in is proof that it has enough uses to be worth merging into mainline kernel. That does not mean it's a panacea to replace every existing VPN technologies. The fact that reiserfs was merged into the kernel never meant it was the future of filesystems, for example. And for a home router, with the hardware involved and the typical use case involved, wireguard is not the best option for end users to use.
Kinda a bad comparison since a lot of filesystems are merged into the kernel and it is imperative for data access to do so. How many VPN technologies have been merged into the kernel though?
I respectfully disagree. I still have not met a single use case where I would switch back to OpenVPN. IPSEC is another story though, I'll concur on that.
I am pretty certain that wireguard is much faster than OpenVPN when running on these routers too (for the reasons I stated). I wanted to test myself as I want to move wireguard from the linux server to my RT-AX88U on my homelab setup. I'm willing to test and do some benchmarks (1Gpbs fiber). Is the alpha stable enough? I work remotely often and having tunnel to my homelab at all times is imperative, so if things have no chance to crash and burn I'll take the plunge, heh.
As a sidenote, thanks for all the work you're putting into the firmware.
(Btw this is Nodens, the developer behind Asus ROG Realbench)
ChaCha20-Poly1305 isn't "faster" than AES-128-gcm - it is however, more efficient on CPU's that do not have HW acceleration...
Recall that WG is in kernel space, so we don't have that trip from kernel to userland (aka OpenVPN) and the OpenSSL overhead.
Notice I never said it's faster than hardware accelerated AES-128-GCM. I said faster than hardware accelerated AES-256-GCM. Big difference (40-20% difference in performance between the two, depending on many factors)
BUT I'm willing to bet that in this ecosystem of CPUs it's actually faster than AES-128-GCM as well, mainly due to the reason you stated (overhead).
The downside, at present, is that WG is locked into chacha20-poly1305, and if there is ever a compromise there, folks are in for a bit of trouble to remediate.
Pretty sure a switch to Xchacha20-poly1305 is in order but I do not expect support for AES at all. There's no point to it from a technical viewpoint. In fact, I would not be surprised to see (X)chacha20-poly1305 acceleration extensions in ARM soon.
As a sidenote there's a lot of extensive research being done on optimizing poly1305 (although irrelevant for these CPUs since it's mostly on the AVX front).
The other challenge, and this is being worked on, is enterprise-level classes of service, and things like SSO, which, these things are important for IT decision makers.
Agreed. There is work being done on that front with external projects.