Tailscale doesn't reconnect after WAN failover on upstream router

Viewed 132

QUESTION:

Is there a way to trigger Tailscale to restart in a scenario like the following so that packets again flow to a remote Tailscale subnet over a backup ISP connection?


Scenario: Tailscale does not reconnect after my upstream router fails over to its backup ISP connection.

Prior to failover, local client machines can ping public IP addresses -- 8.8.8.8 for example -- as well as private IP addresses on the other side of a Tailscale subnet router -- 10.0.0.2 for example.

After failover, local clients regain public Internet access, but the private network on the other side of the Tailscale subnet router remains unreachable. The remote Tailscale subnet never becomes reachable again, even after waiting over 15 minutes.

The upstream router fails back after plugging the local WAN1 ethernet cable back in. Clients can still access the public Internet and can again reach the remote Tailscale subnet.


Test configuration:

  • Tailscale is running on a local Linux machine with IP forwarding enabled.
    • IP address is 192.168.0.2.
    • Default route is via 192.168.0.1.
    • Tailscale flags:
      • --advertise-routes=192.168.0.0/24
      • --snat-subnet-routes=false
      • --accept-routes
  • Local upstream router has two WAN ports configured for failover only.
    • WAN1 connects to a cable modem in bridge mode.
    • WAN2 connects to an LTE router in bridge mode.
    • LAN IP address is 192.168.0.1.
    • Static route to 10.0.0.0/8 via 192.168.0.2.
  • Tailscale is running on a remote EC2 instance in an AWS VPC with IP forwarding enabled.
    • IP address is 10.0.0.2.
    • Default route is via 10.0.0.1.
    • Tailscale flags:
      • --advertise-routes=10.0.0.0/8
      • --snat-subnet-routes=false
      • --accept-routes
1 Answers

tailscaled generally reacts to linkchange events, like links going up or down, and figures out which interface has the default route. If both interfaces remain up and both interfaces have a default route, it may not know which one to use.

Related