Communityoplossing

Tailscale native uitvoeren op ZimaOS met een communitymodule voor systemd-sysext

A May-July 2026 community project packaging Tailscale as a ZimaOS systemd-sysext instead of Docker. It enabled host-level TUN, subnet-router and exit-node use, then fixed a real reboot-order bug in v1.0.1; by July the author reported IPv6 tunneling working on the newer ZimaOS kernel.

De normale Tailscale-Docker-app is handig, maar een gecontaineriseerde VPN gedraagt zich niet altijd als Tailscale dat rechtstreeks op een Linux-host is geïnstalleerd. De oorspronkelijke auteur wilde een volwaardige hostdaemon met een echt TUN-apparaat, zodat ZimaOS zelf als subnetrouter of exit-node kon fungeren en bronnen kon koppelen die via het tailnet bereikbaar zijn.

Omdat ZimaOS een apparaatstijl-rootbestandssysteem met alleen-lezen is en geen conventionele apt install tailscale pad verpakte de auteur Tailscale als een systemd-sysext extensie. Dit is een communityproject en geen door IceWhale ondersteund Tailscale-pakket; de opdrachten en levenscyclus moeten dan ook als zodanig worden aangeduid.

Waarom Tailscale op de host uitvoeren?

De oorspronkelijke auteur beschreef Docker-netwerken in de userspace als voldoende voor gewone connectiviteit, maar onhandig voor routering op hostniveau. Een native daemon kan het kernel-TUN-apparaat rechtstreeks gebruiken en integreren met systemctl, IP-doorsturing, subnetroutes en gedrag als exit-node.

Waarom systemd-sysext geschikt is voor ZimaOS

systemd-sysext legt extra bestanden over locaties zoals /usr tijdens runtime zonder de onveranderlijke basisimage te wijzigen. De auteur spiegelde de upstream Buildroot-indeling van Tailscale en sloeg de permanente authenticatiestatus op onder /DATA/AppData/tailscale/.

Het project biedt een installatiescript voor de host

De quickstartprocedure van de communityrepository kloont het project, voert het installatieprogramma uit met sudo en meldt vervolgens aan met tailscale up. Omdat dit code van derden is die als root wordt uitgevoerd, moet je de repository en releasegeschiedenis controleren voordat je de code uitvoert.

Lees het huidige sysext-project en de bijgewerkte installatie-instructies in plaats van een oude forumversie te kopiëren.

Authenticatiestatus staat buiten de wegwerpbare extensie

Het project bewaart de node-status onder /DATA/AppData/tailscale/. Daardoor blijft de Tailscale-identiteit behouden wanneer de .raw sysext-bestand.

Na de eerste release werd een echte herstartbug gevonden

Een gebruiker meldde dat tailscaled startte na een herstart niet. De projectauteur reproduceerde dit en legde de race uit: multi-user.target serviceafhankelijkheden oploste vóór systemd-sysext.service de extensie al had samengevoegd, waardoor de service-unit nog niet bestond toen systemd het doel opbouwde.

v1.0.1 voegde een watchdogtimer toe

De auteur loste de opstart-race op met een kleine timer en een oneshot-service die op de permanente root onder /etc/systemd/system/Deze wordt kort na het opstarten uitgevoerd en start tailscaled zodra de sysext-overlay aanwezig is.

De oorspronkelijke auteur meldde dat de oplossing na een echte herstart was geverifieerd.

IP-doorstuurinstellingen waren een afzonderlijk persistentievraagstuk

De discussie vroeg ook of sysctl-instellingen voor subnetrouters een herstart overleven. De auteur legde uit dat ZimaOS de /etc via een overlay die wordt ondersteund door permanente opslag, zodat de configuratie onder /etc/sysctl.d/ blijft behouden en wordt opnieuw toegepast.

Deze doorstuurinstellingen zijn nodig voor subnet-routering of gebruik als exitnode, maar niet voor een gewone Tailscale-client.

De IPv6-beperking veranderde met de ZimaOS-kernel

De oorspronkelijke module uit mei 2026 documenteerde ontbrekende kernelopties voor IPv6-beleidsroutering op ZimaOS 1.6.1/kernel 6.12.25, waardoor Tailscale getunnelde IPv6 uitschakelde.

Op 30 juli werkte de auteur de thread bij omdat de nieuwere kernel van IceWhale de vereiste IPv6-mogelijkheden bood. De huidige projectrepository verifieert IPv6-werking in het tailnet op ZimaOS 1.7.0/kernel 6.18.9.

Voer het installatieprogramma opnieuw uit na ZimaOS-updates

Het project is ontworpen om de sysext opnieuw op te bouwen met officiële statische Tailscale-binaries en de authenticatiestatus afzonderlijk te bewaren. De repository raadt momenteel aan het installatieprogramma opnieuw uit te voeren na een ZimaOS-upgrade.

Behandel een communitymodule op rootniveau als systeemsoftware

Deze module draait rechtstreeks op de NAS-host en het installatieprogramma heeft verhoogde rechten. Controleer de broncode, hashes, het updategedrag en het verwijdergedrag voordat je deze implementeert op een systeem met belangrijke gegevens.

Het project is opnieuw geverifieerd op ZimaOS 1.7.0

De huidige repository meldt een geslaagde end-to-endtest op ZimaOS 1.7.0 met kernel 6.18.9, inclusief persistentie na herstarts en werkende IPv6 in het tailnet. Dat is sterker bewijs dan het oorspronkelijke bericht uit mei 2026, dat was ontwikkeld voor ZimaOS 1.6.1.

Docker en native sysext lossen verschillende behoeften op

Als je alleen bepaalde applicaties via Tailscale bereikbaar wilt maken, kan de Docker-route eenvoudiger zijn en blijven wijzigingen aan de host beperkt. De sysext-route is aantrekkelijk wanneer de ZimaOS-host zelf tailnet-resources moet koppelen, LAN-subnetten moet adverteren of als exitnode moet fungeren.

Vervang een werkende Docker-installatie niet alleen omdat de native aanpak bestaat. Kies op basis van de vraag of routering op hostniveau daadwerkelijk nodig is.

Verwijderen en volledig wissen zijn verschillende bewerkingen

Het communityproject maakt bewust onderscheid tussen het verwijderen van de sysext en het verwijderen van de Tailscale-status. Bij de normale verwijdering kunnen de permanente nodegegevens behouden blijven, terwijl bij een volledige verwijdering ook de statusmap wordt verwijderd. Dat onderscheid is belangrijk als je opnieuw wilt installeren zonder een nieuwe tailnet-identiteit aan te maken.

De boot-watchdog maakt nog steeds deel uit van het ontwerp

In de huidige projectdocumentatie staat dat de watchdog zelfs op ZimaOS 1.7.0 nodig blijft, omdat de service-unit in de sysext de eerste samenstelling van het systemd-doel nog steeds kan missen. De nieuwere kernel heeft de IPv6-mogelijkheden hersteld, maar niet de raceconditie in de volgorde van sysext-services.

Veelgestelde vragen over native Tailscale

Is dit een officieel IceWhale Tailscale-pakket?

Nee. Het is een communityproject voor systemd-sysext.

Waarom dit gebruiken in plaats van Docker?

Het project is gericht op TUN op hostniveau, subnet-routering, exitnodes en normale systemd-integratie.

Is het probleem met starten na een herstart opgelost?

De auteur van het project heeft het probleem gereproduceerd en in v1.0.1 een op een watchdog gebaseerde oplossing uitgebracht.

Heeft IPv6 nog steeds de beperking van 1.6.1?

Het project meldt dat de nieuwere 6.18.9-kernel die door ZimaOS 1.7.0 wordt gebruikt, de vereiste ondersteuning voor IPv6-beleidsroutering biedt.