I followed the guide here (minus the NAT/masquerade):
In short, everything is routing between ZT clients and my local subnet. What ISN’T working is, when clients are connected to both the local network and ZT, the route provided by ZT is always preferred.
For instance, my LAN is 10.0.0.0/24. I have a raspberry pi acting as a sort of relay node. It connects to ZT and I provide a static route in ZT back to the raspberry pi. The guide above suggests making that static route a /23 network so that it is less specific than the local one provided when the client is connected to both. This solution DOES NOT work. My static route is a /23, but the Android client always routes through the Raspberry Pi ZT IP address to access anything on the local 10.0.0.0/24 network.
Is there a better solution for this? I couldn’t find a solution, so I switched to Tailscale (very similar to ZT but based on Wireguard) only to discover that I HA e the same problem when using Tailscale. Is this a problem that only exists on Android? If so, is there a way around it?