- mango-dns -> wan-dns-update (module, script, systemd units): same job (keep ipv6-test.0ff.space's AAAA pointed at the current WAN address), now named for what actually provides the uplink (Nokia tethering). - Drop the dead `networking.dhcpcd.extraConfig` block in hosts/pinix/configuration.nix (end0 is the tnix maintenance link now, not an uplink; router-uplink.nix's mkForce for wan0 already won here). - Fix stale "Mango" wording in configuration.nix and localServices/tailscale.nix to describe the actual Nokia/pinix-router-dns setup. - Remove the now-dead transitional `enp1s0u1u2` dhcpcd stanza in router-uplink.nix -- wan0 has been the stable name across several reconnects/reboots. Not touched: scripts/pinix-reachability-probe.sh, scripts/configure-mango-dns.sh, docs/pinix-reboot-probe.md, docs/pinix-bind.md -- built entirely around the old Mango DNAT setup (uci/nft on the Mango itself), need their own rework for the Nokia uplink rather than a rename. Noted in docs/pinix-router-migration.md. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01C5FvfdKcQjEFQ4aLrepcS1
6.8 KiB
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
- Fester Ethernet-Wartungszugang: pinix
192.168.50.1/24, tnix192.168.50.2/24. Kein zusätzliches Standardgateway. Zunächst am bestehenden Mango-LAN testen, dann Ethernet direkt verbinden. - Nokia direkt an pinix: USB-Erkennung, IPv6, DNS64 und Wiederverbindung.
- Öffentliche Dienste und DNS vom Mango unabhängig machen.
- WLAN und Internetweitergabe auf pinix aktivieren und mit Client testen.
Aufbau
hosts/pinix/router-uplink.nix: Nokia per.link-Datei stabil alswan0(Treiberrndis_host, ModellNokia_6300_4G), IPv6 per RA (accept_ra = 2), IPv4-Standardroute des Telefons verworfen. Eigener Unboundpinix-router-dnsauf127.0.0.2und 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 überend0undtailscale0.hosts/pinix/router-lan.nix:end0(192.168.50.1,fd42:50:0::1) undwlan0(192.168.51.1,fd42:50:1::1), NAT66 überwan0, radvd mit RDNSS auf pinix, dnsmasq nur für DHCPv4 aufwlan0(lokales IPv4 ohne Router – Internet läuft über IPv6 plus NAT64/DNS64 der Telekom), hostapdpinixauf 2,4 GHz Kanal 6, WPA2-SHA256.- WLAN-Schlüssel:
secrets/pinix-wifi.age(Empfänger: Nutzer + pinix), anzeigen mitagenix -d secrets/pinix-wifi.age. Nach jeder Rotation zusätzlichsudo systemctl restart hostapdauf pinix nötig — hostapd liest die Passphrase nur beim eigenen Start ein;nixos-rebuild switchlö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.timerführtipv6-test.0ff.space(AAAA) jede Minute nach;dex.undhead.(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 listauf pinix bestätigt AP-Unterstützung, 2,4 GHz und 5 GHz.- Wartungsweg: SSH von tnix über
192.168.50.1zuerst über Mangos LAN-Switch, dann per Direktkabel (Ping 0,326 ms). Der erste Switch musstenetwork-addresses-end0.serviceexplizit starten, da das Gerät bereits vorhanden war. - Nokia: nach USB-Neuanschluss als
wan0mit ö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-configurationundhttps://head.lukasrosier.com/healthjeweils 200 über2a01:598:…:3bdc; Port 22 von außen geschlossen. Cloudflare löstipv6-test.0ff.spaceunddex.lukasrosier.comauf dieselbe Adresse auf. - Nach dem Umzug hielt pinix noch eine per RA gelernte Default-Route des
Mango über
end0(Metrik 1024, gegenüberwan01007). Daend0jetztaccept_ra = 0hat, 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) stattwpa2-sha1(der von praktisch jedem Geraet unterstuetzte WPA2-Standard) inrouter-lan.nix-- der Beitritt kam serverseitig nie an.end0/wlan0ohne 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-linklocalinrouter-lan.nix) setztaddrgenmode eui64bei jedem Boot zurueck, nach allem was die Interfaces sonst anfasst.- Die DNS64-Zugriffskontrolle in
router-uplink.nixnutztefd42:50::/48(fixiert das 3. Hextet auf 0, deckt nurend0ab) statt/32(decktend0UNDwlan0ab) -- 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.