Yes absolutely !!!it would be a dream because now i have a routerboard+raspberry(wireguard) for every single sites of my fullmesh vpn
Wireguard is very simple compared to Ovpn, if I'm not mistaken it's only around 4000 lines of code.+1 for wireguard .
Please don't repeat the way you did with OpenVPN udp
Wireguard is still faster than AES with offload on the same machine, CPU usage is low as well. The situation I could see this being an issue is with a lot of wireguard sessions, for the typical user needs there is no downside.So bye bye all hardware offload.
Nice comparison, literally lol'dmakes AES-NI look like 'MMX'....
RouterOS v7 has v4.14, which is supported by wireguard-linux-compat for what it's worth.Its good to see Wireguard is now "in-tree" on the latest kernel probably won't help here from a technical perspective as I believe RouterOS runs an old Kernel but from a support perspective Wireguard has some stability in the Linux community.
https://arstechnica.com/gadgets/2020/03 ... ux-kernel/
A whole bunch of tunnels': Mesh networking with per-node permissions and OAuth security
.....
Tailscale's product includes several pieces. First, it's based on peer-to-peer VPNs rather than piping all VPN traffic through a single concentrator. WireGuard security uses public keys. One endpoint can connect to another if it knows the public key and the UDP endpoint (IP address and port) to connect to. Tailscale maintains a database of endpoints on its server, so that when client A needs to talk to client B, it fetches the endpoint details and then makes a direct connection. Tailscale calls this a mesh network.
.....
According to Pennarun, the company was initially more interested in network security than VPNs. An early customer, a bank, wanted to secure a old but critical Windows application, and rather than updating it to use two-factor authentication, he proposed: "Why not move the server into its own little network, so that people can only access that network after they've done two-factor authentication? That was the origin of building this tool. It wasn't intended as a remote access VPN, it was intended as a local access VPN. We did base it on WireGuard because WireGuard was an efficient data plane for their system. It turned out that the core thing we build, this multi-point VPN, was applicable to all sorts of other problems.
.Mikrotik have the development smarts to cleanly integrate WireGuard into RouterOS, and now that it has been mainlined I would not be surprised if we see it in the very near future.
Is this an subtle acknowledgement that you are working on it?nz_monkey is spot on
Of course it is... We just don't know when. Waiting impatientlyIs this an subtle acknowledgement that you are working on it?nz_monkey is spot on
I wouldn't call it "subtle"...Is this an subtle acknowledgement that you are working on it?nz_monkey is spot on
I currently used wireguard with VYOS and they seem to achieve this without a problem, I'm currently creating a wireguard tunnel to another provider (2 actually) and negotiating BGP over those.Wireguard is a design disaster in every aspect if used on a router. I'm going to name some:
1. You can't just route packets across a wireguard tunnel using the routing table (which is the base of every router), but you have to have some sort of "key" attached to that route. All the dynamic routing thing will just fail. Plus you can't dynamically attach the key to a route at least in the official version of wireguard. (Well, you can provision a tunnel for every device pair but...)
2. No PKI or external AAA support. Since you are going to provision a lot tunnels and there are no "templates" or PKI available, you'll be going to manually add config for **every device**.
3. No support for packet types other than IPv4/IPv6. This means no MPLS support at all.
I would rather go for a better IPSec VTI implementation or ZeroTier integration.
Yes WireGuard does VPN a little differently -- actually a LOT differently. There is the Old way and now the NEW WireGuard way.Wireguard is a design disaster in every aspect if used on a router. I'm going to name some:
It's horses for courses. WireGuard is extremely _SIMPLE_, it allows reliable connectivity from devices that roam networks, it is easy to audit, has low overhead and performs well on a wide range of devices.Wireguard is a design disaster in every aspect if used on a router. I'm going to name some:
I agree, IPSEC VTI is needed in RouterOS but it has a different use-case to WireGuard. IPSEC VTI is the industry standard and will allow integration with a wide variety of other vendors.I would rather go for a better IPSec VTI implementation or ZeroTier integration.
But, me too!I don't think more +1's are necessary, it's being added
WireGuard aims to provide a VPN that is both simple and highly effective. ... a codebase of around 4000 lines of pure kernel code,
about 1% of either OpenVPN or IPsec, making security audits easier, and praised by the Linux kernel creator Linus Torvalds
compared to OpenVPN and IPsec as a "work of art".
...
Oregon senator Ron Wyden has recommended to the National Institute of Standards and Technology (NIST) that they evaluate WireGuard
as a replacement for existing technologies like IPsec and OpenVPN.
Source https://en.wikipedia.org/wiki/WireGuard
niceeeeeeeee, guess we are on the right path7.0beta7 (2020-Jun-3 16:31):
!) system kernel has been updated to version 5.6.3;
The opposite is true .... @markwien - ignorance is no excuse!If u need WireGuard better install it on a server with powerful cpu.
I don't know how they did those benchmarks, but my edgerouter lite is just as fast when doing ipsec as these wireguard results.@markwien
Detailed benchmarks: https://an.undulating.space/post/181227 ... enchmarks/
TL;DR - on budget EdgeRouter Lite (dualcore, 500Mhz MIPS64):
Screen Shot 2020-06-06 at 11.56.00 PM.png
It looks like on the standard OS they're comparable, OpenWRT has probably some newer (less stable?) implementation. Based on the date of the post it's also possible that OWRT used kernel module while EdgeOS used userland implementation.my edgerouter lite is just as fast when doing ipsec as these wireguard results.
However, even there the numbers look promising:These benchmarks are old, crusty, and not super well conducted. In the intervening time, WireGuard and IPsec have both gotten faster, with WireGuard stil edging out IPsec in some cases due to its multi-threading, while OpenVPN remains extremely slow. It is a work in progress to replace the below benchmarks with newer data.
And I can agree with this 101%. WG is not a magical one-fits-all, and the author itself is aware of that. Even the fact that WG deliberately tunnels IP layer only is a limiting factor for many. However, as a general tunneling protocol for HTTP/SMB/AFP, especially for road warriors on mobile it's vastly better.On ipsec I get to choose the encryption. I get it that wireguard has its uses and is better than ipsec on some aspects. But to me it is absolutely not the one size fits all vpn.
I 100% Agree with @onnoossendrijverI don't know how they did those benchmarks, but my edgerouter lite is just as fast when doing ipsec as these wireguard results.@markwien
Detailed benchmarks: https://an.undulating.space/post/181227 ... enchmarks/
TL;DR - on budget EdgeRouter Lite (dualcore, 500Mhz MIPS64):
Screen Shot 2020-06-06 at 11.56.00 PM.png
On ipsec I get to choose the encryption. I get it that wireguard has its uses and is better than ipsec on some aspects. But to me it is absolutely not the one size fits all vpn.
Which Nebula also offers. In fact, Nebula offers basically all of the benefits of Wireguard with almost none of its drawbacks. It is, essentially, an administration framework that makes Wireguard functional at scale. I'd recommend you actually look at it before dismissing it outright.Personally I would much rather see vanilla Wireguard, simplicity and speed is all I need.
Look, I'm not interested in escalating a bad-faith argument. I posted the link to the github above, if you're interested in checking it out.How large is the Nebula codebase? Wireguard is compact, this is needed in devices that are already pushing the limits of what can fit into the limited remaining memory.
Presumably the same way you implement anything on an embedded environment - through a lot of compile optimization and stripping out parts that aren't fully necessary for the actual CPU you are targeting or functionality you're not interested in.It's not an argument, how would something this large be implemented?
For starters, Wireguard isn't 2,000 lines of code. It's over twice that. Also, I'd push back on your claim that WG is popular because "it can be easily audited" in a couple of ways. Most importantly, whether it can be easily audited or not, it hasn't been. Second, I suspect a one-man-shop project like WG, well coded though it may be, is less likely to receive a formal audit than a project backed by a major internet presence like Slack. Third, the fact that you weren't aware of the actual size of WG's code makes me wonder whether you've bothered to actually look at it yourself at any level. And finally, when you say, "There's a reason why Linux nor MT jump on shiny new toys" - Wireguard is basically the definition of a shiny new toy.I agree with @rooted on that. While the project looks promising it recreates many problems of OpenVPN/IPSec like PKI management. WG is meant to plug to other things (like DHCP or OSPF) and by small, light, and kernel-level. Additionally the Nebula is still work-in-progress with no client for iOS, which like it or not, is extremely popular.
Additionally, while there are certain use cases for Nebula, it's not something a huge community is surrounded around. There's a reason why Linux nor MT jump on shines new toys. Nebula by itself, as an ADDITION on top of WG clocks over 16,000 lines of code. WG in comparison is around 2,000. This is one of the arguments why WG become popular: it can be easily audited, Nebula can't.
...It's not an argument, how would something this large be implemented?
At any rate, I've stated my preference. Mikrotik will either listen, or they won't. Wireguard has an almost religious following now, and it's becoming difficult to hold any kind of rational discussion about the matter. I should have known better.
Best...
Exactly.I would bet that bandwidth test is being used to generate this flow and that's affecting the throughput a bit too. Pretty impressive IMO.
Hi Emils,Screenshot from 2020-08-05 14-13-29.png
me too!I registered an account just to look at the attachment... and it was worth it!
Part of what makes it so attractive, portability and ease of setup and use.DID you know that WireGuard now runs under Windows 10, macOS, IOS, Android and MANY flavors of Linux
https://www.wireguard.com/install/
Amazing !!!
How are you benchmarking that?Rb4011 yields me about 300Mbps through a 1Gbps pipe.
I benchmarked using iperf. I have a Linux VM at a cloud provider functioning as the "client" to my Linux box within my home network functioning as the "server".How are you benchmarking that?Rb4011 yields me about 300Mbps through a 1Gbps pipe.
$ iperf3 -c 10.10.10.7 -t 10
Connecting to host 10.10.10.7, port 5201
[ 4] local 10.10.13.2 port 45388 connected to 10.10.10.7 port 5201
[ ID] Interval Transfer Bandwidth Retr Cwnd
[ 4] 0.00-1.00 sec 2.62 MBytes 22.0 Mbits/sec 0 152 KBytes
[ 4] 1.00-2.00 sec 5.33 MBytes 44.8 Mbits/sec 0 357 KBytes
[ 4] 2.00-3.00 sec 10.1 MBytes 84.6 Mbits/sec 0 778 KBytes
[ 4] 3.00-4.00 sec 22.5 MBytes 189 Mbits/sec 0 1.77 MBytes
[ 4] 4.00-5.00 sec 30.0 MBytes 251 Mbits/sec 0 2.63 MBytes
[ 4] 5.00-6.00 sec 36.2 MBytes 305 Mbits/sec 111 2.21 MBytes
[ 4] 6.00-7.00 sec 36.2 MBytes 304 Mbits/sec 0 2.43 MBytes
[ 4] 7.00-8.00 sec 37.5 MBytes 315 Mbits/sec 1 1.81 MBytes
[ 4] 8.00-9.00 sec 27.5 MBytes 231 Mbits/sec 0 1.92 MBytes
[ 4] 9.00-10.00 sec 31.2 MBytes 262 Mbits/sec 0 2.00 MBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bandwidth Retr
[ 4] 0.00-10.00 sec 239 MBytes 201 Mbits/sec 112 sender
[ 4] 0.00-10.00 sec 238 MBytes 200 Mbits/sec receiver
I just did a SMB file transfer from my phone to my NAS over the wireguard tunnel and got 200Mbps with about 65-75% CPU usage. Curious to see what would happen if I did a test where my phone's WiFi wasn't a possible bottleneck! But also too lazy to get up off the couch! (Configured the tunnel from my phone lol)Aaaanndd... it's works!
Android client connected to hAP ac2 - speedtest 150/150Mbps, MT CPU ~60%.
Not bad. I mean it's not really matching hardware accelerated ipsec on that specific hardware but pretty good for CPU encryption.I benchmarked using iperf. I have a Linux VM at a cloud provider functioning as the "client" to my Linux box within my home network functioning as the "server".How are you benchmarking that?Rb4011 yields me about 300Mbps through a 1Gbps pipe.
These results were just taken and are slightly lower than when the network is idle. The family is streaming a video show right now.
Code: Select all$ iperf3 -c 10.10.10.7 -t 10 Connecting to host 10.10.10.7, port 5201 [ 4] local 10.10.13.2 port 45388 connected to 10.10.10.7 port 5201 [ ID] Interval Transfer Bandwidth Retr Cwnd [ 4] 0.00-1.00 sec 2.62 MBytes 22.0 Mbits/sec 0 152 KBytes [ 4] 1.00-2.00 sec 5.33 MBytes 44.8 Mbits/sec 0 357 KBytes [ 4] 2.00-3.00 sec 10.1 MBytes 84.6 Mbits/sec 0 778 KBytes [ 4] 3.00-4.00 sec 22.5 MBytes 189 Mbits/sec 0 1.77 MBytes [ 4] 4.00-5.00 sec 30.0 MBytes 251 Mbits/sec 0 2.63 MBytes [ 4] 5.00-6.00 sec 36.2 MBytes 305 Mbits/sec 111 2.21 MBytes [ 4] 6.00-7.00 sec 36.2 MBytes 304 Mbits/sec 0 2.43 MBytes [ 4] 7.00-8.00 sec 37.5 MBytes 315 Mbits/sec 1 1.81 MBytes [ 4] 8.00-9.00 sec 27.5 MBytes 231 Mbits/sec 0 1.92 MBytes [ 4] 9.00-10.00 sec 31.2 MBytes 262 Mbits/sec 0 2.00 MBytes - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bandwidth Retr [ 4] 0.00-10.00 sec 239 MBytes 201 Mbits/sec 112 sender [ 4] 0.00-10.00 sec 238 MBytes 200 Mbits/sec receiver
Interesting. Now I'll have to perform a ipsec benchmark later today. I'm curious to see the delta.Not bad. I mean it's not really matching hardware accelerated ipsec on that specific hardware but pretty good for CPU encryption.I benchmarked using iperf. I have a Linux VM at a cloud provider functioning as the "client" to my Linux box within my home network functioning as the "server".How are you benchmarking that?Rb4011 yields me about 300Mbps through a 1Gbps pipe.
These results were just taken and are slightly lower than when the network is idle. The family is streaming a video show right now.
Code: Select all$ iperf3 -c 10.10.10.7 -t 10 Connecting to host 10.10.10.7, port 5201 [ 4] local 10.10.13.2 port 45388 connected to 10.10.10.7 port 5201 [ ID] Interval Transfer Bandwidth Retr Cwnd [ 4] 0.00-1.00 sec 2.62 MBytes 22.0 Mbits/sec 0 152 KBytes [ 4] 1.00-2.00 sec 5.33 MBytes 44.8 Mbits/sec 0 357 KBytes [ 4] 2.00-3.00 sec 10.1 MBytes 84.6 Mbits/sec 0 778 KBytes [ 4] 3.00-4.00 sec 22.5 MBytes 189 Mbits/sec 0 1.77 MBytes [ 4] 4.00-5.00 sec 30.0 MBytes 251 Mbits/sec 0 2.63 MBytes [ 4] 5.00-6.00 sec 36.2 MBytes 305 Mbits/sec 111 2.21 MBytes [ 4] 6.00-7.00 sec 36.2 MBytes 304 Mbits/sec 0 2.43 MBytes [ 4] 7.00-8.00 sec 37.5 MBytes 315 Mbits/sec 1 1.81 MBytes [ 4] 8.00-9.00 sec 27.5 MBytes 231 Mbits/sec 0 1.92 MBytes [ 4] 9.00-10.00 sec 31.2 MBytes 262 Mbits/sec 0 2.00 MBytes - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bandwidth Retr [ 4] 0.00-10.00 sec 239 MBytes 201 Mbits/sec 112 sender [ 4] 0.00-10.00 sec 238 MBytes 200 Mbits/sec receiver
rb4011 has the Annapurna Labs 21400 which is an ipsec beast. Do AES256CBC w/ SHA256.Interesting. Now I'll have to perform a ipsec benchmark later today. I'm curious to see the delta.
Not sure what he was testing with. I was doing SMB which may very well be slower over wireguard compared to a dedicated speed test which you optimize for the protocol.I'm not understanding these low speeds when the test emils did above was from a hAP ac² and was nearly 430 Mbps.
One must always remember that the weakest link rate will always determine the vpn throughput;Not sure what he was testing with. I was doing SMB which may very well be slower over wireguard compared to a dedicated speed test which you optimize for the protocol.
Unfortunately, I'm not familiar with CPU profiling if that's some sort of specific tool. I will say that the fact that CPU load is greater than 25% indicates to me that it is at least taking advantage of multiple cores.Could also have some debug code enabled or the compiler may be using conservative or non-threading flags.
Can you guys run cpu profile while you test?
I’m not entirely sure if we should expect multi-threading for a single tunnel. Could potentially get these speeds simultaneously on 4 separate tunnels too.
Can you tell us a little more about your traffic generator? What size UDP packets? What's the MTU you're using between the two routers that is handling the wireguard tunnel?There are many things that will have high impact on the throughput. Some of them:Here is another test with mipsbe hAP ac.
- proper testing method - you want to test the routers throughput as a device that is between two other devices that perform the test. Generating or processing the traffic on the same router will reduce the throughput because the device will have to do other things beside encrypting/decrypting and routing.
My test setup:
https://wiki.mikrotik.com/wiki/Manual:T ... mance_test- other configuration on the device - mostly connection tracking, firewall and QoS has the highest impact on the throughput of your router. No other configuration in my case.
- the kind of traffic used - TCP and UDP has different characteristics. In most cases UDP will be a lot faster. TCP shows its downside in high latency links due to small window sizes and packet losses. My test was performed in LAN network with UDP traffic.
/interface wireguard
add listen-port=xxx mtu=xxx name=wireguard1 private-key=\
"xxx"
/interface wireguard peers
add allowed-address=192.168.x.0/24,2xxx:::/64 endpoint=\
xxx:xxx interface=wireguard1 persistent-keepalive=25 \
public-key="xxx"
Maybe because interest in SOCKSv5 was absymal? The FR on the forum has 30 posts in 10 years where WG got >150 in a couple of months.First it was socks5, how long did that take?
WG was officially appeared in the Linux Kernel with 5.6 released in March 2020 - you seem to be very impatient. Running the client side implementation is not really a feasible option on a router.Now I've been waiting forever for wireguard to show up. Still not there in stable and that kernel can be a much more recent version.
It's good you're moving on if you're not satisfied, nobody is forcing you to use MT. Your entire post history is two posts with sarcastic complains, so I think you're on a wrong forum to ask for a purchase advice.So, I've had it, I'm moving on. What kind of router would ya'll recommend ?
100% agree.Maybe because interest in SOCKSv5 was absymal? The FR on the forum has 30 posts in 10 years where WG got >150 in a couple of months.First it was socks5, how long did that take?
WG was officially appeared in the Linux Kernel with 5.6 released in March 2020 - you seem to be very impatient. Running the client side implementation is not really a feasible option on a router.Now I've been waiting forever for wireguard to show up. Still not there in stable and that kernel can be a much more recent version.
The kernel version isn't old like it used to be. I'm sure they have a process now to deliver more recent updates looking at the progress in v7. However, don't expect a bleeding edge kernel on non-general purpose device.
It's good you're moving on if you're not satisfied, nobody is forcing you to use MT. Your entire post history is two posts with sarcastic complains, so I think you're on a wrong forum to ask for a purchase advice.So, I've had it, I'm moving on. What kind of router would ya'll recommend ?
I was trying to connect to an already live wireguard server. I wrote the address and port through the terminal, because WebFig does not have a Port field. But tcpdump on the server does not see calls to this port. But connection can established from the client machine BEHIND the mikrotik. I feel a little disappointedHas anyone been able to set mikrotik as a peer to another existing wireguard server?
I'm trying to set it up but I can't get it to work and in the current beta I can't get wireguard logging to better understand what is happening.
That sounds like a firewall issue to me. MikroTik doesn't inherently have a "behind" or "in front of". That only really comes into play when you have your firewall.I was trying to connect to an already live wireguard server. I wrote the address and port through the terminal, because WebFig does not have a Port field. But tcpdump on the server does not see calls to this port. But connection can established from the client machine BEHIND the mikrotik. I feel a little disappointedHas anyone been able to set mikrotik as a peer to another existing wireguard server?
I'm trying to set it up but I can't get it to work and in the current beta I can't get wireguard logging to better understand what is happening.
Yes. I had an old experimental setup: in a computer at home one peer, a port directed in the router, and I used to test from my laptop.Has anyone been able to set mikrotik as a peer to another existing wireguard server?
Do you have the CLI commands used? I tried to replicate the config I have in my Mikrotik in the Peer settings but I don't see anything in my server, no connection request. Also, checking in the Wireguard Documentation, when connecting to a server, the interface should not have a Listening Port setting. But in order create an interface in Mikrotik I do need to provide a Listening Port which kinda goes against the official Mikrotik documentation.Yes. I had an old experimental setup: in a computer at home one peer, a port directed in the router, and I used to test from my laptop.Has anyone been able to set mikrotik as a peer to another existing wireguard server?
Now I transfered my laptop configuration to my mikrotik travel router and it started working instantly.
I am very busy currently but I'm really looking forward to setting up a proper network...
What I mostly love is that it is not chatty at all. Basically the "dial-on-demand" characteristic of the ppp VPNs is built-in (unless you set up keepalive). And the connection is restored in just two one roundtrip.
It's already implemented and working quite nicely in 7.1beta2 :)+1 for Wireguard
:local resolvedIP [:resolve "<domain>"];
:local interface 0;
:local currentIP [/interface/wireguard/peers get $interface endpoint];
:if ([:find $currentIP $resolvedIP] < 0) do={
/log info "IP Changed to $resolvedIP"
/log info ($resolvedIP . ":51820");
/interface/wireguard/peers set $interface endpoint=($resolvedIP . ":51820");
/log info "Wireguard Peer $interface endpoint updated";
/interface/wireguard disable $interface
/interface/wireguard enable $interface
}
Hi, yes. I have a working peer of my Mikrotik ROS to a debian server running wireguard.Has anyone been able to set mikrotik as a peer to another existing wireguard server?
I'm trying to set it up but I can't get it to work and in the current beta I can't get wireguard logging to better understand what is happening.