wg-quick broken by iproute2 update

Eddie stunnel at attglobal.net
Thu Jun 28 04:47:40 CEST 2018


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 at oc8361880017 ~]$ sudo ip rule list
0:    from all lookup local
32766:    from all lookup main
32767:    from all lookup default
[eddieath at oc8361880017 ~]$
[eddieath at 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 at oc8361880017 ~]$
[eddieath at 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 at 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 at 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 at 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 at 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 at oc8361880017 ~]$ sudo ip rule list
0:    from all lookup local
32766:    from all lookup main
32767:    from all lookup default
[eddieath at oc8361880017 ~]$ sudo ip -4 rule add table main 
suppress_prefixlength 0
[eddieath at 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 at oc8361880017 ~]$

Cheers.



More information about the WireGuard mailing list