Hi, thanks for the reply.
I think the key difference is that my setup is not using the BE3600 as a classic Tailscale Exit Node for other Tailscale clients, but instead as a gateway for non-Tailscale LAN clients (my work laptop does not and cannot run Tailscale - and I use my router as a travel router so I can use my work laptop while being on the run).
To clarify my topology:
-
Tailscale runs only on the GL-BE3600 (and services at home such as proxmox hosts, home assistant etc)
-
My work laptop is a regular LAN client behind the router (no Tailscale client, no routes on the laptop) - I lack admin rights on this one so it is what it is…
-
I have a separate Tailscale node at home advertising my home LAN subnets
-
The BE3600 is configured with --accept-routes and uses Tailscale purely as an egress tunnel
-
From the laptop’s perspective, this is just a normal NAT router
In this model, the traffic flow is:
Laptop (LAN client)
→ GL-BE3600 LAN
→ tailscale0 (NAT + forwarding required)
→ home subnet via another Tailscale node
This is different from the Exit Node scenario you describe, where:
-
The BE3600 advertises its LAN subnet
-
Other Tailscale clients route traffic into the BE3600
-
Forwarding is primarily tailscale0 → wan/lan
In my case, the critical requirement is LAN → tailscale0 forwarding with masquerading, because the laptop is not a Tailscale participant.
When tailscale0 is set to:
-
forward = REJECT
-
masquerading = OFF
the following happens:
-
Tailscale itself continues to work (router-originated traffic works)
-
Subnet routes are accepted correctly
-
LAN client traffic fails, because:
This results in:
Setting:
creates the required NAT boundary so that my work laptop can use the Tailscale tunnel transparently.
This is why those settings are necessary in my case, but not in the Exit Node example you shared.
Here is my issue…
After authenticating via a captive portal, the firmware appears to reclassify tailscale0 into a more restrictive “VPN client” profile, resetting:
-
forward → REJECT
-
masq → OFF
That posture makes sense for a traditional VPN client model, but it breaks the “LAN-as-gateway” use case described above.
Once the zone is reverted, restarting Tailscale alone is not sufficient - the zone policy itself must be corrected.
In short…
-
The default configuration works correctly for:
-
My use case is different:
- BE3600 is a Tailscale gateway for non-Tailscale LAN clients (my work laptop specifically)
-
In that scenario:
-
Captive portal handling appears to reset this zone to a restrictive default, which is the root of the issue
So I am just wondering how I can avoid having to go in and adjusting the forward to ACCEPT and masquerading to ON each time I have been signing in over a captive portal.
Thanks again for looking into this.