# Mango durch pinix ersetzen Stand: 13.09.2026, Umzug aktiv. Offen ist nur noch der Test mit einem echten WLAN-Client (siehe unten). Ziel: Nokia 6300 per USB-Tethering an pinix; pinix stellt das WLAN `pinix` mit neuem, zufälligem Schlüssel bereit. tnix behält während der Migration Internet über den unabhängigen iPhone-Hotspot. ## Reihenfolge 1. Fester Ethernet-Wartungszugang: pinix `192.168.50.1/24`, tnix `192.168.50.2/24`. Kein zusätzliches Standardgateway. Zunächst am bestehenden Mango-LAN testen, dann Ethernet direkt verbinden. 2. Nokia direkt an pinix: USB-Erkennung, IPv6, DNS64 und Wiederverbindung. 3. Öffentliche Dienste und DNS vom Mango unabhängig machen. 4. WLAN und Internetweitergabe auf pinix aktivieren und mit Client testen. ## Aufbau - `hosts/pinix/router-uplink.nix`: Nokia per `.link`-Datei stabil als `wan0` (Treiber `rndis_host`, Modell `Nokia_6300_4G`), IPv6 per RA (`accept_ra = 2`), IPv4-Standardroute des Telefons verworfen. Eigener Unbound `pinix-router-dns` auf `127.0.0.2` und den LAN-Adressen, der an die DNS64-Resolver der Telekom weiterleitet. BIND lauscht öffentlich auf der wechselnden globalen Adresse, nicht auf LAN-/Tailnet-ULAs. Firewall: öffentlich nur 53/80/443, SSH nur über `end0` und `tailscale0`. - `hosts/pinix/router-lan.nix`: `end0` (`192.168.50.1`, `fd42:50:0::1`) und `wlan0` (`192.168.51.1`, `fd42:50:1::1`), NAT66 über `wan0`, radvd mit RDNSS auf pinix, dnsmasq nur für DHCPv4 auf `wlan0` (lokales IPv4 ohne Router – Internet läuft über IPv6 plus NAT64/DNS64 der Telekom), hostapd `pinix` auf 2,4 GHz Kanal 6, WPA2-SHA256. - WLAN-Schlüssel: `secrets/pinix-wifi.age` (Empfänger: Nutzer + pinix), anzeigen mit `agenix -d secrets/pinix-wifi.age`. **Nach jeder Rotation zusätzlich `sudo systemctl restart hostapd` auf pinix nötig** — hostapd liest die Passphrase nur beim eigenen Start ein; `nixos-rebuild switch` löst dafür keinen Neustart aus, weil sich nur der Secret-*Inhalt* hinter dem unveränderten `/run/agenix`-Pfad ändert, nicht die Unit selbst. Gefunden am 13.09.2026: Passwort rotiert und deployt, hostapd lief aber unbemerkt mit der alten Passphrase weiter, bis der Neustart das behoben hat. - Öffentliche Adresse: `mango-dns.timer` führt `ipv6-test.0ff.space` (AAAA) jede Minute nach; `dex.` und `head.` (`domain2`) sind CNAMEs darauf. Der Dienstname stammt noch aus der Mango-Zeit, die Funktion ist unabhängig vom Router. ## Konfigurationsbasis Das Repository `/home/drone/nixos-config` auf pinix war hinter dem laufenden System zurückgeblieben. Ein erster Dry-Run hätte unter anderem Dex und Headscale entfernt; dieser Build wurde nicht aktiviert. Die archivierte Quelle `/nix/store/cca8s4fkcymj5nmv4df69bgdjbxixlhb-source` wurde ausgewertet und ergab exakt den laufenden Systempfad `/nix/store/ra5qca5ffp4412wdqw4f125yxvcpw6p5-nixos-system-pinix-26.11.20260910.8ce4ef6`. Aus dieser Quelle wurden die pinix-Module und die beiden Dex-Hilfsskripte in das Repository auf pinix übernommen. Vorheriger Stand gesichert unter `/tmp/pinix-before-router-source-reconcile-20260913.tar.gz` auf pinix. Neue Quelldateien sind dort mit `git add -N` für Flake-Auswertungen sichtbar. Die Router-Stufen wurden aus diesem pinix-Checkout gebaut und aktiviert. Der lokale Arbeitsstand auf tnix enthält zusätzlich die noch nicht aktivierte `tailnet-dns.nix`. Deren doppelte Definition von `net.ipv6.conf.wan0.accept_ra` wurde entfernt, weil `router-uplink.nix` das jetzt besitzt; sonst bricht die Auswertung des tnix-Stands ab. ## Geprüft - tnix aktiviert mit `192.168.50.2/24`; IPv6-Standardroute über iPhone weiterhin bevorzugt (Metrik 3003 gegenüber Ethernet 4000). - `iw list` auf pinix bestätigt AP-Unterstützung, 2,4 GHz und 5 GHz. - Wartungsweg: SSH von tnix über `192.168.50.1` zuerst über Mangos LAN-Switch, dann per Direktkabel (Ping 0,326 ms). Der erste Switch musste `network-addresses-end0.service` explizit starten, da das Gerät bereits vorhanden war. - Nokia: nach USB-Neuanschluss als `wan0` mit öffentlicher IPv6-Adresse; beide Telekom-Resolver liefern DNS64 (`64:ff9b::/96`); GitHub über NAT64 mit HTTP 200. - Letzte Stufe aktiviert: `/nix/store/236wq0yx33qwmfjnwwhn2zrn52knww88-nixos-system-pinix-26.11.20260910.8ce4ef6`. `systemctl is-system-running` = `running`, keine fehlgeschlagenen Units; hostapd (`AP-ENABLED`), radvd, dnsmasq, `pinix-router-dns`, BIND, Traefik, Dex, Headscale, tailscaled aktiv; IPv4/IPv6-Forwarding an. - Von außen (tnix über iPhone-Hotspot, fremdes Netz): Ping auf die Nokia-Adresse ok; HTTP 301, `https://dex.lukasrosier.com/dex/.well-known/openid-configuration` und `https://head.lukasrosier.com/health` jeweils 200 über `2a01:598:…:3bdc`; Port 22 von außen geschlossen. Cloudflare löst `ipv6-test.0ff.space` und `dex.lukasrosier.com` auf dieselbe Adresse auf. - Nach dem Umzug hielt pinix noch eine per RA gelernte Default-Route des Mango über `end0` (Metrik 1024, gegenüber `wan0` 1007). Da `end0` jetzt `accept_ra = 0` hat, wird sie nicht erneuert und läuft von selbst aus. ## Test mit echtem Client und gefundene Bugs Test mit einem echten Geraet (iPad) im WLAN `pinix` am 13.09.2026 bestanden, aber erst nach drei weiteren, unabhaengigen Bugs, die dabei zutage kamen (alle behoben und deployt): - `authentication.mode = "wpa2-sha256"` (seltene AKM-Variante) statt `wpa2-sha1` (der von praktisch jedem Geraet unterstuetzte WPA2-Standard) in `router-lan.nix` -- der Beitritt kam serverseitig nie an. - `end0`/`wlan0` ohne automatisch erzeugte Link-Local-Adresse (`addr_gen_mode=none`, erzeugende Ursache nicht abschliessend geklaert): radvd verweigerte deshalb stillschweigend jede Advertisement ("interface is not ready" bei Debug-Verbositaet). Ein oneshot-Dienst (`pinix-lan-linklocal` in `router-lan.nix`) setzt `addrgenmode eui64` bei jedem Boot zurueck, nach allem was die Interfaces sonst anfasst. - Die DNS64-Zugriffskontrolle in `router-uplink.nix` nutzte `fd42:50::/48` (fixiert das 3. Hextet auf 0, deckt nur `end0` ab) statt `/32` (deckt `end0` UND `wlan0` ab) -- jede DNS-Anfrage vom WLAN kam als "Refused" zurueck, kein Client konnte etwas laden. ## Aufräumen (erledigt am 13.09.2026) `mango-dns` -> `wan-dns-update` umbenannt (Modul, Systemd-Einheiten, Skript), die Mango-Kommentare in `hosts/pinix/configuration.nix` und `localServices/tailscale.nix` korrigiert, der Übergangsname `enp1s0u1u2` in `router-uplink.nix` entfernt (wan0 ist seit mehreren Boots/Reconnects stabil benannt). Nicht angefasst: `scripts/pinix-reachability-probe.sh`, `scripts/configure-mango-dns.sh` und die reinen Reboot-/Bind-Testprotokolle (`docs/pinix-reboot-probe.md`, `docs/pinix-bind.md`) -- die sind komplett auf die alte Mango-DNAT-Architektur zugeschnitten (eigene `uci`/`nft`-Schritte auf dem Mango selbst) und brauchen eine eigene Überarbeitung für den Nokia-Uplink, kein bloßes Umbenennen.