I've just tested your patch and that works! I no longer see the errors. I don't have a IPv6 environment to test with at the moment, so I cannot verify that case. On Wed, Sep 25, 2019 at 7:25 PM Jason A. Donenfeld wrote: > On Wed, Sep 25, 2019 at 11:06:18AM +1000, Brassy Panache wrote: > > I have a kernel without IPv6 support. I've noticed when running: > > > > $ wg-quick down vpn > > > > > > I receive the following errors: > > > > [#] ip -4 rule delete table 51820 > > [#] ip -4 rule delete table main suppress_prefixlength 0 > > RTNETLINK answers: Address family not supported by protocol > > Dump terminated > > RTNETLINK answers: Address family not supported by protocol > > Dump terminated > > [#] ip link delete dev vpn > > [#] resolvconf -d vpn -f > > > > > > This is caused by the assumption that the command: > > > > $ ip -6 rule show > > > > > > will run on the system. I have made a change to my local wg-quick script > > which first tests if the command runs successfully before it clears the > > rules. The same should probably also be done prior to running the IPv4 > > version of the command. > > Would this work? > > diff --git a/src/tools/wg-quick/linux.bash b/src/tools/wg-quick/linux.bash > index e690944d..612ecd77 100755 > --- a/src/tools/wg-quick/linux.bash > +++ b/src/tools/wg-quick/linux.bash > @@ -102,10 +102,10 @@ del_if() { > while [[ $(ip -4 rule show) == *"from all lookup main > suppress_prefixlength 0"* ]]; do > cmd ip -4 rule delete table main > suppress_prefixlength 0 > done > - while [[ $(ip -6 rule show) == *"lookup $table"* ]]; do > + while [[ $(ip -6 rule show 2>/dev/null) == *"lookup > $table"* ]]; do > cmd ip -6 rule delete table $table > done > - while [[ $(ip -6 rule show) == *"from all lookup main > suppress_prefixlength 0"* ]]; do > + while [[ $(ip -6 rule show 2>/dev/null) == *"from all > lookup main suppress_prefixlength 0"* ]]; do > cmd ip -6 rule delete table main > suppress_prefixlength 0 > done > fi > >