GL-MT1300 (Beryl) - Tailscale not working with Exit Node

Hi :wave:,

Introduction

I have recently acquired a Beryl travel router, and so far I am happy with it! I have been wanting to setup WireGuard, but since my ISP is blocking/filtering traffic, I have resolved to use Tailscale on the stock OpenWRT of the Beryl. But whereas the router + clients are able ping/get pinged to/from other machines in the Tailscale network, I am not able to setup the router to use an Exit Node.


Network Overview

beryl-openwrt-tailscale-network-diagram.drawio

  • Beryl Subnet: 192.168.8.0/24
  • Beryl IP: 192.168.8.1

Tailscale on OpenWRT

As pointed in this post, there’s some policy incompatibility between Tailscale and mwan3. Thankfully, a fix was provided by Ryanc, and it helped me to rebuild a patched version of release 1.24.2 (mipsle).

Then, I uploaded the tailscale and tailscaled binaries to the /tmp folder of the Beryl. Inspired by this project.

Finally, I launched tailscaled, then tailscale from /tmp.

The application runs:

root@GL-MT1300:/tmp# ./tailscale-1.24.2_mipsle version
1.24.2
  tailscale commit: dce2409b15837f30885405b8b1d27e7b7fd6bf7a-dirty
  go version: go1.18.1-ts710a0d8

Let’s connect from Beryl:

root@GL-MT1300:/tmp# ./tailscale-1.24.2_mipsle up --advertise-routes=192.168.8.0/24

Connection from RPi 4:

pi@raspberry$ sudo tailscale up --accept-routes --advertise-exit-node

Of course, configurations are approved and enabled in the Tailscale portal.


Connectivity Check

Beryl -> RPi 4
root@GL-MT1300:/tmp# ./tailscale-1.24.2_mipsle ping raspberrypi
pong from raspberrypi (100.x.x.13) via 192.168.1.76:41641 in 4ms

root@GL-MT1300:/tmp# ping 100.x.x.13
PING 100.x.x.13 (100.x.x.13): 56 data bytes
--- 100.x.x.13 ping statistics ---
4 packets transmitted, 4 packets received, 0% packet loss
RPi 4 -> Beryl
pi@raspberrypi:~ $ tailscale ping gl-mt1300
pong from gl-mt1300 (100.x.x.101) via 192.168.1.79:49724 in 4ms

pi@raspberrypi:~ $ ping 100.x.x.101
PING 100.x.x.101 (100.x.x.101) 56(84) bytes of data.
--- 100.x.x.101 ping statistics ---
10 packets transmitted, 10 received, 0% packet loss

Issue

Connectivity with the router is lost (SSH + GUI) when trying to setup an Exit Node with Tailscale on the Beryl with stock OpenWRT. Hence, all traffic is interrupted and the purpose of having all Beryl clients Internet traffic routed to the RPi 4 is not met.

It happens when I am running the following command:

root@GL-MT1300:/tmp# ./tailscale-1.24.2_mipsle up --advertise-routes=192.168.8.0/24 --exit-node=100.x.x.13

Here’s a screen capture of the CLIs when the issue occurs after running the command above:

Capture: CLI

  1. Trying to set the Exit Node with tailscale.
  2. Instruction received by tailscaled.
    Crash.
  3. Unable to ping the Beryl machine after the command execution.

To restore the access to the router, I have to plug out the power-supply, then plug it in. I have also tried pressing the reset button once or for three seconds does not help. Pressing for 10 helps but I have to setup everything from scratch.


That’s all for the background explanation. If you have any questions, please let me know and I’ll try to answer as best I can :slight_smile:

Does anybody have had that issue, and knows a fix maybe to have the Exit Node setup working?

Thank you very much!

G.

howd you fix this?howd you fix this?howd you fix this?howd you fix this?howd you fix this?