-------- Forwarded Message --------
Subject:        Re: wg-quick broken by iproute2 update
Date:   Thu, 28 Jun 2018 11:53:59 +0200
From:   Silvan Nagl <[email protected]>
To:     [email protected]



Hi,

since i had to debug this problem already i can tell you it is not
iproute2 causing the problem.
The main problem is that the current standard kernel of CentOS simple
does not support the handling of "suppress_prefixlength".
Iproute2 supports it since it does not return any error while adding so
it had to be the kernel causing problems.
In essence Red Hats official answer was "It isn't a bug, RHEL7 simple
does not support it".
If you sill want to fix your problem just upgrade your kernel to
long-term or mainline.

Regards,
Silvan

On 06/28/2018 04:47 AM, Eddie wrote:
Hi,

I just updated both a RHEL and a CentOS system from 7 -> 7.5. Following this, when running wg-quick, the routing tables are not updated correctly.  Both systems are running iproute.x86_64-4.11.0-14.el7, but from different repositories and are definitely different builds as they install to different sbin libraries.

Here's what I'm seeing:

[eddieath@oc8361880017 ~]$ sudo ip rule list
0:    from all lookup local
32766:    from all lookup main
32767:    from all lookup default
[eddieath@oc8361880017 ~]$
[eddieath@oc8361880017 ~]$ sudo wg-quick up wg0
[#] ip link add wg0 type wireguard
[#] wg setconf wg0 /dev/fd/63
[#] ip address add 192.168.0.11/24 dev wg0
[#] ip link set mtu 1420 dev wg0
[#] ip link set wg0 up
[#] ip -4 route add 0.0.0.0/0 dev wg0 table 51820
[#] ip -4 rule add not fwmark 51820 table 51820
[#] ip -4 rule add table main suppress_prefixlength 0
[eddieath@oc8361880017 ~]$
[eddieath@oc8361880017 ~]$ sudo ip rule list
0:    from all lookup local
32764:    from all lookup main
32765:    not from all fwmark 0xca6c lookup 51820
32766:    from all lookup main
32767:    from all lookup default
[eddieath@oc8361880017 ~]$

Note the "suppress_prefixlength 0" has been dropped, which really breaks the routing with a "normal" main ahead of table 51820. Following this, when running the "down", the duplicated table is not removed, as there is no match searching for "suppress_prefixlength 0":

[eddieath@oc8361880017 ~]$ sudo wg-quick down wg0
[#] wg showconf wg0
sync: ignoring all arguments
[#] ip -4 rule delete table 51820
[#] ip link delete dev wg0
[eddieath@oc8361880017 ~]$ sudo ip rule list
0:    from all lookup local
32764:    from all lookup main
32766:    from all lookup main
32767:    from all lookup default
[eddieath@oc8361880017 ~]$

I've confirmed this on both systems and also that the behaviour is purely within ip, and not anything that wg-quick is doing:

[eddieath@oc8361880017 ~]$ sudo ip rule list
0:    from all lookup local
32766:    from all lookup main
32767:    from all lookup default
[eddieath@oc8361880017 ~]$ sudo ip -4 rule add table main suppress_prefixlength 0
[eddieath@oc8361880017 ~]$ sudo ip rule list
0:    from all lookup local
32765:    from all lookup main
32766:    from all lookup main
32767:    from all lookup default
[eddieath@oc8361880017 ~]$

Cheers.

_______________________________________________
WireGuard mailing list
[email protected]
https://lists.zx2c4.com/mailman/listinfo/wireguard

_______________________________________________
WireGuard mailing list
[email protected]
https://lists.zx2c4.com/mailman/listinfo/wireguard

Reply via email to