wg-quick up (on linux) fails in case of several default routes
wireguard at spam-free.eu
Tue Oct 6 15:33:29 CEST 2020
two default routes with diffenrent metrics (the second being the failover in
case the lower metric connection goes down).
For good reasons wg-quick will setup an individual route to the wg server (for
the possibility of changing th default route afterwards).
However wg-quick fails:
wg-quick up wg_client
[#] ip link add wg_client type wireguard
[#] wg setconf wg_client /dev/fd/63
[#] ip -4 address add 10.0.129.200/24 dev wg_client
[#] ip link set mtu 1420 up dev wg_client
[#] GATEW=$(ip route list 0.0.0.0/0|sed -n 's/.* via \(.*\) dev.*/\1/p');route
add s1.spam-free.eu gw $GATEW
SIOCADDRT: No such device
[#] ip link delete dev wg_client
******log end ***********
The point is, that GATEW is NOT a single address but rather a list of ip
addresses and the command setting the route fails.
Instead one should always run through ALL default gateways and set individual
routes to the server through ALL the default gateways with the same metric as
the respective default route.
This will then also work in case the failover route is in operation.
Of course, tearing down the client should delete ALL individual routes to the
Hope this clarifies is a bit.
On 06/10/2020 14:20, Jason A. Donenfeld wrote:
> On Mon, Oct 5, 2020 at 3:51 PM Chris <wireguard at spam-free.eu> wrote:
>> wg-quick tries to set the route to the wg server through the default gateway.
> On Linux? It shouldn't be iterating default gateways at all, but
> rather using suppress_prefix. Can you provide more technical
> information about what you're seeing and maybe a patch to fix the
More information about the WireGuard