When can we expect Tailscale suppot on Beryl MT1300?

When can we expect Tailscale suppot on Beryl MT1300?

We don’t have plans to support tailscale on Beryl MT1300 yet, maybe we will put tailscale in plug-ins.

Is this because of QSDK?

Some already backported tailscale to OpenWrt 19.07, if it helps:

https://lanrat.github.io/openwrt-tailscale-repo/

thank you, helpful to know, but I am hoping for native UI integration in 4.x

I tried to DIY it by updating to 4.x and installing the opkgs and I could authenticate and connect to the tailscale network, however I lost connection to my beryl and my network lost internet. I power-cycled the beryl and then I could re-connect but none of the subnet routing worked.

Ok so I got it working, however it is unstable, it disconnects/re-connects on a approx 30 second cycle.
Steps (Install Glinet version 4.3.6, OpenWrt 22.03.4 r20123-38ccc47687 / LuCI openwrt-22.03 branch git-23.093.57104-ce20b4a)

  1. Applications → Plugins → search tailscale
  2. Install gl-sdk4-tailscale
  3. It should auto-install the other 3 search results
  4. Reboot router
  5. Applications → Enable Tailscale
  6. You will get a link to bind device, this didn’t work for me
  7. SSH into the router then run tailscale status, the binding link should appear, copy and paste it and authenticate
  8. Connection should now be working!

Mine cycles between connecting and connected every 5 seconds. I can ping exposed subnets over my tailnet.
Buuuuut I have 80% packet loss

@dengxinfa I would be interesting in your thoughts. Any idea what is causing the cyclical close and opening of the tailscale connection?

Running tailscale status repeatedly returns either a healthy list of peers or

root@GL-MT1300:~# tailscale status
# Health check:
#     - not in map poll

unexpected state: NoState

Logs during one of these cycles:

Wed Jul 19 18:19:12 2023 daemon.notice netifd: Network device 'tailscale0' link is down
Wed Jul 19 18:19:12 2023 daemon.notice netifd: Interface 'tailscale' has link connectivity loss
Wed Jul 19 18:19:12 2023 daemon.err tailscaled[8920]: 2023/07/19 17:19:12 monitor: ip rule deleted: {Family:2 DstLength:0 SrcLength:0 Tos:0 Table:254 Protocol:0 Scope:0 Type:1 Flags:0 Attributes:{Dst:<nil> Src:<nil> Gateway:<nil> OutIface:0 Priority:1310 Table:254 Mark:16711680 Pref:<nil> Expires:<nil> Metrics:<nil> Multipath:[]}}
Wed Jul 19 18:19:12 2023 daemon.err tailscaled[8920]: 2023/07/19 17:19:12 monitor: ip rule deleted: {Family:2 DstLength:0 SrcLength:0 Tos:0 Table:253 Protocol:0 Scope:0 Type:1 Flags:0 Attributes:{Dst:<nil> Src:<nil> Gateway:<nil> OutIface:0 Priority:1330 Table:253 Mark:16711680 Pref:<nil> Expires:<nil> Metrics:<nil> Multipath:[]}}
Wed Jul 19 18:19:12 2023 daemon.err tailscaled[8920]: 2023/07/19 17:19:12 monitor: ip rule deleted: {Family:2 DstLength:0 SrcLength:0 Tos:0 Table:0 Protocol:0 Scope:0 Type:7 Flags:0 Attributes:{Dst:<nil> Src:<nil> Gateway:<nil> OutIface:0 Priority:1350 Table:0 Mark:16711680 Pref:<nil> Expires:<nil> Metrics:<nil> Multipath:[]}}
Wed Jul 19 18:19:12 2023 daemon.err tailscaled[8920]: 2023/07/19 17:19:12 monitor: ip rule deleted: {Family:2 DstLength:0 SrcLength:0 Tos:0 Table:52 Protocol:0 Scope:0 Type:1 Flags:0 Attributes:{Dst:<nil> Src:<nil> Gateway:<nil> OutIface:0 Priority:1370 Table:52 Mark:0 Pref:<nil> Expires:<nil> Metrics:<nil> Multipath:[]}}
Wed Jul 19 18:19:12 2023 daemon.notice netifd: Interface 'tailscale' is now down
Wed Jul 19 18:19:12 2023 daemon.err tailscaled[8920]: 2023/07/19 17:19:12 flushing log.
Wed Jul 19 18:19:12 2023 daemon.err tailscaled[8920]: 2023/07/19 17:19:12 logger closing down
Wed Jul 19 18:19:13 2023 daemon.notice netifd: Interface 'tailscale' is disabled
Wed Jul 19 18:19:14 2023 daemon.err tailscaled[10264]: 2023/07/19 17:19:14 logtail started
Wed Jul 19 18:19:14 2023 daemon.err tailscaled[10264]: 2023/07/19 17:19:14 Program starting: v1.32.3-1 (OpenWrt), Go 1.19.9: []string{"/usr/sbin/tailscaled", "--port", "41641", "--state", "/etc/tailscale/tailscaled.state"}
Wed Jul 19 18:19:14 2023 daemon.err tailscaled[10264]: 2023/07/19 17:19:14 LogID: d0f0b52f46ed2d6cdf8fdf0361700c381f333778a6c43992d13e80436e66191c
Wed Jul 19 18:19:14 2023 daemon.err tailscaled[10264]: 2023/07/19 17:19:14 logpolicy: using system state directory "/var/lib/tailscale"
Wed Jul 19 18:19:14 2023 daemon.err tailscaled[10264]: 2023/07/19 17:19:14 wgengine.NewUserspaceEngine(tun "tailscale0") ...
Wed Jul 19 18:19:14 2023 daemon.notice netifd: Interface 'tailscale' is enabled
Wed Jul 19 18:19:14 2023 daemon.notice netifd: Interface 'tailscale' is setting up now
Wed Jul 19 18:19:14 2023 daemon.notice netifd: Interface 'tailscale' is now up
Wed Jul 19 18:19:14 2023 daemon.notice netifd: Network device 'tailscale0' link is up
Wed Jul 19 18:19:14 2023 daemon.notice netifd: Interface 'tailscale' has link connectivity
Wed Jul 19 18:19:14 2023 daemon.err tailscaled[10264]: 2023/07/19 17:19:14 router: disabling tunneled IPv6 due to system IPv6 config: disable_ipv6 is set
Wed Jul 19 18:19:14 2023 daemon.err tailscaled[10264]: 2023/07/19 17:19:14 router: mwan3 on openWRT detected, switching policy base priority to 1300
Wed Jul 19 18:19:14 2023 daemon.err tailscaled[10264]: 2023/07/19 17:19:14 dns: [rc=unknown ret=direct]
Wed Jul 19 18:19:14 2023 daemon.err tailscaled[10264]: 2023/07/19 17:19:14 dns: using *dns.directManager
Wed Jul 19 18:19:14 2023 daemon.err tailscaled[10264]: 2023/07/19 17:19:14 link state: interfaces.State{defaultRoute=wan ifs={br-lan:[192.168.0.1/24] wan:[82.15.178.77/23]} v4=true v6=false}
Wed Jul 19 18:19:14 2023 daemon.err tailscaled[10264]: 2023/07/19 17:19:14 magicsock: disco key = d:bd17980cecabe117
Wed Jul 19 18:19:14 2023 daemon.err tailscaled[10264]: 2023/07/19 17:19:14 Creating WireGuard device...
Wed Jul 19 18:19:14 2023 daemon.err tailscaled[10264]: 2023/07/19 17:19:14 Bringing WireGuard device up...
Wed Jul 19 18:19:14 2023 daemon.err tailscaled[10264]: 2023/07/19 17:19:14 Bringing router up...
Wed Jul 19 18:19:14 2023 daemon.err tailscaled[10264]: 2023/07/19 17:19:14 external route: up
Wed Jul 19 18:19:14 2023 daemon.err tailscaled[10264]: 2023/07/19 17:19:14 Clearing router settings...
Wed Jul 19 18:19:14 2023 daemon.err tailscaled[10264]: 2023/07/19 17:19:14 Starting link monitor...
Wed Jul 19 18:19:14 2023 daemon.err tailscaled[10264]: 2023/07/19 17:19:14 Engine created.
Wed Jul 19 18:19:14 2023 daemon.err tailscaled[10264]: 2023/07/19 17:19:14 monitor: RTM_NEWROUTE: src=, dst=82.15.178.0/23, gw=, outif=5, table=255
Wed Jul 19 18:19:14 2023 daemon.err tailscaled[10264]: 2023/07/19 17:19:14 Start
Wed Jul 19 18:19:14 2023 daemon.err tailscaled[10264]: 2023/07/19 17:19:14 using backend prefs for "_daemon": Prefs{ra=true dns=true want=true routes=[192.168.0.0/24] snat=true nf=on Persist{lm=, o=, n=[QimaN] u="HarvsG"}}
Wed Jul 19 18:19:15 2023 daemon.err tailscaled[10264]: 2023/07/19 17:19:15 Backend: logs: be:d0f0b52f46ed2d6cdf8fdf0361700c381f333778a6c43992d13e80436e66191c fe:
Wed Jul 19 18:19:15 2023 daemon.err tailscaled[10264]: 2023/07/19 17:19:15 control: client.Login(false, 0)
Wed Jul 19 18:19:15 2023 daemon.err tailscaled[10264]: 2023/07/19 17:19:15 control: doLogin(regen=false, hasUrl=false)
Wed Jul 19 18:19:15 2023 daemon.err tailscaled[10264]: 2023/07/19 17:19:15 health("overall"): error: not in map poll
Wed Jul 19 18:19:15 2023 daemon.err tailscaled[10264]: 2023/07/19 17:19:15 ipnserver: conn2: connection from userid 0; root has access
Wed Jul 19 18:19:15 2023 daemon.err tailscaled[10264]: 2023/07/19 17:19:15 Start
Wed Jul 19 18:19:15 2023 daemon.err tailscaled[10264]: 2023/07/19 17:19:15 control: client.Shutdown()
Wed Jul 19 18:19:15 2023 daemon.err tailscaled[10264]: 2023/07/19 17:19:15 control: client.Shutdown: inSendStatus=0
Wed Jul 19 18:19:15 2023 daemon.err tailscaled[10264]: 2023/07/19 17:19:15 control: mapRoutine: quit
Wed Jul 19 18:19:15 2023 daemon.err tailscaled[10264]: 2023/07/19 17:19:15 control: Client.Shutdown done.
Wed Jul 19 18:19:15 2023 daemon.err tailscaled[10264]: 2023/07/19 17:19:15 using backend prefs for "_daemon": Prefs{ra=true dns=true want=true routes=[192.168.0.0/24] snat=true nf=on Persist{lm=, o=, n=[QimaN] u="HarvsG"}}
Wed Jul 19 18:19:15 2023 daemon.err tailscaled[10264]: 2023/07/19 17:19:15 Backend: logs: be:d0f0b52f46ed2d6cdf8fdf0361700c381f333778a6c43992d13e80436e66191c fe:
Wed Jul 19 18:19:15 2023 daemon.err tailscaled[10264]: 2023/07/19 17:19:15 control: client.Login(false, 0)
Wed Jul 19 18:19:15 2023 daemon.err tailscaled[10264]: 2023/07/19 17:19:15 control: doLogin(regen=false, hasUrl=false)
Wed Jul 19 18:19:15 2023 daemon.err tailscaled[10264]: 2023/07/19 17:19:15 control: control server key from https://controlplane.tailscale.com: ts2021=[fSeS+], legacy=[nlFWp]
Wed Jul 19 18:19:15 2023 daemon.err tailscaled[10264]: 2023/07/19 17:19:15 control: RegisterReq: onode= node=[QimaN] fup=false
Wed Jul 19 18:19:15 2023 daemon.err tailscaled[10264]: 2023/07/19 17:19:15 control: creating new noise client
Wed Jul 19 18:19:16 2023 daemon.err tailscaled[10264]: 2023/07/19 17:19:16 control: RegisterReq: got response; nodeKeyExpired=false, machineAuthorized=true; authURL=false
Wed Jul 19 18:19:16 2023 daemon.err tailscaled[10264]: 2023/07/19 17:19:16 control: netmap: got new dial plan from control
Wed Jul 19 18:19:16 2023 daemon.err tailscaled[10264]: 2023/07/19 17:19:16 active login: HarvsG@github
Wed Jul 19 18:19:16 2023 daemon.err tailscaled[10264]: 2023/07/19 17:19:16 Switching ipn state NoState -> Starting (WantRunning=0xbf1b24, nm=true)
Wed Jul 19 18:19:16 2023 daemon.err tailscaled[10264]: 2023/07/19 17:19:16 magicsock: SetPrivateKey called (init)
Wed Jul 19 18:19:16 2023 daemon.err tailscaled[10264]: 2023/07/19 17:19:16 wgengine: Reconfig: configuring userspace WireGuard config (with 2/7 peers)
Wed Jul 19 18:19:16 2023 daemon.err tailscaled[10264]: 2023/07/19 17:19:16 wgengine: Reconfig: configuring router
Wed Jul 19 18:19:16 2023 daemon.err tailscaled[10264]: 2023/07/19 17:19:16 magicsock: home is now derp-8 (lhr)
Wed Jul 19 18:19:16 2023 daemon.err tailscaled[10264]: 2023/07/19 17:19:16 magicsock: endpoints changed: 82.15.178.77:41641 (stun), 192.168.0.1:41641 (local)
Wed Jul 19 18:19:16 2023 daemon.err tailscaled[10264]: 2023/07/19 17:19:16 magicsock: adding connection to derp-8 for home-keep-alive
Wed Jul 19 18:19:16 2023 daemon.err tailscaled[10264]: 2023/07/19 17:19:16 magicsock: 1 active derp conns: derp-8=cr0s,wr0s
Wed Jul 19 18:19:16 2023 daemon.err tailscaled[10264]: 2023/07/19 17:19:16 control: NetInfo: NetInfo{varies=false hairpin=true ipv6=false udp=true icmpv4=false derp=#8 portmap= link=""}
Wed Jul 19 18:19:16 2023 daemon.err tailscaled[10264]: 2023/07/19 17:19:16 derphttp.Client.Connect: connecting to derp-8 (lhr)
Wed Jul 19 18:19:16 2023 daemon.err tailscaled[10264]: 2023/07/19 17:19:16 magicsock: derp-8 connected; connGen=1
Wed Jul 19 18:19:16 2023 daemon.err tailscaled[10264]: 2023/07/19 17:19:16 health("overall"): ok
Wed Jul 19 18:19:16 2023 daemon.err tailscaled[10264]: 2023/07/19 17:19:16 monitor: RTM_NEWROUTE: src=, dst=10.10.0.0/24, gw=, outif=39, table=52
Wed Jul 19 18:19:16 2023 daemon.err tailscaled[10264]: 2023/07/19 17:19:16 monitor: RTM_NEWROUTE: src=, dst=192.168.0.0/24, gw=, outif=39, table=52
Wed Jul 19 18:19:16 2023 daemon.err tailscaled[10264]: 2023/07/19 17:19:16 monitor: RTM_NEWROUTE: src=, dst=192.168.1.0/24, gw=, outif=39, table=52
Wed Jul 19 18:19:16 2023 daemon.err tailscaled[10264]: 2023/07/19 17:19:16 wgengine: Reconfig: configuring DNS
Wed Jul 19 18:19:16 2023 daemon.err tailscaled[10264]: 2023/07/19 17:19:16 dns: Set: {DefaultResolvers:[10.10.0.1 192.168.0.28] Routes:{hippo-banjo.ts.net.:[] ts.net.:[199.247.155.53 2620:111:8007::53]}+65arpa SearchDomains:[hippo-banjo.ts.net.] Hosts:8}
Wed Jul 19 18:19:16 2023 daemon.err tailscaled[10264]: 2023/07/19 17:19:16 dns: Resolvercfg: {Routes:{.:[10.10.0.1 192.168.0.28] ts.net.:[199.247.155.53 2620:111:8007::53]} Hosts:8 LocalDomains:[hippo-banjo.ts.net.]+65arpa}
Wed Jul 19 18:19:16 2023 daemon.err tailscaled[10264]: 2023/07/19 17:19:16 dns: OScfg: {Nameservers:[100.100.100.100] SearchDomains:[hippo-banjo.ts.net.] MatchDomains:[] Hosts:[]}
Wed Jul 19 18:19:16 2023 daemon.err tailscaled[10264]: 2023/07/19 17:19:16 Switching ipn state Starting -> Running (WantRunning=0xbf1b24, nm=true)
Wed Jul 19 18:19:16 2023 daemon.err tailscaled[10264]: 2023/07/19 17:19:16 wgengine: Reconfig: configuring userspace WireGuard config (with 3/7 peers)
Wed Jul 19 18:19:16 2023 daemon.err tailscaled[10264]: 2023/07/19 17:19:16 peerapi: serving on http://100.92.1.135:43268
Wed Jul 19 18:19:16 2023 daemon.err tailscaled[10264]: 2023/07/19 17:19:16 peerapi: failed to do peerAPI listen, harmless (netstack available) but error was: listen tcp6 [fd7a:115c:a1e0:ab12:4843:cd96:625c:187]:0: bind: cannot assign requested address
Wed Jul 19 18:19:16 2023 daemon.err tailscaled[10264]: 2023/07/19 17:19:16 peerapi: serving on http://[fd7a:115c:a1e0:ab12:4843:cd96:625c:187]:1
Wed Jul 19 18:19:16 2023 daemon.err tailscaled[10264]: 2023/07/19 17:19:16 ipnserver: conn2: ReadMsg: read unix /var/run/tailscale/tailscaled.sock->@: read: connection reset by peer
Wed Jul 19 18:19:16 2023 daemon.err tailscaled[10264]: 2023/07/19 17:19:16 Accept: ICMPv4{100.92.1.135:0 > 100.107.99.123:0} 84 ok out
Wed Jul 19 18:19:17 2023 daemon.err tailscaled[10264]: 2023/07/19 17:19:17 control: netmap: got new dial plan from control
Wed Jul 19 18:19:17 2023 daemon.err tailscaled[10264]: 2023/07/19 17:19:17 tstun: [unexpected] received self disco out packet over tstun; dropping
Wed Jul 19 18:19:17 2023 user.notice firewall: Reloading firewall due to ifup of tailscale (tailscale0)
Wed Jul 19 18:19:17 2023 daemon.err tailscaled[10264]: 2023/07/19 17:19:17 Accept: ICMPv4{100.92.1.135:0 > 100.107.99.123:0} 84 ok out
Wed Jul 19 18:19:18 2023 daemon.err tailscaled[10264]: 2023/07/19 17:19:18 Accept: ICMPv4{100.92.1.135:0 > 100.107.99.123:0} 84 ok out
Wed Jul 19 18:19:19 2023 daemon.err tailscaled[10264]: 2023/07/19 17:19:19 monitor: RTM_DELROUTE: src=82.15.178.77/0, dst=, gw=82.15.178.1, outif=5, table=52
Wed Jul 19 18:19:19 2023 daemon.err tailscaled[10264]: 2023/07/19 17:19:19 [RATELIMIT] format("monitor: %s: src=%v, dst=%v, gw=%v, outif=%v, table=%v")
Wed Jul 19 18:19:20 2023 user.notice mwan3[10937]: Execute ifup event on interface tailscale (tailscale0)
Wed Jul 19 18:19:20 2023 daemon.info dnsmasq-dhcp[1]: DHCPREQUEST(br-lan) 192.168.0.114 e4:f0:42:22:b8:24
Wed Jul 19 18:19:20 2023 daemon.info dnsmasq-dhcp[1]: DHCPACK(br-lan) 192.168.0.114 e4:f0:42:22:b8:24 Google-Home-Mini
Wed Jul 19 18:19:20 2023 user.notice mwan3[10937]: Starting tracker on interface tailscale (tailscale0)
Wed Jul 19 18:19:22 2023 daemon.err tailscaled[10264]: 2023/07/19 17:19:22 magicsock: disco: node [rTK7t] d:4075b15ea236c745 now using 140.238.65.88:41641
Wed Jul 19 18:19:23 2023 daemon.err tailscaled[10264]: 2023/07/19 17:19:23 magicsock: disco: node [uuiIl] d:eb8384b75d4ac2d7 now using 132.145.77.190:41641
Wed Jul 19 18:19:24 2023 user.info mwan3rtmon[4483]: Detect rtchange event.
Wed Jul 19 18:19:26 2023 daemon.info dnsmasq-dhcp[1]: DHCPREQUEST(br-lan) 192.168.0.114 e4:f0:42:22:b8:24
Wed Jul 19 18:19:26 2023 daemon.info dnsmasq-dhcp[1]: DHCPACK(br-lan) 192.168.0.114 e4:f0:42:22:b8:24 Google-Home-Mini
Wed Jul 19 18:19:26 2023 daemon.err tailscaled[10264]: 2023/07/19 17:19:26 tailscaled got signal terminated; shutting down
Wed Jul 19 18:19:26 2023 daemon.err tailscaled[10264]: 2023/07/19 17:19:26 control: client.Shutdown()
Wed Jul 19 18:19:26 2023 daemon.err tailscaled[10264]: 2023/07/19 17:19:26 control: client.Shutdown: inSendStatus=0
Wed Jul 19 18:19:26 2023 daemon.err tailscaled[10264]: 2023/07/19 17:19:26 control: mapRoutine: quit
Wed Jul 19 18:19:26 2023 daemon.err tailscaled[10264]: 2023/07/19 17:19:26 control: Client.Shutdown done.
Wed Jul 19 18:19:26 2023 daemon.err tailscaled[10264]: 2023/07/19 17:19:26 magicsock: closing connection to derp-8 (conn-close), age 10s
Wed Jul 19 18:19:26 2023 daemon.err tailscaled[10264]: 2023/07/19 17:19:26 magicsock: 0 active derp conns
Wed Jul 19 18:19:26 2023 daemon.notice netifd: Network device 'tailscale0' link is down

Running ps | grep tail repeatedly:

root@GL-MT1300:~# ps | grep tail
12661 root      667m S    /usr/sbin/tailscaled --port 41641 --state /etc/tailscale/tailscaled.state
13822 root      1316 S    grep tail

As it stops working:

root@GL-MT1300:~# ps | grep tail
12661 root      667m S    /usr/sbin/tailscaled --port 41641 --state /etc/tailscale/tailscaled.state
13839 root      1336 S    {gl_tailscale} /bin/sh /usr/bin/gl_tailscale restart
13841 root      1512 S    {tailscale} /bin/sh /etc/rc.common /etc/init.d/tailscale restart
13888 root      666m R    /usr/sbin/tailscaled --cleanup
13920 root      1316 S    grep tail

Either appropriately or inappropriately something is calling /bin/sh /usr/bin/gl_tailscale restart

So the cycling issue was due to a conflicting interface I had set up when I tried to do tailscale manually. Now im having this problem: Tailscale cannot reach subnets on other devices - #7 by jsr

Fixed. I edited the first option


And added covered devices: tailscale

I got it working fully! Link :point_right: How to get Tailscale working on the Beryl MT-1300!