Hello,
A bit late to the party, but having finished setting up all the wireguard tunnels between all routers, I decided that maybe it is time to also move the client machines to wireguard.
For quite a while now, all client machines (90% Windows, rest iOS and Android, no linux) were using IPSEC/IKE2 with certificates and RADIUS.
Having only one VPN solution sounded great, so I began testing with one location.
Everything works, the “reconnection” is mighty fast when changing networks, the speed through the tunnel is great but…
The problem
Wireguard (official client) on Windows machines can only be installed and setup under an administrator account (without certain tweaks).
At 1st, I thought this can’t be right. The user has to have access to an ON/OFF VPN switch.
On second thought, users not having access to public and preshared keys is nice.
Also, getting less headache from users forgetting to toggle the darn VPN switch before calling support to complain they cannot access network resources is also a bonus.
So 1st thought is out the window, No access to wireguard GUI for user accounts seems fine.
But the problem, at least when it comes to high speed LAN connections like accessing large files from the local file-server for example, is that I cannot find a way to bypass the tunnel when the client is in the office/behind the wireguard server.
Client connects physically (WIFI or ethernet) to local network, can access all required resources, but the traffic to the local resources goes through the tunnel.
In most places, I have decently speedy routers, but even those cannot sustain 1 Gb/s or more of WG traffic for several users.
I found some users on reddit suggesting some batch files to detect when inside the “home” network, but that looks very sketchy and prone to errors.
I guess the question is: anyone found a way to bypass the wireguard tunnel when a Windows client connects physically to the local network without the user having the ability to disable/enable the tunnel?
Topology example:
WG-server: 172.17.10.1
WG-client1: 172.17.10.2
WG-client2: 172.17.10.3
Mikrotik router private IP: 192.168.150.1
A file-server behind Mikrotik: 192.168.150.2
Machine of WG-client1 connects to local WiFi. Gets a DHCP of 192.168.150.3
Machine of WG-client1 also has wireguard activated with IP 172.17.10.2
WG-Client1 Allowed IP: 172.17.10.1/32, 192.168.150.0/24
For WG-Client1 to access the file-server at 192.168.150.2 it has to pass through the wireguard tunnel, consuming a lot of CPU on the router with high speed transfers
tracert 192.168.150.2
Tracing route to file-server [192.168.150.2]
over a maximum of 30 hops:
1 4 ms 2 ms 1 ms wg-server.tun [172.17.10.1]
2 2 ms 2 ms 1 ms file-server [192.168.150.2]
Trace complete.
Example of a single WG client on 1 Gb/s ethernet link doing a local speed test through the tunnel of a RB1100AHx4
https://streamable.com/mxlir5
Hope I am just missing something obvious.
