Conflicting gateways for ZT and local network on ZT 1.6.6 Arch ARM

Weird situation, when joining a Zerotier network with a managed route from Zerotier to Physical the local network gets two gateways 0.0.0.0 and with the ZT one being higher priority.

[root@pikvm ~]# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface

192.168.1.0 10.241.1.1 255.255.255.0 UG 0 0 0 ztinterface
192.168.1.0 0.0.0.0 255.255.255.0 U 1024 0 0 eth0

the ztinterface route is pushed from the ZeroTier Managed Routes. But this device is already on that target network 192.168.1.0/24. Non-ZT devices on 192.168.1.0/24 can ping and do an initial SSH connection but other services (HTTP, HTTPS) are lost. From ZT devices on 192.168.1.0/24 it is possible to connect via ZT 10.241.1.1 device.

Tried doing an ‘ip route del’ and it briefly fixed the issue until the client pulled the managed route again.

This appears to happen to my pikvm which is stuck on 1.6.6 (pacman for ArchLinux ARM highest available release). When I look at Armbian or Synology/Docker the duplicated gateway issue does not exist. Read through the Release Notes but did not see any such bug fix.

So far I have two workarounds:

  1. leave ZT network on the pikvm / ZT 1.6.6 device and use another ZT device to connect
  2. stay on ZT network but remove the Managed Route from Zerotier

Hoping this is an already fixed bug that will go away when the package gets updated.

there is one more workaround,
make the zerotier manged route 192.168.1.0/23
The OS will prefer the more specific /24 when it has both.

It’s not fixed in any upcoming release FYI. I don’t know of a good solution that solves everyone’s use case.

1 Like

Thanks for the tip. When 192.168.1.0/23 is added it appears as 192.168.0.0/23 which avoids the overlap in routing but still allows the connection.

192.168.0.0 10.241.1.1 255.255.254.0 UG 0 0 0 ztinterface
192.168.1.0 0.0.0.0 255.255.255.0 U 1024 0 0 eth0

1 Like