Widerlegt die bisherige Annahme, Telekom oder das Nokia blockierten eingehendes IPv6. Ursache war die Firewallzone auf dem Mango: usb0 wurde von `wan` behandelt, das noch IPv4 und IPv6 umfasste, sodass die Regeln in `wan6` gar nicht erreicht wurden. Deren Null-Zähler bewiesen deshalb nichts. nginx auf tnix mit IPv6-Listenern und ACME HTTP-01; der Mango leitet TCP 80/443/8080 der öffentlichen Adresse auf die statische ULA-Adresse von enp0s31f6 weiter. Kein Cloudflare-Proxy, kein blunix im Datenpfad. scripts/configure-mango-ipv6-web.sh legt die UCI-Regeln persistent an, mit Backup und `fw4 check` vor dem Commit. Arbeit der Vormittagssitzung vom 12.09.2026, hier erstmals committet. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01ML1tzf3RKWwetud5S4TRAn
6 KiB
IPv6-Webtest auf tnix mit HTTPS
Stand: 12.09.2026, erfolgreicher HTTPS-Abruf um 08:47 UTC.
URL: https://ipv6-test.0ff.space/. HTTP auf 80 und 8080 leitet dorthin um.
Aufbau
- Cloudflare DNS-only AAAA, TTL 120:
ipv6-test.0ff.space→2a01:598:ec1e:ce00:94dd:42ff:fe9a:627f. Record-ID:d4365926627a225a9d38bba316474e61. - Telekom
festip.telekom→ Nokia 6300 4G → USB-Tethering → Mangousb0. - Mango leitet TCP 80, 443 und 8080 dieser öffentlichen IPv6-Adresse
auf dieselben Ports von
fdee:3c40:44f0:0:ca5b:76ff:fe96:e24auf tnix weiter. - SNAT auf Mangos LAN-Adresse
fdee:3c40:44f0::1sorgt dafür, dass tnix den Rückweg über Ethernet nimmt. Seine Default-Route bleibt am iPhone. Der Testserver sieht dadurch Mango als Client, nicht die externe Adresse. - nginx als systemweiter NixOS-Dienst, IPv6-Listener auf 80/443/8080. Firewallfreigabe für 80/443 nur auf Ethernet; TCP 8080 war bereits global freigegeben. Statische Seite aus dem Nix Store.
- Die LAN-Zieladresse ist in NixOS statisch konfiguriert. Let's Encrypt validiert über HTTP-01 direkt durch den Mobilfunkpfad; ein systemd-Timer erneuert das Zertifikat automatisch. Keine DNS-Zugangsdaten erforderlich.
Implementierung: hosts/tnix/localServices/ipv6-web-test.nix, zugehörige
HTML-Datei und scripts/configure-mango-ipv6-web.sh. Das Router-Skript
prüft auf ungespeicherte Änderungen, sichert die Firewall und prüft das
neue Regelwerk vor dem Commit/Reload. wan ist jetzt explizit IPv4-only;
die bestehenden IPv6-Kontrollregeln gehören zu wan6, ebenso die neuen
Webweiterleitungen. LAN → wan6 und NAT66 für das lokale ULA-Netz sind gesetzt.
Die temporäre User-Unit wurde gestoppt und die nft-Tabelle tnix_web_test
entfernt. Historische Arbeitsdateien liegen noch unter
/tmp/ipv6-web-test.ERgok6/; dns.sh enthält keine Secrets und nutzte den
vorhandenen Cloudflare-Token direkt auf blunix.
Verifikation und Ursache
Vor Änderungen: Ping von tnix über den unabhängigen iPhone-Uplink zur
öffentlichen Mango-Adresse: 3/3 Antworten. TCP 8080 erhöhte Mangos
Freigabezähler um eins, bekam aber mangels Listener einen Reset. TCP 80
erhöhte drop_from_wan von 0 auf 4 und lief in einen Timeout.
usb0 ist sowohl wan als auch wan6 zugeordnet. Die aktive input-Chain
springt zuerst nach input_wan; deren Accept/Drop entscheidet bereits.
Freigaben und Null-Zähler in der späteren wan6-Chain sagten daher nichts
über fehlende Pakete vor dem Mango aus. Die frühere Telekom-Zuschreibung
in der Roadmap und Support-Anfrage ist widerlegt.
Nach Einrichtung: HTTP 200 samt Testseite über öffentliche IP und danach über den DNS-Namen. curl wählte den iPhone-Uplink; Mango zeigte zwei DNAT/SNAT-Verbindungen und Treffer auf der gezielten Forward-Freigabe. Kein Cloudflare-Proxy, Headscale oder blunix im HTTP-Datenpfad.
HTTPS: HTTP/2 200 mit regulärer Zertifikatsprüfung; Aussteller Let's Encrypt
YE1, gültig bis 11.12.2026. Alter 8080-Link: 301 → HTTPS → 200.
nginx und Erneuerungstimer aktiviert, keine fehlgeschlagenen systemd-Units.
NixOS-Build, nix flake check path:. --no-build, Dry-Aktivierung und echte
Aktivierung erfolgreich. Kein VM-Boot-Test ausgeführt.
Beim ersten Switch entfernte der alte dhcpcd-Prozess seine frühere SLAAC-
Adresse unmittelbar nach deren statischer Einrichtung. Ein Neustart von
network-addresses-enp0s31f6 stellte sie wieder her; die zweite ACME-
Anforderung gelang. Die neue dhcpcd-Konfiguration verwaltet auf Ethernet
keine dynamischen IPv6-Adressen mehr. Der alte nixos-rebuild-Wrapper
scheiterte an seiner NIX_PATH-Auswertung; aktiviert wurde das bereits
gebaute System direkt über Systemprofil und switch-to-configuration.
Grenzen und nächste Schritte
Clients brauchen IPv6. Dienst und Routerregeln sind persistent eingerichtet,
aber ein kompletter Reboot und USB-Reconnect wurden nicht getestet.
Insbesondere die öffentliche SLAAC-Adresse hängt weiterhin vom USB-MAC-
Suffix ab; falls dieser beim Reconnect wechselt, müssen DNS und die
src_dip-Werte angepasst oder eine feste öffentliche Interface-ID eingerichtet
werden. Die langfristige Präfixstabilität ist nicht getestet; ein altes
Consumer-Präfix liegt noch zusätzlich auf usb0.
Nächste Schritte: Reconnect-/Boot-Stabilität und öffentliche Interface-ID, anschließend Umzug auf pinix. Der vollständige Internetzugang auf tnix über den Mango ist seit dem 12.09.2026 erledigt und in Mango als Uplink beschrieben. Öffentliche Präfixweitergabe ins LAN statt NAT66 bleibt eine mögliche separate Architekturentscheidung.
IPv4-Befund: Native IPv4-Verbindungen vom Mango scheitern, IPv6 funktioniert.
Telekom-DNS 2a01:598:7ff:0:10:74:210:221 und Mangos lokaler DNS liefern
für ipv4only.arpa synthetische Adressen aus 64:ff9b::/96. Ein HTTPS-Abruf
von one.one.one.one, explizit auf [64:ff9b::101:101]:443 aufgelöst,
lieferte HTTP 200. Telekom-NAT64 funktioniert also. tnix nutzt aber weiter
Tailscale-DNS und die iPhone-Default-Route; DNS64/CLAT auf dem Client ist
noch nicht eingerichtet. Die Telekom-Dokumentation
bestätigt NAT64 für IPv4-Ziele beim festen Mobilfunk-IPv6-Zugang.
Rückbau
- NixOS-Modulimport entfernen und tnix neu bauen/aktivieren.
- Auf Mango nur die UCI-Abschnitte
tnix_web_80,tnix_web_443,tnix_web_8080und die dreitnix_web_return_*entfernen, Firewall prüfen, committen und neu laden. Die korrigierte Zonenzuordnung kann bleiben. - Nur den oben genannten Cloudflare-Testrecord entfernen.
Vollständige Firewall-Sicherung vor der Migration auf Mango:
/root/ipv6-web-firewall-backup.nDOaOd/firewall (auch mfDOMd enthält den
ursprünglichen Stand). BJoGgP ist ein Zwischenstand vor der Korrektur der
kopierten ICMP-Listen; für einen vollständigen Rollback den ursprünglichen
Stand verwenden und etwaige spätere Änderungen vorher vergleichen.
Die IPv6-Kontrollregeln wurden in die richtige Zone verschoben; keine pauschale Freigabe der Routerverwaltung für das Internet.