Nextcloud at home with IPv4 and IPv6

Hallo, ich habe seit Jahren daheim eine Nextcloud laufen. Das technische Szenario sieht so aus:

Ich habe eine eigene Domain. Der myfritz-DNS-Eintrag meiner Fritzbox wird über einen CNAMe Eintrag an meiner Domain als intranet.meinedomain.com zur Verfügung gestellt. An der Fritzbox ist eine Portweitleitung für 443 an den Server zuhause eingerichtet. Anschluss ist ein Magenta VDSL100 Anschluss bei der Telekom.

Das klappt alles einwandfrei.

Sobald ich nun an der Fritzbox IPv6 aktiviere, kann ich nicht mehr auf meine Nextcloud zugreifen.
Ich erhalte immer SSL Fehlermeldungen.

Ich vermute, dass hier im DNS die IPv6 Adresse Probleme bereitet.
Das SSL Zertifikat ist von LetsEncrypt.

wenn ich nur mit IPv4 ins INternet gehe, werden nslookup Anfragen auf meine Domain intranet.meinedomain.com auch mit einer IPv4 Adresse beantwortet.

Aktiviere ich IPv6, werden die nslookup Anfragen mit IPv6,IPv4 beantwortet. Ich denke, hier ist er Fehler.

Hat jemand das gleiche Problem schon einmal gehabt, und konnte es lösen?
Wie muss ich die IPv6 Adresse eintragen im Zertifikat? Nehme ich hier die IPv6 der Server daheim, oder die der Fritzbox? Und wie sage ich das LetsEncrypt?

Grundsätzlich werden keine IP Adressen in Zertifikate eingetragen. Let’s Encrypt unterstützt dies auch in keiner Weise. Zertifikate bestätigen nur, dass der zugeordnete DNS Name verifiziert wurde und sind erst einmal unabhängig von dem zu Grunde liegenden IP Netzwerk.

OK, muss ich dann also nur eine Weiterleitung machen, oder warum bekomme ich einen SSL Fehler, sobald ich IPv6 einschalte?

Dies kann ich nicht sagen, da Du bisher nicht die “genaue” SSL-Fehlermeldung benannt hast. Auch ist mir aus Deiner Beschreibung nicht ersichtlich von wo Du genau wie auf Nextcloud zugreifst sodass der Fehler entsteht. Geschieht dies von intern oder extern, welche IP-Adresse wird von extern aufgelöst etc., etc.

OK, sorry, ich dachte, ich hätte das oben beschrieben:
Ich greife über die intranet.meinedomain.com auf meinen Server daheim zu. die dynamische IP meiner Fritzbox wird als CNAME eintrag bei meinem Provider auf intranet.meinedomain.com gemappt. Die Weiterleitung der Fritzbox erfolgt von Port 443 auf die interne IP des Servers. Dort ist auch das Zertifikat hinterlegt von intranet.meinedomain.com

Bin ich nun im Intranet / Internet unterwegs, und will z.B. meine Kalender aktualisieren oder die Nextcloud im Browser aufrufen, erhalte ich die Meldung, dass der Internetseite nicht vertraut wird.
Sobald ich IPv6 deaktiviere, geht wieder alles.

Ok, hier würde ich natürlich erst einmal schauen, welche IP-Adresse genau vom Provider aufgelöst wird, die IPv4- oder die IPv6-Adresse.

Ok, damit kann man ansetzen. Öffne z.B. einmal den Firefox-Browser und greife lokal auf Nextcloud zu. Klicke dann auf das Schlosssymbol vor der URL und lasse Dir das Zertifikat und die Zertifikatskette anzeigen. Das gleiche wiederholst Du dann beim Zugriff über das Internet. Die Details kannst Du mir gerne per PM zusenden und ich schaue einmal was ich daraus herauslesen kann.

ich habe ein vergleichbares problem mit der fritzbox meiner mom… über den cname erreiche ich sie nicht mehr, weil ipv6 aktiviert ist vom provider. ich komme nur über die recht unübersichtlichen myfritz-url drauf… könnte also an avm bzw myfritz liegen. ich weiß das alllerdings nicht genau

Mit IPv6 kann es an verschiedenen Stellen klemmen. Meines Erachtens kann es an dem vom Provider bereitgestellten Anschluss, der DNS-Auflösung oder aber an einem Konfigurationsproblem des Router liegen.

Hier wird wohl bereits der Fehler sein. IPv6 ist nicht IPv4 und wird nicht ge-NAT-et.

Die Portforwardings vergessen wir mal, es wird einfach in den Freigaben der fritzbox definitiert, dass Maschine XY (die, die die Nextcloud hostet) eine IPv4 (wenn nötig) und eine IPv6 Freigabe erhält. Der korrekte AAAA Eintrag lautet demnach aucht nicht prefix:IP:DER:FRITZ:BOX, zum Beispiel 2606:4700:4700::1111. Hierbei ist “2606:4700:4700::/64” der Prefix und ::1111 die Adresse der Box. Ausgeschrieben steht hier: 2606:4700:4700:0000:0000:0000:0000:1111. Um es im Browser zu verwendet sind “[” “]” nötig. [2606:4700:4700::1111] ist allerdings nur ein DNS.

Jedes Device im Netzwerk hat abhängig von der Konfiguration mehrere zustände: Android ist generell raus. Da sind die Privacy Settings zu deutlich. Spielt aber auch erstmal keine Rolle.

Ich gehe einfach mal von einem Windows aus. Eingabeaufforderung ergibt mit ipconfig folgenden zusammenhang:

“Verbindungsspezifisches DNS-Suffix: fritz.box
IPv6-Adresse. . . . . . . . . . . : 2a00::1
Temporäre IPv6-Adresse. . . . . . : 2a00::2
Verbindungslokale IPv6-Adresse . : fe80::3%5”

Die temporäre Adresse wird primar im Internet verwendet. Hierfür gibt es gute Gründe. Der Suffix (hinter dem 2606:4700:4700:0000) wird üblicherweise über die MAC gebildet und ist immer gleich. Damit hat die Box immer die ::1111, also auch im 2a00::1111. Sie ist also verfolgbar. Das will man nicht. Diese Adresse ist von außen auch nicht erreichbar. Ist auch die Adresse, welche auf den IP-Findern angezeigt werden sollte.
Dementsprechend muss der IPv6 CNAME eben auch auf das Gerät, welches von außen erreichbar sein soll, eingetragen sein, also dessen “permanente” Adresse.
Und das wird eben nicht der jeweilige Windows Rechner, sondern eine VM, ein Server, ein NAS, ein raspi oder was auch immer sein. Dessen IPv6 Adresse müssen wir also kennen, im CNAME eintragen (man kann auch mehrere Adressen Eintragen, also eine IPv4 und eine IPv6).

Kurz: Du trägst bei Deinem Domänen-Anbieter nun in den CNAME für [intranet.meinedomain.com] 2345:REST:IST:EGAL:DEAD:BEEF:1337:1001 ein. Natürlich als AAAA Einrag und mit korrekten Daten. Dann verweist Dein Eintrag auf auf den Webserver der Nextcloud (oder den Proxy oder was auch immer) und nicht auf die Fritzbox.
Entsprechende Freigaben einrichten und gern auch PING6 freigeben.

So, ich hatte jetzt den gleichen Fehler bei einem Freund:
Er hat in seiner Fritzbox IPv6 aktiviert, und kommt nicht mehr auf seine daheim gehostete Nextcloud. er bekommt einen Zertifikatsfehler, da intern.home.net (seine Domain mit eigenem Zertifikat) auf einmal das Zertifikat der Fritzbox anzeigt (xxx.myfritz.net). Ich von außen (ipv4 Anschluss der Telekom) komme jedoch einwandfrei auf seine Nextcloud, und sehe auch das richtige Zertifikat.
Deaktiviert er nun IPv4 in der Fritzbox, kommen seine Clients im eigenen Netzwerk sofort auf die Nextcloud drauf, und sehen auch das richtige Zertifikat.

Hat da jemand eine Idee?

ich sehe das Problem ab und zu… obwohl ich den externen Zugriff auf die Fritzbox definitiv deaktiviert habe (und mehrfach überprüft) kommt es immer mal wieder vor dass ich beim Zugriff auf intern gehostete Services das fritz.box letsencrypt Zertifikat sehe… könnte sein dass es auftritt wenn der Zugriff von intern über die externe IPv6 erfolgt… evtl hat die fritzbox in diesem Kontext einen Fehler…

Generell ist es bei mir gut indem ein PiHole den DNS record der public domain auf die locale IPv4/IPv6 umbiegt… Ich hatte längere Zeit den IPv6 für die Nextcloud "mit :: “kurzgeschlossen” weil es sonst nicht (über IPv6) funktionierte. Nach einem super heise.de Tipp habe ich der traefik Reverse Proxy nun im Docker “host” mode publiziert und jetzt funktioniert auch IPv6 (intern).

Extern kann ich nicht mit Sicherheit sagen… aber extern hatte ich generell weniger Probleme als intern… da gibt es so Blödsinnn wie den Rebind Schutz usw nicht… und IPv6 ist auch eher selten…

Ich habe mal ein Ticket aufgemacht bei AVM. Generell ist es ja so, dass der Zugriff mit IPv4 funktioniert, nur sobald ich IPv6 nur aktiviere in den Einstellungen (keine weitere COnfig) bekomme ich den Zertifikatsfehler. Da scheint also vermutlich ein Fehler bei der Fritzbox zu sein. Mal schauen, was AVM antwortet, denn ich kann ja nicht bei jedem, der auf meine Nextcloud zugreifen will, erst mal einen PiHole installieren…

Das ist kein Fehler in der Fritzbox sondern ganz normal so.

Bei IPv4 hast du nur eine einzige IP. Die Fritzbox nimmt also alles entgegen und verteilt die Anfragen auf die Geräte entsprechend der Regeln in den Portfreigaben.

Bei IPv6 hat jedes Gerät seine eigene echte öffentliche IPv6. Die Fritzbox leitet nichts weiter, Portweiterleitungen gibt es bei IPv6 nicht.

Wenn du also nur einen CNAME auf den myfritz Eintrag deiner Fritzbox setzt, dann landest du über IPv6 - Überraschung - auf deiner Fritzbox (und die hat für den Namen natürlich kein gültiges Zertifikat). Zum Zugriff auf deine Nextcloud muss die IPv6 Adresse deines Nextcloud-Servers im DNS stehen, nicht die der Fritzbox.

1 Like

Sorry, aber ich raffe es immer noch nicht. Ich verwende ausschließlich IPv4, nirgends IPv6. Sobald ich auf der FB nun bei den Internetoptionen IPv6 aktiviere, bekomme ich ja eine IPv4 und IPv6 Adresse. Rufe ich wie bisher meine NC über IPv4 URL auf, erhalte ich auf einmal statt des Zertifikats des Servers im Heimnetz das Zertifikat der Fritzbox, was nicht passt. Deaktiviere ich IPv6 wieder, geht alles. Warum soll ich alles auf IPv6 umstellen, wenn ich wie bisher IPv4 nutzen möchte?

Gerade eben wieder bei einer Installation gehabt…

Ich habe das Thema IPv6 Freigabe hier beschrieben. Für Details bitte der heise+ Artikel lesen (leider paywall)